ClaudeとObsidianのつなぎ方|598ノートのVaultでgrepとMCPの取り出し量を測った

ObsidianのVaultをClaudeにつなぐ三系統(Claude Code直読み、Filesystem MCP、専用MCP)を比べ、運営者の598ノートのVaultで、grepとMCP検索がClaudeに渡す文字数を測った。前後5行つきのgrepは最大約82万字になり、MCP検索は日本語の複合語を取りこぼした。

ObsidianのVaultは、素のMarkdownファイルが入ったただのフォルダだ。 だからClaudeにつなぐ方法は一つではなく、いくつかの系統がある。 どれを選ぶかで、トークンの消費量も、APIに渡る情報の範囲も、ノートを書き戻せるかどうかも変わる。

本稿では、実際に使われている三系統を取り上げ、設定の勘どころと使い分けを示す1。 前の二記事で作った「引き出せるVault」と「育つVault」を、どの線でClaudeにつなぐかの判断材料にしてほしい。

先に結論を言っておくと、多くの人は最も単純な方式(Claude Codeでフォルダを直接ひく)で足り、MCPまで立てる必要はない。 セットアップの重さを理由にObsidian+Claudeをあきらめる人がいるが、その重さは選んだ方式の問題で、いちばん軽い入口から始めれば避けられる。 以下は「軽い方から試し、必要になったら重い方へ広げる」という順で読んでほしい。

方式A:Claude Codeでフォルダを直接ひく

いちばん単純なのは、Obsidian側に何も足さず、Claude CodeをVaultのフォルダで動かす方法だ。 Claude Codeは、ファイルを読むツールとファイル内を検索するツールを持っている。 Vaultは素のMarkdownなので、grep や ripgrep でそのまま中身を探せる。

このとき、Vaultの置き場と検索の手順を CLAUDE.md に書いておくと、Claudeがそれに従って探す。

私のObsidian Vaultは ~/vault/ にある。
あるトピックのノートを探すときは、次のように検索する:

  grep -r 'トピック名' ~/vault/02-projects/ --include='*.md' -l

ripgrep(rg)を使うと、もう少し細かく絞れる。 -t md でMarkdownだけに限り、-l でまずファイル名だけを返し、-C 5 でマッチした前後五行を一緒に出す。 最初に該当ファイルを特定し、次にそのファイルだけを読む。 この二段構えにすると、Claudeが読み込む量が予測できる範囲に収まる。

長所は三つある。 プロジェクトのノートだけを見せて個人の日記は見せない、といった選択的な開示ができる。 検索でマッチした分しかClaudeに渡らないので、消費が小さく済む。 同じセッションで何度も引くような繰り返しの作業に強い。

短所は、ノートの書き戻しやObsidian側の機能との連動が、この方式そのものには含まれないことだ。 Claudeにファイルを書かせること自体はできるが、Obsidianのプラグイン(Dataviewのような)と直接やり取りはしない。

方式B:Filesystem MCPでVaultを指す

二つめは、公式のFilesystem MCPサーバーにVaultのパスを渡す方法だ。

npx @modelcontextprotocol/server-filesystem /path/to/obsidian/vault

Obsidian側のプラグインはいらない。 Obsidianが起動していなくても動く。 設定はVaultのフォルダを渡すだけで、読み書きの両方に対応する。

Claude Codeの直読みとの違いは、つなぐ相手がClaude Code以外のMCPクライアントでも使える点だ。 たとえばClaude Desktopから同じVaultを読み書きさせたいときは、この方式が素直に収まる。 機能はファイルの読み書きが中心で、検索の賢さはClaude側の地力に任せる形になる。

方式C:Obsidian専用MCPサーバーを立てる

三つめは、Obsidianに特化したMCPサーバーを使う方法だ。 代表的なものに、Pythonで書かれた mcp-obsidian や、より機能の多いNode製のサーバーがある2。

これらはObsidianの「Local REST API」というコミュニティプラグイン経由でVaultとやり取りする。 使うには、そのプラグインを入れてAPIキーを発行し、Obsidianを起動しておく必要がある。 やり取りはローカル(localhost)に閉じる。

手間が増えるかわりに、機能はいちばん多い。 ノートの読み書き、Vault内の検索、バックリンクの解析、タグ階層の利用といった、Obsidianの構造を踏まえた操作ができる。 セマンティック検索やテンプレート実行をClaudeに開く拡張もある。

Claude Desktopにつなぐときは、設定ファイルにサーバーを登録する。

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

このファイルの mcpServers の中に設定を書き、Claude Desktopを再起動すると有効になる。

