Skip to main content

Obsidian MCP servers vs a notes app with a built-in MCP server

Steven Liechti

Steven Liechtifounder of Koru

11 minute read
Two small white AI robots beside two black obsidian stones: one fumbles with a tangle of grey threads, the other touches its stone through a single green thread under a green sparkle.

Short answer

Obsidian doesn't ship its own MCP server, so connecting Claude to a vault means adding a community one: the Local REST API plugin's built-in MCP endpoint, a server that talks to that plugin (mcp-obsidian, obsidian-mcp-server), or a server that reads the vault folder directly (MCPVault). Each takes a few setup steps. Koru has its MCP server built into the app.

An Obsidian MCP server is the piece that lets an AI assistant such as Claude or Claude Code list, search, read and edit the notes in your vault. Obsidian's official automation tool is the Obsidian CLI, so MCP access comes from the community, and there are a lot of options on GitHub. Most fall into three kinds, and the kind decides what you install, whether Obsidian has to be running, and how much configuration you do.

I build Koru, a notes app with an MCP server built in, so read the comparison near the end with that in mind. The setup steps for the Obsidian servers come from each project's own README, checked on October 24, 2026, and every source is listed at the end.

What an Obsidian MCP server does

MCP (Model Context Protocol) is an open standard for connecting AI assistants to tools and data. An MCP server publishes a list of tools, such as "search notes" or "read note", and an MCP client, such as Claude Desktop, Claude Code, Cursor or Codex, calls them while it answers you. For a notes app, that means you can ask Claude to find last week's meeting notes, summarize them, or append a section to a note, and it reads or writes the real thing instead of a pasted copy.

Obsidian doesn't include an MCP server of its own. What it does ship is the Obsidian CLI, which needs the 1.12.7 installer or later, is turned on under Settings > General > Command line interface, and requires the Obsidian app to be running (Obsidian Help). An agent that can run shell commands, such as Claude Code, can call it directly, for example obsidian search query="meeting notes". A chat app like Claude Desktop can't run shell commands, and that's where an MCP server comes in.

The three kinds of Obsidian MCP server

The popular projects split into three designs. The difference is where the server gets your notes from.

  • Inside Obsidian, as a plugin. The Local REST API community plugin (3,066 GitHub stars) added a built-in MCP server in version 4.0.0 in May 2026 (release notes). It runs inside Obsidian and serves MCP over HTTPS on your own machine.
  • A bridge to that plugin. mcp-obsidian (Python, 4,489 stars, one of the most-starred Obsidian MCP servers) and obsidian-mcp-server (TypeScript, 701 stars) are separate programs that your MCP client starts. They pass each tool call on to the Local REST API plugin, so the plugin has to be installed too.
  • Straight from the vault folder. MCPVault (TypeScript, 1,703 stars) reads and writes the Markdown files in your vault directly. No plugin, and Obsidian doesn't need to be open.

Star counts are from GitHub on October 24, 2026. One once-popular option, obsidian-mcp-tools, is archived on GitHub, so check the repository status before you pick a server from an older guide.

How to set up the Local REST API plugin's MCP server

This is the closest thing to a built-in Obsidian MCP server: one community plugin, no extra runtime for Claude Code. The steps below follow the plugin's README and Obsidian's community plugins help.

  1. Turn on community plugins. In Obsidian, open Settings > Community plugins and select Turn on community plugins, which turns off Restricted Mode.
  2. Install the plugin. Select Browse, search for Local REST API, then Install and Enable.
  3. Copy your API key. It is under Settings > Local REST API.
  4. Add it to Claude Code: claude mcp add --transport http obsidian https://127.0.0.1:27124/mcp/ --header "Authorization: Bearer <your-api-key>".
  5. Deal with the certificate. The plugin serves HTTPS with a locally generated certificate authority. Either trust it (the plugin serves it at /obsidian-local-rest-api.crt on the HTTPS port), or turn on Enable HTTP server in the plugin settings and use http://127.0.0.1:27123/mcp/ instead.
  6. For Claude Desktop, the README bridges the HTTP server with npx mcp-remote, which needs Node.js, in claude_desktop_config.json. Restart Claude Desktop after saving.

Once connected, the plugin exposes 20 tools, including vault_read, vault_write, vault_patch (edit one heading, block or frontmatter field), vault_delete, search_simple, tag_list and command_execute, which runs any Obsidian command by its ID. It refuses to read or write your .obsidian configuration folder unless you allow it, because that folder holds plugin code and the plugin's own API key. Obsidian has to be running for any of this to work, since the server lives inside the app.

mcp-obsidian and obsidian-mcp-server: bridges to the same plugin

