Help us improve
Share bugs, ideas, or general feedback.
npx claudepluginhub cameronsjo/obsidi-mcpObsidian plugin exposing 28+ vault tools via MCP server
Harness-native ECC skills, hooks, rules, MCP conventions, and operator workflows
Development marketplace for Superpowers core skills library
Open Design — local-first design app exposed to coding agents over MCP. Install once with your agent's plugin command and projects/files/skills are reachable through stdio.
Share bugs, ideas, or general feedback.
Expose Obsidian vault tools via Model Context Protocol (MCP) server.
Install via BRAT:
cameronsjo/obsidi-mcp as a beta plugingit clone https://github.com/cameronsjo/obsidi-mcp.git
cd obsidi-mcp
npm install
npm run build
# For development with auto-rebuild
npm run dev
Create a symlink from your Obsidian vault's plugins folder:
ln -sfn /path/to/obsidi-mcp /path/to/vault/.obsidian/plugins/obsidi-mcp
For stdio transport, add to your Claude Code MCP config:
{
"mcpServers": {
"obsidian": {
"command": "obsidian",
"args": ["--vault", "Your Vault Name", "--mcp"]
}
}
}
For HTTP transport:
{
"mcpServers": {
"obsidian": {
"url": "http://localhost:3000/mcp",
"transport": "streamable-http"
}
}
}
Open Settings > Obsidi MCP to configure:
| Category | Tools |
|---|---|
| Read | read_note, read_note_range, get_note_metadata, get_active_note |
| Write | create_note, modify_note, append_to_note, delete_note, rename |
| Search | search_vault, search_by_tag, search_by_date |
| Navigation | list_notes, list_folder, get_backlinks, get_outgoing_links |
| Tags | list_all_tags, manage_tags |
| Links | suggest_links, check_broken_links |
| Metadata | get_vault_stats, get_instructions |
| Semantic | semantic_search, find_similar (requires RAG provider) |
| Tool | Description |
|---|---|
sync_status | Check Obsidian Sync connection status |
sync_history | Get version history for a file |
sync_read | Read a specific version of a file |
sync_restore | Restore a file to a previous version |
file_diff | Diff between two versions of a file |
file_history | Get file modification history |
file_history_read | Read a file at a specific history point |
Other plugins can register tools with Obsidi MCP:
// In your plugin's onload()
const mcp = this.app.plugins?.plugins?.['obsidi-mcp'];
if (mcp?.registerToolProvider) {
mcp.registerToolProvider({
id: 'my-plugin',
name: 'My Plugin',
tools: myToolDefinitions,
});
}
// In your plugin's onunload()
const mcp = this.app.plugins?.plugins?.['obsidi-mcp'];
mcp?.unregisterToolProvider?.('my-plugin');
Tool providers registered later override built-in tools with the same name, enabling plugins to provide enhanced versions (e.g., RAG-powered search).
obsidi-mcp
├── MCPServer (stdio/HTTP/SSE transports)
│ ├── Tool dispatch (dynamic from registry)
│ ├── Vault resources (live subscriptions)
│ ├── Completions (path autocomplete)
│ ├── Elicitation (confirmation dialogs)
│ └── Log forwarding
├── ObsidianTools (28 built-in vault tools)
├── CLI Bridge (7 Obsidian CLI tools)
├── VaultResources (direct app.vault access)
└── Tool Provider Registry
├── Built-in tools (layer 1)
├── CLI bridge tools (layer 2)
└── External providers (layer 3, last wins)
The HTTP/SSE server binds to localhost with no authentication, no TLS, and no access control. It is designed for local-only use by MCP clients running on the same machine.
Do not expose the server to a network without a secured reverse proxy. Anyone who can reach the HTTP port has full read/write access to your vault.
If you need remote access, place the server behind a reverse proxy that provides authentication, TLS, rate limiting, and role-based access control (e.g., Caddy, nginx, Cloudflare Tunnel).