Claude Codeにつなぐときは、設定ファイルを手で書かず、claude mcp add で登録できる。 -s で登録の範囲を選べ、local(既定、そのプロジェクトの自分だけ)、project(リポジトリでチームと共有)、user(自分の全プロジェクト)の三つがある3。 このサイトの運営者は、後で測定に使うMCPサーバーを user の範囲に登録しており、claude mcp get <サーバー名> を実行すると、範囲と「Connected」の表示で接続を確かめられる。

運営者のVaultで、Claudeに渡る文字数を測った(2026-10-23 追記)

この記事の初版は、「MCPは一回の検索で数百万トークン、grepは約百トークン」という数字を、検証されていない主張として脚注に置くだけだった。 そこで、このサイトの運営者が実際に使っている二つのVaultで、同じ語を引いたときにClaudeへ渡る文字数を数えた。

測定日:2026年10月23日。方法:macOS の grep -r(拡張子 .md だけ、ドットで始まるフォルダを除く)と、MCPサーバーの検索の出力を、Pythonで文字数として数えた。 トークン数には換算していない。 日本語は文字とトークンの比が文章によって変わるため、換算すると測っていない数字が混ざるからだ。

598ノートのVaultを方式Aで引いた場合

一つめは、Obsidianで開いている598ノート、本文の合計約616万字のVaultで、運営者はこれをClaude Codeで直接読んでいる(方式A)。

検索した語 当たったノート grep -l(ファイル名だけ) grep -C 5(前後5行つき) 当たったノートを全部読む
CLAUDE.md 22 2,096字 115,766字 229,069字
フック 26 2,539字 70,753字 361,246字
IndexNow 62 5,989字 496,161字 1,296,378字
未登録 98 9,713字 596,713字 1,783,454字
canonical 139 13,580字 818,925字 2,262,971字

ファイル名だけを返す grep -l は、当たったノートが139件でも約1万4千字に収まった。 一方、前後5行をつける grep -C 5 は、よく出てくる語ほど大きくなり、「canonical」では約82万字と、Vault全体の8分の1を超えた。 grepは当たった行と前後の行の一つ一つにファイルのパスを付けて返すので、当たる行が多い語ほど、出力が本文の抜き出し以上に膨らむ。 「grepは約百トークン」は、当たるノートが少ないか、ファイル名だけを返す使い方のときに限って近い値になる。

23ノートのVaultで、MCPの検索とgrepを比べた場合

二つめは、運営者がMCPサーバー(llmwiki)につないでいる23ノート、約14万字の小さなVaultだ。 llmwikiは、フォルダの中身を全文検索の索引にし、検索に当たった箇所の抜粋を最大10件返す。 このVaultで、同じ語をgrepとMCPの検索の両方で引いた。

検索した語 grepで当たったノート grep -C 5 MCP検索の出力 MCP検索の結果
canonical 1 13,580字 3,753字 7件(同じノートの別の箇所)
フック 1 6,506字 492字 1件
未登録 1 1,322字 30字 0件(見つからない)
CLAUDE.md 0 0字 56字 検索の構文エラー

当たったときの出力は、どの語でもMCPの検索のほうがgrepより小さかった。 抜粋の件数に上限があるため、ノートが増えても出力は一定の大きさで止まる。 少なくともこの種類のMCPでは、「MCPは数百万トークン」は当てはまらない。 MCPが大量に読むかどうかは、MCPという仕組みではなく、そのサーバーが抜粋を返すのか、ノートを丸ごと返すのかで決まる。

ただし、MCPの検索は「未登録」を含むノートを見つけられなかった。 そのノートは索引に入っており、本文には「主要未登録ページはURL Inspectionで」という文がある。 索引の分け方(SQLite の全文検索 FTS5 の unicode61)は、空白か記号が出てくるまでの文字の並びを一つの語として扱う。 このノートでは「主要未登録ページはURL」までが一つの語として索引に入っていて、その一部の「未登録」を指定しても当たらない。 索引に直接「主要未登録ページはurl」と問い合わせると、1件当たった。 日本語は語と語の間に空白を入れないので、この分け方では、文の途中にある語ほど見つかりにくい。 「CLAUDE.md」は、検索式の中のピリオドが構文として解釈されてエラーになった。

測ってみて決めた使い分け

運営者はこの結果から、使い方を次のように決めた。

  • 598ノートのVaultでは、まず grep -l でファイル名だけを出し、読むノートを1〜3件に絞ってから開く。よく出てくる語に grep -C 5 をそのまま使わない。
  • MCPの検索は、出力が小さく、繰り返し引く作業に向いている。ただし日本語のノートで「0件」と出ても、無いとは判断せず、grepで確かめ直す。
  • 記号を含む語(ファイル名や設定名)は、MCPの検索ではなくgrepで探す。

