freshvault
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., "@freshvaultSearch my notes for what I wrote about cache eviction strategies"
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.
freshvault
Your Obsidian vault is Claude's memory. Always fresh, always local.
Every other vault-search MCP makes you re-run an index command, babysit a watch terminal, or click "Update Index" in a web UI. freshvault watches your vault from inside the MCP server: edit a note, and Claude sees it seconds later. Automatically. Forever.

🔄 Never reindex — the file watcher lives in the server process; boot catch-up absorbs offline edits
🔒 100% local — embeddings via Ollama (
bge-m3), your notes never leave your machine🌏 Multilingual by default —
bge-m3handles Korean, Japanese, and 100+ languages that English-only defaults fail on🎯 Benchmark-driven retrieval — we built BM25 hybrid fusion, measured it on Korean paraphrase queries, watched it hurt (82.5% → 47.5% top-1), and deleted it. Pure dense, on purpose — receipts
🪶 No vector DB, no Docker, no Python — JSON metadata + a Float32 sidecar, plain Node, source you can read in one sitting
🧠 Chunking that respects sentences — YAML frontmatter stripped, splits on paragraph/sentence boundaries (CJK-aware)
Install
Prerequisites: Node 20+ and Ollama.
npx -y freshvault setupThat's it. The wizard detects your Obsidian vault, pulls the embedding model, builds the index, and registers with Claude Code. There is no step 2, and there is never a step 2: no index command to re-run, no watch terminal, no background service.
{
"mcpServers": {
"freshvault": {
"command": "npx",
"args": ["-y", "freshvault", "serve"],
"env": { "FRESHVAULT_VAULT": "/absolute/path/to/your/vault" }
}
}
}Claude Code one-liner:
claude mcp add freshvault -s user -- npx -y freshvault serveRelated MCP server: obsidian-hybrid-search
Use
Just ask Claude about your notes:
"Search my notes for what I wrote about cache eviction strategies"
Three tools, all read-only:
tool | what it does |
| semantic search + optional |
| full note + its backlinks/outlinks from the vault link graph (path-traversal safe) |
| freshness report: notes/chunks, excluded count, last sync, watcher state |
Scoped queries competitors gate behind settings or paywalls work per-query here:
"Search my notes tagged #project modified after June for the budget discussion"
How it works
Obsidian vault ──fs.watch──▶ freshvault MCP server ──search_notes──▶ Claude
(.md files) (chunks → bge-m3 embeddings (generation)
→ one JSON index, incremental)Incremental: only changed/deleted notes are re-embedded (mtime+size diff), debounced 4s
Safety net: a 60s mtime sweep catches events the watcher misses (network drives, atomic-rename editors)
Multi-client safe: first server process becomes the writer (heartbeated lock); others are readers that hot-reload and promote themselves if the writer dies
Transactional: an embedding-server outage mid-index can never lose or corrupt notes
Scale: vectors live in a packed Float32 sidecar (fast startup, compact); brute-force cosine over thousands of chunks is milliseconds. Honest note: search is still linear — sub-100ms into tens of thousands of chunks, but this is not a vector DB replacement for huge corpora
Multiple vaults
Register one server per vault — index files are kept per-vault automatically:
claude mcp add work-vault -s user -e FRESHVAULT_VAULT=/path/to/work -- npx -y freshvault serve
claude mcp add personal-vault -s user -e FRESHVAULT_VAULT=/path/to/personal -- npx -y freshvault serveOther embedding servers (LM Studio, LiteLLM, OpenAI-compatible)
FRESHVAULT_EMBED_API=openai FRESHVAULT_EMBED_URL=http://localhost:1234 npx -y freshvault serveAnything speaking /v1/embeddings works; FRESHVAULT_EMBED_KEY for authenticated endpoints (never written to the config file).
Configuration
Everything works with zero config after setup. Override when needed:
Flag | Env | Default |
|
| from |
|
|
|
|
|
|
|
| platform data dir |
— |
|
|
— |
|
|
— |
| none (openai mode, optional) |
— |
| none — e.g. |
Commands: setup · serve (default) · index (manual escape hatch) · status
Benchmark
A Korean retrieval micro-benchmark ships in-repo (node scripts/bench.mjs) — 30 Korean notes, 40 paraphrase queries, comparing embedding models on top-1/MRR. Results and the bge-m3-ko (85.0% top-1, 634MB) import guide in docs/ko-bench.md.
Roadmap
MCPB bundle for one-click Claude Desktop install
Reranking pass for large vaults
PDF text extraction at index time
License
MIT © Kioko Lab
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
- Flicense-qualityCmaintenanceEnables semantic search across Obsidian vaults using vector embeddings and ChromaDB. Supports multiple vaults with real-time indexing and provides both MCP server and CLI interfaces for natural language querying of notes.Last updated4
- Alicense-qualityAmaintenanceMCP server that indexes Obsidian notes and enables hybrid search (full-text, fuzzy, semantic) for AI assistants to find and read notes.Last updated72490MIT
- Flicense-quality-maintenanceLocal MCP server to access Obsidian vault via the obsidian-local-rest-api, with semantic search and project memory using Ollama embeddings.Last updated
- FlicenseAqualityCmaintenanceMCP server for semantic search in an Obsidian Second Brain vault using self-hosted Qdrant and Google Gemini embeddings.Last updated3
Related MCP Connectors
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
An MCP server that gives your AI access to the source code and docs of all public github repos
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
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/KIOKO-LAB/freshvault'
If you have feedback or need assistance with the MCP directory API, please join our Discord server