vault-map
Provides tools for navigating an Obsidian vault, including vault mapping, note outlines, section retrieval, frontmatter queries, and regex search through note text.
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., "@vault-mapOutline the note 'Meeting 2024-03-14' and fetch the section 'Action items'."
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.
vault-map
A navigable map of your Obsidian vault for coding agents (MCP server). Skeletons of your notes — headings with line ranges, queryable frontmatter, outgoing links — so the agent stops loading whole notes just to find its way around.
It is the markdown counterpart of repo-map (which does the same for source code).
Why
An agent that reads a 2 500-line note to answer one question burns ~49 000 tokens. With
outline() + get_section() it reads the table of contents and the one chapter it needs:
~5 200 tokens — an 89 % cut, measured on a real vault (python _smoke.py <vault>
reproduces the measurement on yours).
The point isn't only cost: an agent that can afford to look around actually looks around, instead of answering from memory.
Related MCP server: vault-master-mcp
Tools
Tool | What it gives you |
| whole-vault map: folder, key frontmatter, H2 titles, outgoing links |
| one note's heading tree with line numbers — call this before reading |
| the body of a single section, nothing else |
| filter notes by frontmatter without opening them ( |
| regex search through note text, each hit located as |
| (re)target the server at another vault / folder of |
query also understands two pseudo-fields for finding a note by name: title:<word> and
path:<folder>.
Freshness is automatic: the map is rebuilt whenever a note changes (signature = aggregated mtime + size), so an outline never lies. A stale outline is worse than an honest read.
Requirements
Python 3.10+. One dependency (mcp) — the engine itself is pure stdlib.
Install
git clone https://github.com/noambinabout-boop/vault-map.git
cd vault-map
python -m venv .venv
.venv/Scripts/pip install -r requirements.txt # Windows
# .venv/bin/pip install -r requirements.txt # macOS / LinuxThen register it with your agent. For Claude Code, from anywhere:
# Windows
claude mcp add vault-map --scope user -- C:\path\to\vault-map\.venv\Scripts\python.exe C:\path\to\vault-map\server.py
# macOS / Linux
claude mcp add vault-map --scope user -- /path/to/vault-map/.venv/bin/python /path/to/vault-map/server.pyCheck with /mcp inside Claude Code. Any MCP-capable client works the same way — it is a
plain stdio server: <python> server.py.
Point it at your vault
By default the server targets the current working directory. Two ways to change that:
Per call:
index("/path/to/vault")— retargets on the fly.Always the same vault, whatever project you launched the agent in: set
VAULT_MAP_TARGET. In~/.claude.json, on the server entry:
"vault-map": {
"type": "stdio",
"command": "C:\\path\\to\\vault-map\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\vault-map\\server.py"],
"env": {
"VAULT_MAP_TARGET": "C:\\path\\to\\your\\vault",
"PYTHONIOENCODING": "utf-8"
}
}On Windows, PYTHONIOENCODING: utf-8 avoids a crash when a note contains an emoji.
Make the agent actually use it
Tools nobody calls save nothing. Put the reflex in your CLAUDE.md (or equivalent):
To find your way around the vault, use vault-map, not Read:
1. vault_map() for the big picture, query(filter) to filter by frontmatter
2. outline(note) before opening any note
3. get_section(note, title) to read only the part that matters
4. grep_notes(pattern) to search by content
Raw Grep/Read: last resort only.If your client defers tool schemas, mark the server "alwaysLoad": true so the tools are
there from the first message.
Verify your install
python _handshake.py # full MCP stdio round-trip
python _smoke.py <your-vault> # builds the map and prints the token savingLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceAn MCP server that provides semantic search and vault operations for Obsidian notes, enabling agents to recall and manage notes with provenance and low token usage.776ISC
- Alicense-qualityDmaintenanceAn MCP server that treats Obsidian vaults as knowledge graphs, enabling AI agents to traverse wikilinks, assemble token-budgeted context, and search with backlink awareness.31MIT
- Alicense-qualityAmaintenanceAn MCP server that enables AI agents to read, search, and write to your Obsidian vault.4MIT
- Alicense-qualityBmaintenanceMCP server for local-first RAG over Obsidian vaults, enabling AI agents to search and ask questions about notes with grounded citations.MIT
Related MCP Connectors
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
An MCP server that gives your AI access to the source code and docs of all public github repos
Shared long-term memory vault for AI agents with 20 MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/noambinabout-boop/vault-map'
If you have feedback or need assistance with the MCP directory API, please join our Discord server