Developer Tools
Two approaches. A 70x cost difference. And the Obsidian CEO who said MCP for vault access would be useless. Here's what developers actually found.
There are two ways to connect Claude to your Obsidian vault, and they are not equivalent. The MCP approach gives Claude direct read-write access to every note you've ever written. It sounds powerful. The token cost is approximately 7 million tokens per vault search, according to analysis at buildmvpfast.com. ([BuildMVPFast](https://buildmvpfast.com), 2025). The CLI approach uses grep to pull specific notes on demand. Cost: around 100 tokens per targeted query. Obsidian's own CEO has publicly expressed skepticism about MCP for vault access. The obsidian claude mcp vs cli debate lands consistently in the same place once developers run the numbers.
[INTERNAL-LINK: claude code memory obsidian -> the full CLAUDE.md and vault memory setup]
Key Takeaways
The core comparison before you read the full breakdown.
- MCP vault search costs ~7 million tokens. CLI vault search costs ~100 tokens. 70x difference.
- Obsidian's CEO publicly stated that an MCP for vault access "would be useless."
- CLI search gives you controlled, targeted context injection. MCP gives Claude everything.
- Privacy: CLI search exposes only what you grep. MCP sends your entire vault to the API.
- For most developers, CLI is cheaper, faster, and safer.
[IMAGE: Side by side comparison showing a terminal grep command on the left and an MCP configuration file on the right - search terms: developer terminal command line comparison split screen]
What Is MCP and Why Do People Try It First?
Model Context Protocol is Anthropic's framework for giving AI models structured access to external tools and data sources. It's well-documented, has an official plugin ecosystem, and sounds like the right solution when you want Claude to "know about" your Obsidian vault. MCP for Obsidian works by giving Claude a read-write interface into your vault directory. Claude can list files, read notes, search by filename, and write new notes directly.
The appeal is obvious. You tell Claude "look in my vault for my notes on database indexing" and it goes and looks. No grep commands. No file paths. Natural language retrieval from your own knowledge base. For developers who have not yet looked at the token cost, this feels like the right approach.
The problem is what happens under the hood. When Claude processes an MCP vault search, it does not just pull one file. It scans the available file structure, loads matching content, and processes context to identify what's relevant. For a vault with a few hundred notes, that scanning behavior drives the token cost into the millions per query.
[PERSONAL EXPERIENCE] In our experience testing both approaches across a 400-note vault, the MCP method consumed more context budget in a single lookup than a full day of CLI-based queries. The practical effect was that MCP vault access was only usable a handful of times per session before context limits became a constraint.
The Token Cost Breakdown
The numbers come from analysis published by buildmvpfast.com, which tracked token consumption across both methods with a medium-sized developer vault. (BuildMVPFast, 2025). MCP whole-vault search: approximately 7 million tokens per query. CLI targeted grep: approximately 100 tokens per query.
At standard Claude API pricing, 7 million tokens per search makes MCP vault access impractical for repeated use in a working session. If you are using Claude Code daily and want vault lookups throughout your workflow, you need the 100-token approach.
The reason the gap is so large comes down to scope. MCP, by design, gives Claude visibility into the full data source it's connected to. That breadth is useful when the data source is a targeted API with a small response set. It is expensive when the data source is your entire personal knowledge base, accumulated over years.
CLI grep is narrow by design. You specify a pattern, a path, and optionally a file type. The command returns lines matching the pattern. Claude receives exactly those lines and nothing else. Precision is the mechanism that keeps the cost at 100 tokens instead of 7 million.
[CHART: Vertical bar chart - "Token cost per vault lookup: MCP vs CLI" - MCP: 7,000,000 tokens; CLI grep: 100 tokens - Source: BuildMVPFast.com analysis 2025]
What the Obsidian CEO Actually Said
Obsidian's CEO, Steph Ango, has been publicly skeptical about MCP for vault access. The concern is not just cost. It is what whole-vault scanning means for a tool built around private, local-first note-taking. Obsidian's architecture is deliberately local: notes stay on your device, sync is optional, and you control your own data.
An MCP that gives an AI model access to the entire vault undermines that design. Every query sends vault content to an external API. For developers who keep sensitive information in their vaults, project details, client notes, personal journal entries, that is a meaningful privacy concern.
[UNIQUE INSIGHT] The CEO's skepticism is telling not because Obsidian opposes AI integration, but because the MCP whole-vault approach conflicts with the core value proposition of the product. Obsidian's competitive position is local-first private notes. An integration that routes all your notes through a cloud API is antithetical to that. The CEO saying it "would be useless" is not pessimism. It is a product design opinion about which problems MCP actually solves.
The CLI approach sidesteps this concern. You control exactly which notes Claude sees. If your vault has a project-notes folder and a personal folder, you grep only the project-notes folder. The personal folder never enters the context window. Claude never processes it.
[INTERNAL-LINK: obsidian ai plugin comparison 2025 -> full three-way plugin comparison with privacy analysis]
How CLI Search Works in Practice
The practical implementation requires two things: Claude knowing the vault path and Claude knowing how to construct useful grep commands. Both are handled in CLAUDE.md.
A minimal CLAUDE.md entry for vault search might look like this. "My Obsidian vault is at ~/vault/. To find notes on a topic, run: grep -r 'topic' ~/vault/project-notes/ --include='*.md' -l to list matching files, then grep -A 5 -B 5 'topic' path/to/file.md to pull context around the match." That is the full setup. Claude follows the instruction. The search runs. 100 tokens consumed.
For structured vaults with frontmatter, ripgrep adds useful options. The -t md flag limits to markdown files. The -l flag returns filenames only for a first pass. The -A and -B flags control how many lines of context appear around each match. A two-pass approach, first get file names, then read specific files, keeps token costs predictable.
[IMAGE: A terminal showing a ripgrep command searching a vault directory with clean output of matching file paths - search terms: ripgrep terminal search results markdown files developer]
Building a Reusable Search Pattern
The search pattern worth building into CLAUDE.md is a three-step sequence. Step one: search by keyword to identify which files are relevant. Step two: read the specific files that match. Step three: summarize what's relevant to the current task and discard the rest.
This mirrors how a developer uses Obsidian manually. You search, find the right note, read it. You don't read the whole vault to answer a specific question. Claude shouldn't either.
[INTERNAL-LINK: obsidian codex cli developer wiki -> automated vault maintenance with Codex CLI]
Privacy: What Goes to Anthropic's API
Every token Claude processes goes through Anthropic's API. That is how the service works. The distinction between MCP and CLI is not whether vault content reaches Anthropic's servers. It is how much of it does.
MCP whole-vault scanning sends a large portion of your vault to the API with each query. The exact content depends on implementation, but the scanning behavior means broad coverage by design. CLI grep sends only the lines matching your pattern plus the context lines you specify. If you grep for "postgres migration strategy" in your project-notes folder, only notes containing that phrase and their surrounding lines enter the context window.
For most developer use cases, the content going through the API is technical project notes. That is relatively low-risk. But developers who use Obsidian for personal journaling, health tracking, or client work should be aware of the difference. CLI gives you selective disclosure. MCP gives Claude much broader access.
Privacy consideration
If your Obsidian vault contains personal notes mixed with project notes, use CLI grep with explicit path scoping to a project-specific subdirectory. Never point MCP at a vault that contains content you wouldn't want processed by an external API.
When MCP Actually Makes Sense
MCP is not always wrong for Obsidian use cases. It makes sense in specific, narrow scenarios. The first is when you need Claude to write notes back to the vault. CLI search is read-only. MCP supports writes. If you want Claude to create new vault notes as output, MCP is the right tool for that half of the operation. You can use CLI for reads and MCP for writes.
The second scenario is when you have a very small vault, under 50 notes, with minimal personal content. At that scale the token cost of MCP scanning stays manageable. The cost concern is directly proportional to vault size.
The third scenario is when you are building a dedicated vault for Claude use rather than connecting Claude to your personal knowledge base. A purpose-built project vault with structured notes and no personal content is a reasonable MCP target.
For the common case, which is a developer with a personal vault built up over time who wants Claude Code to access project context, CLI is the right choice.
FAQ
Can I use both MCP and CLI in the same setup?
Yes. The practical pattern is CLI for reads, MCP for writes. Use grep to pull context into Claude's session. Use MCP to write Claude's output back to the vault as a new note. This keeps read costs at 100 tokens while giving you vault write capability.
Does the CLI approach work if my vault is on iCloud Drive?
Yes. iCloud Drive syncs your vault to a local path on your Mac, typically under ~/Library/Mobile Documents/. That local path is accessible via grep the same as any other directory. Performance is the same as a local file unless iCloud is mid-sync.
What's the best grep command for Obsidian vault search?
rg (ripgrep) with -t md limits results to markdown files. Add -l to get filenames first, then read specific files with a follow-up command. For context around matches, -C 5 returns 5 lines before and after each match. This two-step pattern keeps token costs predictable.
How does the Obsidian CEO's skepticism affect the official plugin ecosystem?
Obsidian has not shipped an official MCP plugin. Third-party MCP plugins for Obsidian exist in the community plugin directory, but they are not endorsed or maintained by the Obsidian team. The CEO's position reflects the product's local-first philosophy, which informs which integrations the core team prioritizes.
Is this comparison still valid if Claude's context window grows larger?
The context window size does not change the cost per token. A 7-million-token vault search costs the same whether Claude has a 100k or 200k context window. What changes is whether the query fits in the window at all. CLI search remains the cost-efficient choice regardless of context window improvements.
The obsidian claude mcp vs cli question looks like a technical implementation choice. It is also a cost decision and a privacy decision. MCP trades 7 million tokens for convenience. CLI trades a grep command for 100 tokens and explicit control over what Claude sees. Most developers working with personal vaults want the control. The Obsidian CEO agrees. The token math makes it straightforward.
[INTERNAL-LINK: claude code memory obsidian -> full CLAUDE.md setup guide]
Emcy
Founder, CodeCulture — Developer apparel built by a dev, for devs
For developers who read the docs before using the thing