Skip to content

Obsidian Integration

Claude Code reads and writes markdown files directly on your filesystem. Obsidian watches the same directory and renders changes in real time. No middleware, no server, no MCP.

This is the approach Karpathy describes: “I have the LLM agent open on one side and Obsidian on the other. The LLM makes edits based on our conversation, and I browse the results in real time.”

MCP (Model Context Protocol) servers for Obsidian exist — there are 15+ on GitHub. We evaluated them and decided against requiring one:

  1. Claude Code already reads/writes files. An MCP adds a dependency for zero functional gain.
  2. Obsidian doesn’t need to be running. Our system works whether Obsidian is open or not.
  3. index.md does 80% of navigation. Claude reads the index to find pages, then reads those pages. Simple and effective up to ~200 pages.
  4. Fewer moving parts. No server to start, no port to configure, no API key.
SituationRecommended MCP
Wiki exceeds ~200 pagesqmd — hybrid BM25/vector search with MCP server mode
You use Claude Desktop (not Code)mcpvaultnpx @bitbonsai/mcpvault@latest /path/to/vault
You want Dataview queries from Claudeaaronsb/obsidian-mcp-plugin — runs inside Obsidian
Multi-client access (Code + Desktop)obsidian-claude-code-mcp by iansinnott

qmd by Tobi Lutke is a local markdown search engine. Hybrid BM25 + vector search, all on-device. It has both a CLI and an MCP server.

Terminal window
brew install qmd
# CLI (used by /search skill):
qmd search "vaults/my-research/wiki" "deployment patterns"
# MCP server (add to .claude/settings.json):
{ "mcpServers": { "qmd": { "command": "qmd", "args": ["mcp", "--dir", "vaults/my-research/wiki"] } } }
PluginTypePurpose
Graph ViewBuilt-inVisualize wiki connections
BacklinksBuilt-inSee what links to current page
DataviewCommunityQuery pages by frontmatter fields
Local Images PlusCommunityDownload remote images to local
Marp SlidesCommunityPreview generated slide decks
Web ClipperBrowser extClip articles to raw/
  • Open vaults/<name>/ as an Obsidian vault (not the engine root)
  • Set default attachment location to raw/assets in Obsidian settings
  • In Graph View, filter by wiki/ to hide raw sources
  • Color graph nodes by folder for visual distinction between page types