ebullient6k downloadsMCP server connecting Open WebUI, Claude Desktop, and other LLMs to your vault.
An Obsidian plugin that runs an MCP (Model Context Protocol) server, enabling external LLM tools to access your vault. Supports HTTP transport natively (Open WebUI, remote LLMs). An optional bridge script provides a bridge from HTTP to stdio (Claude Desktop).
Important Notes
- Network Use: This plugin runs a local HTTP server on your machine. It does not connect to external services.
- Privacy: No telemetry or data collection. All data stays on your machine.
- Desktop Only: This plugin requires a desktop environment and will not work on mobile devices.
.obsidian/plugins/vault-as-mcp/ directoryAssuming you have the BRAT plugin installed and enabled:
https://github.com/ebullient/obsidian-vault-mcp as the URL, select the latest version and installThe plugin provides three ways to control the server:
Open Settings → Vault as MCP:
Bearer token authentication is optional but recommended for security, especially when accessing your vault over a network.
To enable authentication:
To disable authentication:
In Open WebUI's MCP configuration, add a new server: http://localhost:8765/mcp
If Open WebUI is running on a remote machine (e.g., via Tailscale): http://<your-machine-ip>:8765/mcp
With authentication enabled, add the bearer token from your MCP server configuration in Open WebUI using the Authorization header:
Authorization: Bearer <your-token-here>
claude mcp add -t http -s local Obsidian http://localhost:8765/mcp -H "Authorization: Bearer <token>"
Notes:
Claude Desktop uses stdio transport for MCP servers, so you'll need the
mcp-bridge.js script to bridge stdio to HTTP.
Requirements:
Setup a stdio bridge (alternative to http):
Download mcp-bridge.js from the latest GitHub
release
and save it somewhere accessible (e.g.,
~/.obsidian/scripts/mcp-bridge.js). Source is in the bridge branch.
Find your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/claude/claude_desktop_config.jsonAdd the MCP server configuration:
{
"mcpServers": {
"obsidian-vault": {
"command": "node",
"args": ["/absolute/path/to/mcp-bridge.js"],
"env": {
"VAULT_MCP_URL": "http://localhost:8765/mcp"
}
}
}
}
With authentication enabled, add the VAULT_MCP_TOKEN environment
variable:
{
"mcpServers": {
"obsidian-vault": {
"command": "node",
"args": ["/absolute/path/to/mcp-bridge.js"],
"env": {
"VAULT_MCP_URL": "http://localhost:8765/mcp",
"VAULT_MCP_TOKEN": "your-token-here"
}
}
}
}
Important: Replace /absolute/path/to/mcp-bridge.js with the actual
path where you saved the bridge script
Restart Claude Desktop
Testing:
Troubleshooting:
mcp-bridge.js is correct and absolutenode --versionTool names, parameters, and behavior are defined in
src/vaultasmcp-Tools.ts and served live via the
MCP tools/list endpoint — that's the source of truth for exact parameter
names, types, and descriptions. The summary below is for orientation only.
read_note — Read a note's content by path; optionally filtered to named
headings, or metadata-only (links/embeds/outline/frontmatter, no content)read_multiple_notes — Read several notes in one request (max 10)search_notes — Find notes by folder, tag(s), frontmatter, modification
time, or text contentlist_notes — List notes and subfolders in a directory (non-recursive)create_note — Create a note or binary file, optionally from a templateappend_to_note — Append content to a note, at the end or after a headingupdate_note — Replace a note's entire contentpatch_note — Replace an exact string in a note; prefer over update_note
for surgical editsdelete_note — Move a note to the system trashrename_note — Rename or move a note, rewriting links that point to itread_periodic_note — Get the path (and content, if it exists) for a
periodic notelist_templates — List available Templater templatesSee CONTRIBUTING.md for development setup, build commands, and architecture details. AI assistants should also review CLAUDE.md for working guidelines.
MIT