Head-to-head, benchmarked

Seekstone vs mcp-obsidian.

mcp-obsidian connects Claude to your vault by proxying Obsidian's Local REST API plugin — which returns full note content for every search hit. On our committed 10,000-note benchmark vault that meant 95 MB per search on average, and one broad query returned 370.9 MB (~97.8 million tokens) in a single tool call. Seekstone reads the vault from disk and returns ranked excerpts instead: ~2 KB for the same queries, with Obsidian closed.

Every number below comes from an open-source harness run on committed 1,000 / 5,000 / 10,000-note vaults — reproducible, not estimated. Full methodology on the benchmarks page; mcp-obsidian lives at MarkusPfundstein/mcp-obsidian.

At a glance

The comparison in one table.

Seekstone mcp-obsidian
Architecture Filesystem-direct, warm in-process index REST proxy via Local REST API plugin
Local REST API plugin Not needed Required
Obsidian app running Not needed — works with Obsidian closed Required
Search payload @ 10k notes (mean) 2.0 KB 95 MB
Worst single query @ 10k notes ~2 KB 370.9 MB / ~97.8M tokens
Warm search latency @ 10k notes 6.2 ms 1,550 ms (~250× slower)
Scaling

What happens as your vault grows.

A vault only gets bigger. Here's both servers on the same committed vaults at 1,000, 5,000, and 10,000 notes — payload first, then warm latency.

Search payload — per query lower is better

Server1k notes5k notes10k notes
Seekstone 1.6 KB1.8 KB2.0 KB
mcp-obsidian 9.8 MB45 MB95 MB

Warm search latency lower is better

Server1k notes5k notes10k notes
Seekstone 1.1 ms3.1 ms6.2 ms
mcp-obsidian 164 ms740 ms1,550 ms
The architecture

Why the numbers differ.

The payload gap is architectural, not a tuning issue. Obsidian's REST API returns the full content of every matching note, and mcp-obsidian forwards that to the model — so payload grows with your vault. At 1,000 notes it's 9.8 MB per search; at 10,000 notes it's 95 MB. Seekstone returns short ranked excerpts, so it stays ~2 KB at every size. That's up to a ~47,000× difference in what your context window has to absorb.

Latency follows the same logic: every mcp-obsidian query is an HTTP round-trip into the app, while Seekstone serves queries from a warm in-process full-text index kept live by a file watcher. At 10,000 notes that's 1,550 ms vs 6.2 ms warm — and the gap widens as the vault grows.

Honest accounting

Where mcp-obsidian has the edge.

No tool wins every axis, and a comparison that pretends otherwise isn't worth your trust.

No index in memory.

mcp-obsidian keeps no state of its own — search runs inside the Obsidian app you already have open. Seekstone's warm index costs a few MB of RAM per vault; mcp-obsidian offloads that to Obsidian.

It sees the app's live view.

Every call goes through the running app, so results reflect exactly what Obsidian itself sees at that moment. Seekstone reads from disk, so an edit is visible once Obsidian autosaves it (typically within a couple of seconds).

Familiar if you already run the plugin.

If the Local REST API plugin is already part of your setup, mcp-obsidian slots into it without introducing a second way of reading the vault.

Don't take our word for it

Reproduce every figure.

The harness, the query set, and all three vaults are committed to the Seekstone repo. Nothing on this page is a marketing estimate.

Terminal
git clone https://github.com/shaqmughal/seekstone cd seekstone && npm install npm run harness -- bench --backend fs \ --vault packages/harness/fixtures/vault
Switching

Trying Seekstone takes about 30 seconds.

Seekstone is a standard MCP stdio server — it works in any client that runs mcp-obsidian, side by side with your current setup, and doesn't touch your notes until you ask it to. Guided setup below, or see the per-client install guides.

Terminal
npx -y seekstone init
FAQ

Common questions.

Is Seekstone a drop-in alternative to mcp-obsidian?

For typical use, yes. Both are standard MCP stdio servers, so any MCP client that runs mcp-obsidian can run Seekstone — npx -y seekstone init sets it up for Claude Desktop, Claude Code, Cursor, and VS Code. The difference is that Seekstone reads your vault from disk, so it needs no Local REST API plugin and works with Obsidian closed.

Why is mcp-obsidian's search payload so large?

It proxies Obsidian's Local REST API, which returns the full content of every matching note. On a 10,000-note vault that averaged 95 MB per search in our benchmark, with one broad query returning 370.9 MB (~97.8 million tokens) in a single tool call. Seekstone returns ranked excerpts instead — ~2 KB for the same queries.

Do I need to uninstall anything to switch?

No. Seekstone runs alongside whatever you have installed and never requires the Local REST API plugin. Point SEEKSTONE_VAULT at your vault folder and it works — whether Obsidian is running or not.