MCP server that connects an Obsidian vault to Cursor, Claude Desktop and ChatGPT. The model can read, write, search and navigate notes.
Architecture · AI Systems · MCP
Problem
An Obsidian vault is a private knowledge base. LLMs could not operate on it without a local protocol, and a network path needed real auth rather than an open port.
Role
Author and maintainer
Approach
Built a Python MCP server with two transports. stdio in Docker for desktop clients. SSE plus OAuth 2.1 with PKCE for ChatGPT and remote access. Tools stay at the vault boundary: ls, read, write, glob, tree, search.
Outcome
Open-source MCP server that lets an LLM work with notes as files, not as a pasted context window.
An Obsidian vault is already a structured knowledge base. The missing piece was a protocol an LLM client can call without pasting notes into the prompt.
The server exposes vault operations as MCP tools. Desktop clients attach through stdio in Docker. ChatGPT and remote clients attach through SSE with OAuth 2.1 and PKCE. The model reads, writes and searches notes. The vault stays a filesystem the operator owns.