この使い分けは、運営者の二つのVaultと五つの語で測った結果にもとづく。 Vaultの大きさ、語の出やすさ、使うMCPサーバーの実装が違えば、数字は変わる。 自分のVaultで確かめるなら、よく使う語を3つ選び、grep -l、grep -C 5、MCPの検索の出力の文字数を wc -m などで数えると、どの方式が自分の使い方で重いかが分かる。

どれを選ぶか

三系統は優劣ではなく、用途で分かれる。 判断の軸は、書き戻すかどうか、Vaultの規模、コストとプライバシーをどれだけ重く見るか、の三つだ。

書き戻しを基準にすると、こう分かれる。 Claudeにノートを書かせ、Vaultへ保存させたいなら、MCP(方式BかC)が向く。 読むだけでよく、書き戻しは自分でやるなら、Claude Codeの直読み(方式A)で足りる。

コストとプライバシーを基準にすると、向きが変わる。 MCPでVault全体を広く読ませる方式は、年月をかけて溜めた個人の知識ベースでは、読む範囲が広いぶんトークンを多く消費しうる4。 grep で狙い撃ちする直読みは、マッチした行だけを返すので消費が小さく、APIに渡る情報も絞れる。 クライアントの業務や個人情報を含むVaultでは、選択的に開示できる直読みのほうが、渡る情報を抑えやすい。

規模を基準にすると、専用MCPの重さが見合うかが分かれ目になる。 ノート数が少ない、あるいは特定の目的で作った小さめのVaultなら、書き込み機能の便利さがセットアップの手間に見合う。 個人の雑多なVaultを、コストを抑えて何度も引きたいだけなら、直読みのほうが軽い。

迷ったときの出発点は、Claude Codeの直読みだ。 何も足さずに始められ、消費とプライバシーを抑えやすい。 書き戻しや高度な検索が必要になった段階で、Filesystem MCPや専用MCPへ広げればよい。

まとめ

  • ObsidianのVaultは素のMarkdownフォルダなので、Claudeへのつなぎ方は複数ある
  • 方式A(Claude Code直読み):プラグイン不要、grep/ripgrepで狙い撃ち、低コストで選択的開示。読み中心向き
  • 方式B(Filesystem MCP):Vaultパスを渡すだけ、Obsidian非起動でも可、読み書き両対応。Claude Desktop連携に素直
  • 方式C(Obsidian専用MCP):Local REST APIとAPIキーが要りObsidian常駐が前提。検索・バックリンク・タグ階層まで最も多機能
  • 書き戻すならMCP、コストとプライバシー重視なら直読み。規模が小さく書き込みが要るなら専用MCP
  • 迷ったらClaude Code直読みから始め、必要になってからMCPへ広げる

参照

  • 3 Ways to Use Obsidian with Claude Code:https://awesomeclaude.ai/how-to/use-obsidian-with-claude
  • MCP vs. CLI: Connecting Claude to Your Obsidian Vault:https://codeculture.store/blogs/developer-culture/obsidian-claude-mcp-vs-cli
  • Obsidian + Claude Code: The Complete Integration Guide:https://blog.starmorph.com/blog/obsidian-claude-code-integration-guide
  • Obsidian MCP Setup 2026: Local REST API Complete Guide:https://mcp.directory/blog/obsidian-mcp-complete-guide-2026
  • MarkusPfundstein/mcp-obsidian:https://github.com/MarkusPfundstein/mcp-obsidian
  • jacksteamdev/obsidian-mcp-tools:https://github.com/jacksteamdev/obsidian-mcp-tools

  1. 接続方式の整理は、Obsidian と Claude の連携を解説する複数の技術記事と、各 MCP サーバーの公開リポジトリに基づく。主な参照先は本文末にまとめた。 ↩

  2. MarkusPfundstein/mcp-obsidian(Python)、cyanheads/obsidian-mcp-server(Node)、jacksteamdev/obsidian-mcp-tools(セマンティック検索や Templater 連携)など。 ↩

  3. Claude Code 2.1.223 の claude mcp add --help で確認(2026年10月23日)。stdio のサーバーは claude mcp add <名前> -- <起動コマンド> の形で登録する。 ↩

  4. 一部の解説は「MCP は一回の検索で数百万トークン、CLI/grep は約百トークン」という具体的な数字を挙げるが、これは特定のツールと条件での主張であり、検証された一般値ではない。ここでは「広く読む方式は、狙い撃ちの検索よりトークンを多く消費しうる」という定性的な傾向として扱う。実際の消費は、Vault の規模・検索の組み方・使うサーバーの実装で大きく変わる。 ↩