
Obsidian MCP Server (Cyanheads): Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants read, search, edit and tag the notes in your Obsidian vault.
This community server talks to Obsidian through the Local REST API plugin, so Obsidian must be running with that plugin on. It runs on your computer, and you give it the plugin's API key. The assistant can then read notes, edit a single heading or property, and manage tags.
It can also delete notes, and by default it does so without asking. Set the folder limits or the read-only switch described below before you let an assistant loose on a vault you care about.
Good for
- Obsidian users who want an assistant to search and summarize their vault
- Writers who want precise edits to one heading or property
- Developers who keep project notes in Obsidian and work in Cursor or Claude Code
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install obsidian-mcp-server
Claude Code
- 1
Copy this prompt.
Add the obsidian-mcp-server server to Claude Code. Run this command: claude mcp add obsidian -e OBSIDIAN_API_KEY=<OBSIDIAN_API_KEY> -- npx -y obsidian-mcp-server Ask me for OBSIDIAN_API_KEY and only put the values in that config, nowhere else. Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Obsidian + Local REST API plugin, Node.js.
Read-only mode: Add OBSIDIAN_READ_ONLY=true to the server's environment. It denies every write, including delete.
Install the Local REST API plugin in Obsidian first (Settings, Community plugins) and copy its API key into OBSIDIAN_API_KEY. The default address needs the plugin's non-encrypted HTTP server switched on; otherwise set OBSIDIAN_BASE_URL to the HTTPS port and OBSIDIAN_VERIFY_SSL to false. Obsidian must be running. These configs are adapted from the package name and are generated, not copied from the README. The README also offers a Claude Desktop .mcpb bundle.
Built from the package data we hold. Not yet tested by us.
Tools
Reads a note, its outline or one section
Opens a note by path, the note you have open, or a daily to yearly note. It returns the text, the full structure, a map of headings, or just one section.
Try: “Read the 'Project plan' section of my Roadmap note.”
Network ·
obsidian_get_noteLists notes and folders under a path
Walks a folder in your vault to a chosen depth, with filters for file type and name. It stops at 1,000 entries per call.
Try: “List all notes in my Projects folder.”
Network ·
obsidian_list_notesLists your tags, most used first
Shows every tag in the vault with how many notes use it, and counts parent tags such as work for work/tasks.
Try: “Which tags do I use most?”
Network ·
obsidian_list_tagsFinds notes by text, JSON rules or ranked search
Searches by text match or by rules on path, content, frontmatter and tags. If the Omnisearch plugin is running, it also offers ranked search.
Try: “Find notes that mention 'quarterly review' tagged #work.”
Network ·
obsidian_search_notesCreates a note or replaces a section or whole file
Creates a note, or replaces one heading, block or frontmatter field. Replacing a whole existing file needs overwrite set to true.
Try: “Create a note called 'Meeting 2026-11-02' with these bullets.”
Write ·
obsidian_write_noteAdds text to the end of a note or section
Appends to a note, creating it if missing, or to one heading, block or frontmatter field of an existing note.
Try: “Add this task to the end of my Inbox note.”
Write ·
obsidian_append_to_noteAppends, prepends or replaces one section
Changes one heading, block or frontmatter field of an existing note by adding before, adding after or replacing it.
Try: “Replace the 'Status' section of the Roadmap note.”
Write ·
obsidian_patch_noteFinds and replaces text inside one note
Runs one or more literal or regex replacements in a single note, body only by default. If a frontmatter change would break the YAML, nothing is written.
Try: “Rename 'Acme' to 'Acme Inc.' in this note.”
Write ·
obsidian_replace_in_noteGets, sets or deletes one frontmatter key
Reads, sets or removes a single property in a note's frontmatter and returns the result.
Try: “Set the status property of this note to done.”
Write ·
obsidian_manage_frontmatterAdds, removes or lists a note's tags
Changes tags in a note's frontmatter, in its body or in both, and reports which were applied or skipped.
Try: “Add the tag #reviewed to this note.”
Write ·
obsidian_manage_tagsPermanently deletes a note
Deletes one note by path. By default it deletes on the first call with no confirmation, and the server has no undo beyond Obsidian's local trash.
Try: “Delete the note 'Scratch 2024'.”
Delete ·
obsidian_delete_noteOpens a note in the Obsidian app
Brings a note up in Obsidian, optionally in a new pane. If you allow it, a missing file is created.
Try: “Open today's daily note in Obsidian.”
Write ·
obsidian_open_in_ui
Read from the source code
Permissions
high risk · 5 things to watch
High risk
The assistant can read, rewrite and permanently delete notes in your vault, and deletes run without a confirmation unless you turn one on. Set the read-only switch or a write folder limit, and keep a backup of the vault.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
It deletes notes without asking by default
obsidian_delete_note deletes on the first call, with no undo beyond Obsidian's local trash. Set OBSIDIAN_DELETE_ELICITATION=true to require your confirmation, or OBSIDIAN_READ_ONLY=true to turn writes off. github.com
It can overwrite and rewrite your notes
The write, patch, replace, frontmatter and tag tools change note files, and write_note can overwrite a whole file when told to. Limit it to a folder with OBSIDIAN_WRITE_PATHS. github.com
Two opt-in tools can run any Obsidian command
Setting OBSIDIAN_ENABLE_COMMANDS=true adds tools that list and run command-palette commands, some of which delete files or close the vault. They are off by default and hidden in read-only mode. github.com
It needs a third-party plugin with a local key
The Local REST API plugin serves your vault on a local port. Keep its key private and do not expose that port beyond your machine. github.com
You can hide private folders
OBSIDIAN_DENY_PATHS withholds folders from reads and writes, and removes them from listings and search results. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Set OBSIDIAN_READ_ONLY=true to deny every write, including delete, and to hide the command tools. OBSIDIAN_READ_PATHS, OBSIDIAN_WRITE_PATHS and OBSIDIAN_DENY_PATHS limit folders. |
|---|---|
| Talks to | Your local Obsidian REST API (127.0.0.1 by default) |
| Sign-in and keys | The Local REST API key is read from the OBSIDIAN_API_KEY environment variable in your app's config. |
| Scopes |
|
Questions
Is it official?
No. It is a community project by cyanheads, not made by Obsidian. It also depends on the separate Local REST API plugin.
What do I need before installing?
Obsidian running, with the Local REST API plugin installed and enabled. Copy its API key into OBSIDIAN_API_KEY and, for the default address, switch on the plugin's non-encrypted HTTP server.
Can it delete my notes?
Yes. The delete tool removes a note on the first call by default. Turn on OBSIDIAN_DELETE_ELICITATION to be asked first, or OBSIDIAN_READ_ONLY to block it.
Can I run it read-only?
Yes. Set OBSIDIAN_READ_ONLY=true and every write is denied, including delete. You can also restrict folders with the read, write and deny path settings.
Does my vault leave my computer?
The server talks to Obsidian on your own machine. The assistant you connect it to still receives whatever notes it reads, so keep private folders in the deny list.
How many tools does it have?
It has 12 tools by default, plus two command tools you must opt into. The README counts all 14.
Which clients does it work in?
It runs locally, so it fits Claude Desktop, Claude Code, Cursor, VS Code and other apps that start local servers. The README also offers a Claude Desktop bundle and Cursor and VS Code install links.
How is it different from other Obsidian servers?
It goes through the Local REST API plugin, so Obsidian must be running, and it can edit a single heading, block or property in place. See the other Obsidian server pages for ones that work differently.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
obsidian-mcp-server- Registry
- npm
- Transport
- stdio, Streamable HTTP
- Auth
- API key
- Version
- 3.8.0
- License
- Apache-2.0
- Last commit
- Oct 31, 2026
- Open issues
- 11
- Listed in
- Official MCP registry
Other Obsidian MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- obsidian-mcp-server README (v3.8.0) · github.com
- Server config source · github.com
- npm package obsidian-mcp-server · registry.npmjs.org