An MCP-compliant server that provides tools for reading, writing, searching, and editing notes, tags, and frontmatter in Obsidian vaults. Version 3.2.4 requires Node >=24 or Bun >=1.3.11 and the Obsidian Local REST API plugin. Uses stdio or Streamable HTTP transport. Built in TypeScript with full type definitions. Differentiates from generic file-sys MCP servers by offering high-level operations (get note content, list vault files, append to notes, bulk create, search by content/tag, manage tags/frontmatter, batch delete) with a two-edit safety guard. The server enforces contextual editing to avoid data loss. Release cadence is active (multiple updates per month). Ships with a React-based MCP inspector for testing.
npm install obsidian-mcp-serverNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Shows how to start the server over stdio transport, configure API URL and key, and set max note size. Replace the API key with a real one from the Local REST API plugin settings.
Upgrade Node to 24+ or use Bun 1.3.11+.
Use dynamic import() or switch to ESM ("type": "module" in package.json).Install 'obsidian-local-rest-api' from Obsidian community plugins; set an API key in its settings; pass same key to server.
Design your workflow to call 'get_note' after every two edits, or use the 'two_edit_guard' option (if available) to disable it.
Use stdio transport (TransportType.STDIO) when possible.
Use dynamic import() or set "type": "module" in package.json and use import syntax.
Start Obsidian and ensure the Local REST API plugin is enabled. Verify the port (default 27124) and URL.
Set OBSIDIAN_API_KEY environment variable to the exact API key from Obsidian plugin settings.