Both bridges predate the plugin's own MCP endpoint and still have a following. Each needs the Local REST API plugin installed, enabled and holding an API key, plus a runtime of its own.

mcp-obsidian needs Python 3.11 or later. Its README has you add an entry to claude_desktop_config.json that runs uvx mcp-obsidian, with OBSIDIAN_API_KEY (and optionally OBSIDIAN_HOST and OBSIDIAN_PORT) set as environment variables. It has seven tools: listing files, reading a file, search, patching or appending content, and deleting a file. The README notes that Claude sometimes can't find uvx and suggests pasting its full path.

obsidian-mcp-server runs with npx -y obsidian-mcp-server (Node.js) or Bun, with OBSIDIAN_API_KEY set. It needs plugin version 4.0.0 or later, and it defaults to the plugin's plain HTTP port, so you either turn on the plugin's HTTP server or point OBSIDIAN_BASE_URL at the HTTPS port. It is the most careful of the group: folder-scoped read and write permissions, a read-only switch, and an optional confirmation before deleting a note. It also offers a one-click .mcpb package for Claude Desktop, which Claude installs as a desktop extension; you still need the plugin and the key.

MCPVault: an Obsidian MCP server that reads the vault folder

MCPVault skips the plugin entirely. Your MCP client starts it with the path to your vault, for example npx @bitbonsai/mcpvault@latest /path/to/your/vault in the Claude Desktop or Claude Code config, and it works on the files in that folder. It needs Node.js 20 or later, and per its README, "Obsidian does not need to be running, and no Obsidian plugin is required."

MCPVault has 18 tools for reading, writing, patching, moving and deleting notes, searching, frontmatter and tags, and resolving wiki links. It blocks paths outside the vault as well as .obsidian, .git and other dotfiles. The trade-off of the file approach is that it sees files, not Obsidian: it can't run Obsidian commands, and its search is its own rather than Obsidian's.

Koru: a notes app with the MCP server built in

Koru is my app, so here is the honest version. It's a free, open-source (MPL-2.0) notes workspace written in Rust, a native app rather than Electron, for Windows and macOS, with Linux and mobile coming soon. Your notes live in a local database on your device and work fully offline.

Its MCP server is part of the app. Every Koru install on Windows and macOS includes a small program, koru-mcp, beside the app, and there is nothing else to download, no plugin to enable, no API key and no port. Since Koru 0.1.3, released for Windows on October 20, 2026, the Welcome page has a Manage documents over MCP row that shows the exact command for your installation and copies it in one click (release notes). The command is the full path to that program plus serve --stdio, for example "C:\path\to\Koru\koru-mcp.exe" serve --stdio. The row is coming to Mac in the next release; on a Mac the program is /Applications/Koru.app/Contents/MacOS/koru-mcp, so move Koru.app to Applications first instead of running it from the DMG.

Paste it into the client you already use. In Claude Code, that's claude mcp add koru -- followed by the copied command (Claude Code docs). In Claude Desktop, it's an entry in claude_desktop_config.json with the path as command and ["serve", "--stdio"] as args, as in Koru's Claude Desktop guide. Claude then starts and stops the bridge itself. Claude can use Koru even when the app is closed; it starts Koru's background service on its own. On a Mac, open Koru once before you connect Claude.

The server reads and writes: it has 21 tools, 15 that read and 6 that write. It can list your workspaces and documents, search them, and read a document; create a document, edit one, or move a passage into a new document; and save, compare and restore versions (tool list). Edits go through Koru's document model rather than raw text. Every change to an existing block must include that block's exact current text (its expected value), or it fails with precondition_failed, so if a note changed in the meantime Claude reads it again instead of overwriting your changes. Each batch of edits is checked as a whole before any of it is applied, and each MCP edit is marked in the document's history. There are no tools to rename, move or delete documents.

Koru also opens terminals as tabs beside your notes, so you can run Claude Code in a Koru tab and point it at the same workspace over MCP.

Obsidian MCP servers vs a built-in MCP server, side by side

