{"_id":"@aniketbiswas/obsidian-mcp-server","_rev":"3-dd3e404336515a575aed2f62a74a725b","name":"@aniketbiswas/obsidian-mcp-server","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@aniketbiswas/obsidian-mcp-server","version":"1.0.0","keywords":["mcp","model-context-protocol","obsidian","ai","llm","claude","tools","typescript","notes","knowledge-base","pkm","cli"],"author":{"name":"Aniket Biswas"},"license":"MIT","_id":"@aniketbiswas/obsidian-mcp-server@1.0.0","maintainers":[{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"}],"homepage":"https://github.com/aniketbiswas/obsidian-mcp-server#readme","bugs":{"url":"https://github.com/aniketbiswas/obsidian-mcp-server/issues"},"bin":{"obsidian-mcp-server":"build/index.js"},"dist":{"shasum":"e0e53a6b0b569184c1ba5a4295951f28ee79604b","tarball":"https://registry.npmjs.org/@aniketbiswas/obsidian-mcp-server/-/obsidian-mcp-server-1.0.0.tgz","fileCount":99,"integrity":"sha512-qg8JHJ7iVdPIhh+igUhv6pF34I30EuGH++lPF6Lj8PFthNlcFSjit8wDY6YlUVDYq1a7KwXFXA2R1T+x+cqfCg==","signatures":[{"sig":"MEYCIQDsxZgJ0SsWVGhmDD2Y62F+Ot//C3zEOUZp2xiaQB6cbgIhAI89ht46bAakFZXyEMo7ywbfRzbxaeQeyKV4rtPSQxWw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":470949},"main":"./build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"34f4ac57c0c712d812fbe308d3a98b94276d5827","scripts":{"dev":"tsc --watch","build":"tsc && chmod 755 build/index.js","start":"node build/index.js","inspector":"npx @modelcontextprotocol/inspector node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"},"repository":{"url":"git+https://github.com/aniketbiswas/obsidian-mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for integrating AI assistants with Obsidian via the Local REST API plugin. 40+ tools for vault management, notes, search, and more.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-mcp-server_1.0.0_1769624835439_0.833958097963611","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aniketbiswas/obsidian-mcp-server","version":"1.0.1","keywords":["mcp","model-context-protocol","obsidian","ai","llm","claude","tools","typescript","notes","knowledge-base","pkm","cli"],"author":{"name":"Aniket Biswas"},"license":"MIT","_id":"@aniketbiswas/obsidian-mcp-server@1.0.1","maintainers":[{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"}],"homepage":"https://github.com/aniketbiswas/obsidian-mcp-server#readme","bugs":{"url":"https://github.com/aniketbiswas/obsidian-mcp-server/issues"},"bin":{"obsidian-mcp-server":"build/index.js"},"dist":{"shasum":"1f0e22d8bd834d93eb9115f9f660993505fb726d","tarball":"https://registry.npmjs.org/@aniketbiswas/obsidian-mcp-server/-/obsidian-mcp-server-1.0.1.tgz","fileCount":99,"integrity":"sha512-1/HzJdVULpBZtQocaFBfCcIv7wVOgpOUhOYk9zrWxIXL1wfuYYxT8EMIJZgMDnXe3tQ/nHJJdtnsgi2wHNQNRg==","signatures":[{"sig":"MEUCIQCiUltpmj9JagaU/60dyawlJYsqOtXaPfAflDZjoe5aeQIgQp0uS7ANxqrbMwl7u68OiMjovDnnew4Il19oaGYCYdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":472241},"main":"./build/index.js","type":"module","types":"./build/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f2758b9e0e63198484ba526c06654733878cefcb","scripts":{"dev":"tsc --watch","build":"tsc && chmod 755 build/index.js","start":"node build/index.js","inspector":"npx @modelcontextprotocol/inspector node build/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"},"repository":{"url":"git+https://github.com/aniketbiswas/obsidian-mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for integrating AI assistants with Obsidian via the Local REST API plugin. 40+ tools for vault management, notes, search, and more.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-mcp-server_1.0.1_1769626835976_0.5157291582097479","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aniketbiswas/obsidian-mcp-server","version":"1.0.2","description":"MCP server for integrating AI assistants with Obsidian via the Local REST API plugin. 40+ tools for vault management, notes, search, and more.","type":"module","bin":{"obsidian-mcp-server":"build/index.js"},"main":"./build/index.js","scripts":{"build":"tsc && chmod 755 build/index.js","dev":"tsc --watch","start":"node build/index.js","inspector":"npx @modelcontextprotocol/inspector node build/index.js","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","obsidian","ai","llm","claude","tools","typescript","notes","knowledge-base","pkm","cli"],"author":{"name":"Aniket Biswas"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aniketbiswas/obsidian-mcp.git"},"homepage":"https://github.com/aniketbiswas/obsidian-mcp#readme","bugs":{"url":"https://github.com/aniketbiswas/obsidian-mcp/issues"},"publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^20.0.0","typescript":"^5.0.0"},"engines":{"node":">=18.0.0"},"_id":"@aniketbiswas/obsidian-mcp-server@1.0.2","gitHead":"b5beb549b0f7b5dc15220061afcaff0fce5db032","types":"./build/index.d.ts","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Itpl6ou3bDi6UzYNeU6lgrn3vauiTQkbhHw/jORIwMGbhwWKpJFn025GRTyco2sNxQDDhRb/kxf0uT/K6NOUkA==","shasum":"3119356636e7dee0722a44425ec099e616b000ef","tarball":"https://registry.npmjs.org/@aniketbiswas/obsidian-mcp-server/-/obsidian-mcp-server-1.0.2.tgz","fileCount":99,"unpackedSize":472352,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICrTLcvf8pkU1FrqfsWv2gH75rI6QXdsUdrekkIg+NHsAiADYdFcWqQKB0C8fMw5DXkSYMsBbJc3mFumCvRfBUClbg=="}]},"_npmUser":{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"},"directories":{},"maintainers":[{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/obsidian-mcp-server_1.0.2_1769956343145_0.5895080286676684"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-28T18:27:15.299Z","modified":"2026-02-01T14:32:23.410Z","1.0.0":"2026-01-28T18:27:15.607Z","1.0.1":"2026-01-28T19:00:36.119Z","1.0.2":"2026-02-01T14:32:23.300Z"},"bugs":{"url":"https://github.com/aniketbiswas/obsidian-mcp/issues"},"author":{"name":"Aniket Biswas"},"license":"MIT","homepage":"https://github.com/aniketbiswas/obsidian-mcp#readme","keywords":["mcp","model-context-protocol","obsidian","ai","llm","claude","tools","typescript","notes","knowledge-base","pkm","cli"],"repository":{"type":"git","url":"git+https://github.com/aniketbiswas/obsidian-mcp.git"},"description":"MCP server for integrating AI assistants with Obsidian via the Local REST API plugin. 40+ tools for vault management, notes, search, and more.","maintainers":[{"name":"aniketbiswas","email":"aniketbiswas100@gmail.com"}],"readme":"# 🗃️ Obsidian MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@aniketbiswas/obsidian-mcp-server)](https://www.npmjs.com/package/@aniketbiswas/obsidian-mcp-server)\n[![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)\n[![MCP](https://img.shields.io/badge/MCP-1.0.0-blue)](https://modelcontextprotocol.io)\n\nConnect AI assistants like **Claude** to your [Obsidian](https://obsidian.md) vault via [Model Context Protocol](https://modelcontextprotocol.io). **40+ tools** for searching, creating, and managing your notes—all 100% local.\n\n---\n\n## What Can You Do?\n\n| You Say | What Happens |\n|---------|--------------|\n| \"Search my notes for machine learning\" | Searches your entire vault |\n| \"Create a meeting note for tomorrow\" | Creates a formatted meeting note |\n| \"What links to my Projects note?\" | Shows all backlinks |\n| \"Add to my daily note: finished the API\" | Appends to today's daily note |\n| \"Find orphan notes\" | Lists unconnected notes |\n\n---\n\n## Quick Start\n\n### 1. Install the Obsidian Plugin\n\n1. **Obsidian** → **Settings** → **Community plugins** → **Browse**\n2. Search \"**Local REST API**\" → **Install** → **Enable**\n3. **Settings** → **Local REST API** → Copy your **API Key**\n\n### 2. Install the MCP Server\n\n**Option A: Install from npm (recommended)**\n\n```bash\nnpm install -g @aniketbiswas/obsidian-mcp-server\n```\n\n**Option B: Install from source**\n\n```bash\ngit clone https://github.com/aniketbiswas/obsidian-mcp.git\ncd obsidian-mcp\nnpm install && npm run build\nnpm link  # Makes it available globally\n```\n\n### 3. Configure Claude Desktop\n\nEdit the config file:\n\n| OS | Config Path |\n|----|-------------|\n| **macOS** | `~/Library/Application Support/Claude/claude_desktop_config.json` |\n| **Windows** | `%APPDATA%\\Claude\\claude_desktop_config.json` |\n| **Linux** | `~/.config/claude/claude_desktop_config.json` |\n\n**If installed via npm:**\n\n```json\n{\n  \"mcpServers\": {\n    \"obsidian\": {\n      \"command\": \"node\",\n      \"args\": [\"node_modules/@aniketbiswas/obsidian-mcp-server/build/index.js\"],\n      \"env\": {\n        \"OBSIDIAN_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n> **Note:** If the above doesn't work (common with nvm), use full paths:\n> ```json\n> {\n>   \"command\": \"/usr/local/bin/node\",\n>   \"args\": [\"/usr/local/lib/node_modules/@aniketbiswas/obsidian-mcp-server/build/index.js\"]\n> }\n> ```\n> Find your paths with: `which node` and `npm root -g`\n\n**If installed from source:**\n\n```json\n{\n  \"mcpServers\": {\n    \"obsidian\": {\n      \"command\": \"node\",\n      \"args\": [\"/FULL/PATH/TO/obsidian-mcp-server/build/index.js\"],\n      \"env\": {\n        \"OBSIDIAN_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n> **Windows paths:** Use `C:\\\\Users\\\\Name\\\\...` or `C:/Users/Name/...`\n\n### 4. Restart Claude Desktop\n\nMake sure Obsidian is running, then try: *\"Show me my vault status\"*\n\n---\n\n## Available Tools\n\n<details>\n<summary><strong>📁 Vault (6)</strong> — Status, list files, structure</summary>\n\n`vault_status` · `list_files` · `list_all_files` · `get_vault_structure` · `get_file_stats` · `delete_file`\n</details>\n\n<details>\n<summary><strong>📝 Notes (9)</strong> — CRUD operations</summary>\n\n`read_note` · `create_note` · `update_note` · `append_to_note` · `prepend_to_note` · `insert_under_heading` · `replace_in_note` · `delete_note` · `copy_note`\n</details>\n\n<details>\n<summary><strong>🔍 Search (7)</strong> — Full-text, tags, folders</summary>\n\n`search_notes` · `simple_search` · `search_by_tag` · `search_in_folder` · `find_notes_by_name` · `get_recent_notes` · `search_with_context`\n</details>\n\n<details>\n<summary><strong>📊 Metadata (8)</strong> — Frontmatter & tags</summary>\n\n`get_frontmatter` · `update_frontmatter` · `set_frontmatter_property` · `get_tags` · `add_tags` · `remove_tags` · `add_aliases` · `get_all_tags_in_vault`\n</details>\n\n<details>\n<summary><strong>🧭 Navigation (6)</strong> — Open notes, run commands</summary>\n\n`open_note` · `get_active_note` · `append_to_active_note` · `get_commands` · `execute_command` · `quick_capture`\n</details>\n\n<details>\n<summary><strong>📅 Daily Notes (6)</strong> — Journals & standups</summary>\n\n`get_daily_note` · `append_to_daily_note` · `get_periodic_note` · `append_to_periodic_note` · `daily_journal_entry` · `daily_standup`\n</details>\n\n<details>\n<summary><strong>🔗 Links (6)</strong> — Backlinks, orphans, graph</summary>\n\n`get_outgoing_links` · `get_backlinks` · `find_broken_links` · `find_orphan_notes` · `add_link_to_note` · `get_link_graph_data`\n</details>\n\n<details>\n<summary><strong>📋 Templates (4)</strong> — Meeting, project, etc.</summary>\n\n`create_note_from_template` · `create_meeting_note` · `create_project_note` · `list_templates`\n\nBuilt-in: `meeting` · `project` · `book` · `article` · `person` · `recipe` · `decision`\n</details>\n\n---\n\n## Configuration\n\n| Variable | Required | Default | Description |\n|----------|:--------:|---------|-------------|\n| `OBSIDIAN_API_KEY` | ✅ | — | From Local REST API plugin |\n| `OBSIDIAN_HOST` | | `127.0.0.1` | API host |\n| `OBSIDIAN_PORT` | | `27124` | API port |\n| `OBSIDIAN_SECURE` | | `true` | Use HTTPS |\n| `OBSIDIAN_VERIFY_SSL` | | `false` | Verify SSL certificate |\n\n---\n\n## Troubleshooting\n\n<details>\n<summary><strong>\"Cannot connect to MCP server\" or \"Server failed to start\"</strong></summary>\n\nThis is usually a **PATH issue**. Claude Desktop doesn't inherit your shell's PATH (especially with nvm).\n\n**Solution:** Use full absolute paths in your config:\n\n1. Find your node path: `which node`\n2. Find global modules: `npm root -g`\n3. Update config with full paths:\n\n```json\n{\n  \"mcpServers\": {\n    \"obsidian\": {\n      \"command\": \"/Users/YOU/.nvm/versions/node/v22.x.x/bin/node\",\n      \"args\": [\"/Users/YOU/.nvm/versions/node/v22.x.x/lib/node_modules/@aniketbiswas/obsidian-mcp-server/build/index.js\"],\n      \"env\": {\n        \"OBSIDIAN_API_KEY\": \"your-key\"\n      }\n    }\n  }\n}\n```\n\n**Check logs:** `~/Library/Logs/Claude/mcp.log` (macOS)\n</details>\n\n<details>\n<summary><strong>Claude doesn't see the server</strong></summary>\n\n- Validate JSON: `cat config.json | python3 -m json.tool`\n- Path must be **absolute** (starts with `/` or `C:\\`)\n- Restart Claude Desktop completely (Cmd+Q / right-click quit)\n- Windows: ensure file is `.json` not `.json.txt`\n</details>\n\n<details>\n<summary><strong>Connection errors</strong></summary>\n\n- Obsidian must be running with Local REST API enabled\n- Test API: `curl -k https://127.0.0.1:27124/ -H \"Authorization: Bearer YOUR_KEY\"`\n- Regenerate API key if needed\n</details>\n\n<details>\n<summary><strong>Windows: \"node not recognized\"</strong></summary>\n\nUse full path: `\"command\": \"C:\\\\Program Files\\\\nodejs\\\\node.exe\"`\n</details>\n\n---\n\n## Development\n\n```bash\nnpm run build      # Compile TypeScript\nnpm run dev        # Watch mode\nnpm run inspector  # Test tools in browser UI\n```\n\n### Adding Tools\n\nCreate/edit files in `src/tools/`, then rebuild:\n\n```typescript\nserver.tool(\"my_tool\", \"Description\", { param: z.string() }, async ({ param }) => {\n  return { content: [{ type: \"text\", text: \"Result\" }] };\n});\n```\n\n---\n\n## FAQ\n\n**Is it free?** Yes, the Local REST API plugin is free.\n\n**Are my notes sent to the cloud?** No. Everything stays local. Only your conversation with Claude goes to Anthropic (like any Claude chat).\n\n**Works with Obsidian Sync?** Yes, it accesses your local vault files.\n\n---\n\n## Contributing\n\nPRs welcome! Fork → create branch → commit → open PR.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n\n---\n\nBuilt with [MCP SDK](https://modelcontextprotocol.io) · Powered by [Local REST API](https://github.com/coddingtonbear/obsidian-local-rest-api)\n","readmeFilename":"README.md"}