obsidian-vault-mcp
This server provides filesystem-based read/write access to an Obsidian vault — no Obsidian app or plugins required. Capabilities include:
File Operations
List vault files, optionally filtered by directory or sorted by recent modification
Read full file content or a specific heading's section
Create/overwrite files (with auto-creation of parent directories)
Append content to files, delete files
Rename/move files and automatically update all
[[wikilinks]]referencing them
Content Manipulation
Patch files by heading — append, prepend, or replace content relative to a markdown heading
Rename a heading while preserving its level
Find and replace text vault-wide or in a single file, with optional regex support
Directory Management
Create directories (including nested parents)
Delete directories (non-recursive by default; recursive option available)
Search
Case-insensitive substring search across all vault markdown files
Structure & Metadata
Get the heading outline of a file
Get or set YAML frontmatter properties (creates the frontmatter block if none exists)
Tags
List all
#tagsused across the vault with occurrence countsFind all files containing a specific tag
Links & Graph
List outgoing
[[wikilinks]]from a fileFind all files that link to a given file (backlinks)
Security: All operations are restricted to the vault root directory.
Provides tools for interacting with Obsidian vaults, including listing files, reading/writing content, searching, and patching notes relative to headings.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@obsidian-vault-mcplist files in my daily notes folder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
obsidian-vault-mcp
A filesystem-based MCP server for Obsidian vaults. Works when Obsidian is closed.
The problem
Every existing Obsidian MCP connector requires Obsidian to be running and the Local REST API plugin active. When Obsidian goes to the background or is closed, the connector drops — silently, mid-session.
Related MCP server: obsidian-mcp-complete
The solution
This server reads and writes your vault directly from disk via Node's
fs module. No Obsidian process required. No plugin dependencies.
No background disconnects.
Tools
list_vault_files— list vault files, optionally filtered by directoryget_vault_file— read a file's contentappend_to_vault_file— append content (creates file and dirs if needed)create_vault_file— create or overwrite a filepatch_vault_file— insert/replace content relative to a headingsearch_vault_simple— plain-text substring search across all notes
patch_vault_file supports three operations relative to any heading:
append— add content after the heading's sectionprepend— add content immediately after the heading linereplace— replace the entire heading section with new content
Install
Option A — Double-click install (recommended)
Download obsidian-vault-mcp.mcpb from the latest release and
double-click it. Claude Desktop handles the rest.
Option B — Build from source
Requires Node.js 18+.
git clone https://github.com/WhiteWolf-Cyber/obsidian-vault-mcp cd obsidian-vault-mcp npm install npm run build
Claude Desktop config
Add to mcpServers in
~/Library/Application Support/Claude/claude_desktop_config.json:
macOS / Linux
{ "Obsidian Vault": { "command": "node", "args": ["/absolute/path/to/obsidian-vault-mcp/dist/index.js"], "env": { "OBSIDIAN_VAULT_PATH": "/Users/yourname/ObsidianVault" } } }
Windows
{ "Obsidian Vault": { "command": "node", "args": ["C:\Users\yourname\dev\obsidian-vault-mcp\dist\index.js"], "env": { "OBSIDIAN_VAULT_PATH": "C:\Users\yourname\Documents\ObsidianVault" } } }
Restart Claude Desktop after saving.
Vault path
The vault path resolves in this order:
OBSIDIAN_VAULT_PATHenvironment variable~/ObsidianVault(fallback)
Security
Paths are validated at runtime — requests that resolve outside
VAULT_PATH are rejected. The server never traverses above the
vault root.
Mobile setup (remote access via Cloudflare Tunnel)
The same 21 vault tools are also served over HTTP/SSE so Claude on iOS/iPad can reach your vault as a custom connector. This is purely additive — the stdio transport above continues to work unchanged for Claude Desktop.
Install cloudflared:
brew install cloudflare/cloudflare/cloudflaredAuthenticate with Cloudflare:
cloudflared tunnel loginCreate the tunnel:
cloudflared tunnel create obsidian-vault-mcpCopy the tunnel UUID printed by the previous command into
cloudflare-tunnel.yml(replace<tunnel-id>in thecredentials-filepath).Set
VAULT_MCP_SECRETin your environment (or skip this and let the server generate one — it will print it to stderr on first run, copy it from there).Start the HTTP server:
npm run start:httpRun the tunnel:
cloudflared tunnel run obsidian-vault-mcp(or installcloudflaredas a launchd service for persistent background operation on macOS — see Cloudflare's launchd service docs for the plist template.)In the Claude iOS/iPad app, add a custom connector:
URL:
https://vault.envoyagent.app/sseAuthorization:
Bearer <your VAULT_MCP_SECRET>
Restarting the connector
If the connector seems stuck, the 10-second I/O timeout guard (see
withTimeout in src/tools.ts) will surface a clear error instead of
hanging silently. To restart the HTTP transport itself:
pkill -f http-server.js
npm run start:httpNo Claude Desktop restart is needed — this only affects the HTTP/SSE transport, not the stdio connection Claude Desktop uses.
Env vars
VAULT_MCP_SECRET=<generate with: openssl rand -hex 32 — do not commit>
PORT=3456
OBSIDIAN_VAULT_PATH=/Users/darrellmahrle/dev/vaultBuilt by
EnvoyAgent — AI-powered outbound voice appointment setting.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WhiteWolf-Cyber/obsidian-vault-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server