If you've been running an Obsidian vault for personal knowledge management, you know the pain of getting AI assistants to actually read it. Most solutions involve REST APIs, plugins, or cloud services—each adding latency, payload bloat, and dependencies you probably don't want. Seekstone, a new open-source MCP server (MIT licensed), takes a different approach: it reads your vault directly from disk, making zero network calls and requiring no Obsidian app running at all.
Raw Performance Numbers You Can Verify
Seekstone's benchmarks are published with full methodology on the project site—run them yourself against your own vault if you don't trust the claims. Testing on a real 1,955-note vault across 20 runs each, Seekstone hit a median warm search latency of just 2.4ms. Compare that to obsidian-mcp-server's REST API at 58ms, mcp-obsidian at 81ms, or the fs-subprocess approach used by obsidian-mcp-pro (104ms), mcpvault (199ms), and obsidian-mcp (219ms). The fastest alternative tested runs roughly 25× slower than Seekstone. That matters when you're iterating on prompts and need near-instant feedback.
How It Achieves the Speed
The secret sauce is filesystem-direct access combined with an in-process MiniSearch index—no subprocess spawning, no HTTP overhead, no round trips to an app that isn't even running. When you search, Seekstone returns ranked ~200-character excerpts rather than full note contents. That's roughly 3KB per result versus 1.75MB via REST for a typical payload—a 575× reduction. A query that would cost 459,000 tokens with conventional approaches runs about 800 tokens on Seekstone. Your context window stays clean and Claude actually reads your whole library instead of truncating it.
Sixteen Tools, One Warm Index
Seekstone ships sixteen tools covering the full range of vault operations: search, read_note (with section/block/line range support), list_notes (filterable by folder prefix or tag), list_tags (sortable by usage count or alphabetically), outline_note for heading structure navigation, get_backlinks and get_links for link graph traversal, and get_periodic_note for daily/weekly/monthly notes. Four of these capabilities—particularly the granular read operations and tag listing with sorting—don't exist in any other tested server. The index warms up once at startup, then stays hot.
Privacy by Architecture
No telemetry leaves your machine. No network calls are made ever. Writes only happen when you explicitly call a write tool. Your vault path is sandboxed—no MCP tool can read or write outside it. And because Seekstone works directly with Markdown files on disk, there's zero vendor lock-in. Frontmatter edits preserve byte-identical formatting (key order, quote style, comments) by design, verified by the test harness. Your notes are plain text you own forever, not some database in a proprietary format.
Getting Started
Installation is straightforward: download seekstone.mcpb from GitHub Releases, open it with Claude Desktop (double-click works), and point it at your vault folder when prompted. The npm packages are seekstone and obsidian-mcp-seekstone, requiring Node ≥ 22. It works with any client speaking MCP over stdio—Claude Desktop, Claude Code, Cursor, Windsurf, Continue, and more. Initial index build takes a few seconds on vaults with thousands of notes, and the in-memory index runs just a few MB.
Key Takeaways
- Seekstone reads your Obsidian vault directly from disk—no app, plugins, or network required
- Benchmarks show 2.4ms median warm search latency versus up to 219ms for alternatives
- Payload size drops ~575× (3KB vs 1.75MB per query), keeping context windows manageable
- Sixteen tools cover reading, writing, link graphs, and periodic notes with a single warm index
- Plain Markdown files ensure zero vendor lock-in; your vault stays yours forever
The Bottom Line
Seekstone is what Obsidian MCP integration should have been from the start—fast, minimal, respectful of your data. If you're serious about using Claude with your knowledge base without sacrificing performance or privacy, this is the tool you've been waiting for.