Obsidian MCP Server
UnclaimedRead, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP. STDIO or Streamable HTTP.
Install
docker run --rm -e OBSIDIAN_API_KEY=your-key -p 3010:3010 obsidian-mcp-serverSet up this server
More in Search & Web
Browse the full directoryUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverSecurity profile
Claimed and verified servers get a weekly static scan that shows what the code can reach: external services, environment variables, shell commands, agent configuration folders, plus any dependencies with known advisories. Claim this listing to get one. How the security profile works
14 of 14 tools
Documented tools (14)
From project documentation. A server handshake does not verify each tool’s description or behavior.
obsidian_append_to_note
Append content to a note. Without section, creates the file if missing. With section, appends to a specific heading, block, or frontmatter field (file must exist).
obsidian_delete_note
Permanently delete a note. Always asks the user to confirm first — the call is answered with a confirmation request and retried with the answer.
obsidian_execute_command
Execute an Obsidian command-palette command by ID. Opt-in via OBSIDIANENABLECOMMANDS=true.
obsidian_get_note
Read a note as raw content, full structured form (content + frontmatter + tags + stat, with optional outgoing links), structural document map, or a single section.
obsidian_list_commands
List Obsidian command-palette commands, optionally filtered by nameRegex on display name. Opt-in via OBSIDIANENABLECOMMANDS=true (paired with obsidianexecutecommand).
obsidian_list_notes
List notes and subdirectories under a vault path. Recursive walk (default depth 2, max depth 20; 1000-entry cap) with optional extension and nameRegex filters.
obsidian_list_tags
List vault tags with usage counts, including hierarchical parents. Ordered by count descending and capped at limit (default 200, max 10000), with the withheld remainder disclosed. Optional nameRegex and minCount narrow the set first.
obsidian_manage_frontmatter
Atomic get / set / delete on a single frontmatter key.
obsidian_manage_tags
Add, remove, or list tags. Defaults to the frontmatter tags: array; location: 'inline' or 'both' opts into mutating the note body.
obsidian_open_in_ui
Open a file in the Obsidian app UI, with failIfMissing and newLeaf toggles.
obsidian_patch_note
Surgical append / prepend / replace against a heading, block reference, or frontmatter field.
obsidian_replace_in_note
Search-replace inside a single note, scoped to the body by default. Literal or regex matching with whole-word, whitespace-flexible, and case-sensitivity options; supports capture-group replacement.
obsidian_search_notes
Search the vault by text, JSONLogic, or BM25-ranked Omnisearch (when the plugin is reachable). Results paginate via opaque cursors.
obsidian_write_note
Create a note, replace a single section in place, or — with overwrite: true — clobber an existing file. Refuses whole-file writes against an existing path by default.
Tool change history
FAQ
Questions about Obsidian MCP Server
- How do I connect Obsidian MCP Server to Claude?
- The listing records `docker run --rm -e OBSIDIAN_API_KEY=your-key -p 3010:3010 obsidian-mcp-server` as its setup step. Run it, then follow the repository's instructions for the client configuration; the listing names Claude Desktop, Cursor, VS Code as compatible clients.
- Is Obsidian MCP Server free?
- The listed licence is Apache-2.0. Check the upstream terms for permitted use and commercial requirements; a public repository does not by itself mean the software is free or open source. Connected APIs and hosted services may have separate charges.
- What can Obsidian MCP Server do?
- Obsidian MCP Server documents 14 tools to the agent, including obsidian_append_to_note, obsidian_delete_note, obsidian_execute_command. The descriptions above come from project documentation. A live handshake does not test individual tool behavior.