Freshvault MCP Server

Local semantic search over your Obsidian vault - always fresh, never reindex.

Local serverstdioPython

What is the Freshvault MCP server?

Local semantic search over your Obsidian vault - always fresh, never reindex. That is what the freshvault mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

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.

Getting it running

Installation goes through your MCP client rather than a global install: point it at freshvault on npm and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

The tools it exposes

The server publishes 8 tools. What each one is for:

  • Incremental — only changed/deleted notes are re-embedded (mtime+size diff), debounced 4s
  • Multi — client safe**: first server process becomes the writer (heartbeated lock); others are readers that hot-reload and promote themselves if the writer
  • 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
  • search_notes — semantic search + optional folder / tags / modified_after / modified_before scoping; exact-title lookups boosted
  • get_note_context — full note + its backlinks/outlinks from the vault link graph (path-traversal safe)
  • index_status — freshness report: notes/chunks, excluded count, last sync, watcher state
  • Flag — Env

What it needs from you

Configuration is passed through the environment: FRESHVAULT_VAULT, FRESHVAULT_EMBED_URL, FRESHVAULT_EMBED_KEY, FRESHVAULT_OLLAMA_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

How it compares

Plenty of planning and project tracking servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Freshvault's toolset — Incremental, Multi, Transactional and 5 more — is a fair guide to whether it matches your workflow. It is maintained by KIOKO-LAB; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Available tools

ToolWhat it does
Incrementalonly changed/deleted notes are re-embedded (mtime+size diff), debounced 4s
Multiclient safe**: first server process becomes the writer (heartbeated lock); others are readers that hot-reload and promote themselves if the writer dies
Transactionalan embedding-server outage mid-index can never lose or corrupt notes
Scalevectors 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
search_notessemantic search + optional folder / tags / modified_after / modified_before scoping; exact-title lookups boosted
get_note_contextfull note + its backlinks/outlinks from the vault link graph (path-traversal safe)
index_statusfreshness report: notes/chunks, excluded count, last sync, watcher state
FlagEnv

How to install the Freshvault MCP server

{
  "mcpServers": {
    "freshvault": {
      "command": "npx",
      "args": ["-y", "freshvault"],
      "env": {
        "FRESHVAULT_VAULT": "your-value",
        "FRESHVAULT_EMBED_URL": "your-value",
        "FRESHVAULT_EMBED_KEY": "your-value",
        "FRESHVAULT_OLLAMA_URL": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
FRESHVAULT_VAULTConfiguration value read at startup.Optional
FRESHVAULT_EMBED_URLEndpoint or connection string the server talks to.Yes
FRESHVAULT_EMBED_KEYCredential the server authenticates with.Yes
FRESHVAULT_OLLAMA_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Freshvault to Incremental.
  • Use Freshvault to Multi.
  • Use Freshvault to Transactional.

Frequently asked questions

It connects Freshvault to MCP-compatible AI assistants such as Claude and Cursor, exposing 8 tools (Incremental, Multi, Transactional, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Freshvault directly.