FeatureLocal REST API pluginmcp-obsidian or obsidian-mcp-serverMCPVaultKoru (built in)
Who maintains itCommunity plugin authorCommunity authors, separate from the pluginCommunity authorThe app itself (open source)
What you installOne Obsidian pluginThe plugin plus the serverThe serverNothing extra
Extra runtimeNone for Claude Code; Node.js for Claude Desktop (mcp-remote)Python 3.11+ (uv) or Node.js / BunNode.js 20+None
CredentialsAPI key as a bearer tokenAPI key in an environment variableNone, only the vault pathNone
Certificate or port setupTrust a local certificate, or turn on the HTTP portOften: the HTTP port or a base URLNoNo, it runs over stdio
App must be runningYes, ObsidianYes, ObsidianNoNo, the bridge starts Koru in the background
Reads and writesYes, including delete and running Obsidian commandsYes; obsidian-mcp-server can be scoped or read-onlyYes, including delete and moveYes, with version history; no rename, move or delete, and no read-only switch
Your notes areMarkdown files in a folderMarkdown files in a folderMarkdown files in a folderA local database, with Markdown and TextBundle export
Each project's own README and docs, checked October 24, 2026. Koru's column is Koru 0.1.3 on Windows. koru-mcp ships on Mac too; the one-click copy on the Welcome page is coming to Mac in the next release.

So the Obsidian route costs a few minutes of setup and one or two pieces of software you choose and keep updated; the built-in route costs nothing to set up, but only works for notes that live in that app.

Where an Obsidian MCP server is the better choice

Choice is the real advantage. If you want an assistant that can only read, or only touch one folder, obsidian-mcp-server lets you set exactly that, while Koru's local bridge gets read and edit access to all your workspaces today. If you want the assistant to work while Obsidian is closed, MCPVault does that, as Koru's bridge does. If you want Claude to move or delete notes, the Local REST API plugin and MCPVault can, and Koru's server has no tools for that. And if you want Claude to run your own Obsidian commands or plugin features, the Local REST API plugin can.

Your vault is also plain Markdown files, which every tool on your computer can read, and Obsidian has mobile apps and a deep plugin ecosystem. Koru stores notes in a local database (with Markdown and TextBundle export), runs on Windows and macOS only for now, and has no plugin system.

The cost is that every one of these servers is third-party code with access to your notes, on top of Obsidian's own plugin model, which Obsidian says "cannot reliably restrict plugins to specific permissions or access levels" (Plugin security). Read the README, check that the repository is maintained, and keep the API key private.

How to connect Claude to your notes today

  • You use Claude Code and Obsidian: install the Local REST API plugin and run its one-line claude mcp add command. Or skip MCP and let Claude Code call the Obsidian CLI.
  • You use Claude Desktop and want limits: obsidian-mcp-server, installed from its .mcpb package, with a read-only switch or folder scopes.
  • You want the assistant to work without Obsidian open: MCPVault, pointed at your vault folder.
  • You would rather not set up a server at all: a notes app with one built in. In Koru, open the Welcome page, copy the command and paste it into Claude.

To try the built-in route, download Koru for Windows or macOS. It imports Markdown files from a vault (wikilinks stay plain text) as well as Evernote, Notion, OneNote, Google Docs and TextBundle. The developers page lists the agents it works with, the Obsidian alternative page compares the two apps in more detail, and the code, including the MCP server, is on GitHub.

Frequently asked questions

Does Obsidian have an official MCP server?

No. Obsidian's official automation tool is the Obsidian CLI, which needs the app running. MCP servers for Obsidian are community projects, including the Local REST API plugin, which has had a built-in MCP endpoint since version 4.0.0.

Which Obsidian MCP server should I use?

For Claude Code, the Local REST API plugin is the shortest setup. For fine-grained limits such as read-only access, obsidian-mcp-server. To work without Obsidian running, MCPVault. mcp-obsidian is the most starred but needs Python and the same plugin.

Does Obsidian need to be open for an MCP server to work?

For the Local REST API plugin and the servers that bridge to it, yes, because the plugin runs inside Obsidian. MCPVault works on the vault folder directly, so Obsidian can stay closed.

Can Claude edit my notes through MCP?

Yes, with all the servers in this post: they have write tools as well as read tools, and most can delete. obsidian-mcp-server has a read-only switch. Koru's MCP server can create and edit documents and restore saved versions, but has no tools to rename, move or delete them.

What is an MCP server for notes?

A small program that lets an AI assistant such as Claude search, read and edit the notes in a notes app, using the Model Context Protocol. Some apps need a community server; Koru includes one.

Related pages

Drafted with help from AI tools, edited and fact-checked by Steven Liechti.

  • Obsidian
  • MCP
  • Comparisons
  • Guides

Subscribe to receive notifications of new posts

We'll never share your email address.

Privacy choices

Choose which optional tools Koru may use on this site. Your choice is saved in a cookie in this browser for 12 months. Privacy policy

Privacy choices

Keep you signed in, protect forms and remember your language and this choice.

Always on

PostHog and Google Analytics 4 measure page views and actions such as downloads, using cookies or local storage.

PostHog records how pages are used, with form inputs masked and private pages excluded. Needs Analytics.

Ahrefs Web Analytics measures visits and where they come from.