カテゴリー / VS Code・Git・ツール連携

Claude CodeとObsidianの連携手順|Vaultを安全に扱う設定と確認

この記事の目次

Claude CodeとObsidianのVault連携は、専用プラグインやMCPサーバーがなくても始められます。Claude Codeは起動したディレクトリのファイルを読み書きできるので、Vaultをローカルのフォルダとして保存しているなら、そのフォルダで claude を起動するか、作業中のプロジェクトに --add-dir でVaultを足すだけでノートを扱えます。あとは、ノートの書き方をCLAUDE.mdに書き、読ませたくないフォルダを permissions.deny で外し、書き換えを /rewind とGitで戻せるようにしておくのが主な準備です。以下、公式ドキュメントの記述に沿って説明します。

Claude CodeとObsidianの連携に最低限必要なものは何か

公式の権限のページによると、Claude Codeは既定で起動したディレクトリのファイルにアクセスでき、その権限範囲は起動時の --add-dir <path>、セッション中の /add-dir、設定ファイルの additionalDirectories で広げられます。Claude Codeから見ればVaultの中身はフォルダ内のファイルなので、使い方は次の2通りです。

やりたいこと 方法 CLAUDE.mdの扱い
Vaultそのものを整理・執筆の作業場所にする Vaultのフォルダで claude を起動する Vault直下のCLAUDE.mdが起動時に読まれる
コードの作業中に、仕様メモなどVault内のノートも参照したい プロジェクトで起動し、--add-dir か /add-dir でVaultを足す --add-dir で足した場合、既定では読まれない(後述の環境変数で読み込める)

Manualモード(default)では、作業ディレクトリと追加ディレクトリ内のファイル読み取りは承認なしで実行され、Vault内のノート編集は承認を求められます。Vaultを開いた時点で、denyルールなどで除外していないノートは読める状態になるので、読ませたくないノートがあるなら起動前に除外を設定しておきます。MCPの仕組みはMCPの解説記事に譲ります。

Vaultで直接Claude Codeを起動する手順は

Obsidian Vaultを作業場所にする場合は、ターミナルでVaultのフォルダに移動して起動します。公式のクイックスタートと同じ形で、パスを自分のVaultに置き換えます。

cd /path/to/your/project
claude

ノートの書き方はCLAUDE.mdにまとめておくと、毎回説明せずに済みます。/init で下書きを自動生成でき、既存のCLAUDE.mdがあれば上書きせず改善案を出します。公式の説明では /init はコードベースを解析してビルドコマンドやテスト手順、規約を書き出すものなので、Vault向けの規則は自分で書き足します。

CLAUDE.mdは強制される設定ではなく、Claudeが読む文脈として扱われます。公式は、検証できるくらい具体的に書くこと、1ファイルあたり200行未満を目安にすることを勧めています。Vaultなら、たとえば次のような項目が具体的に書ける指示です。

  • 新しいノートを置くフォルダと、ファイル名の付け方
  • ノート先頭に付けるメタデータ項目の名前と書式
  • 既存ノートを書き換えてよいフォルダと、追記だけにするフォルダ
  • ノート同士のリンクの書き方

「きれいに整理する」より「新規ノートは inbox/ に置く」のように、守られたかを目で確認できる書き方が効きます。共有したくない自分だけの指示は CLAUDE.local.md に分け、.gitignore に追加するよう公式は案内しています。書き方の詳細はCLAUDE.md作成ガイドにまとめています。

特定のノートを会話に入れたいときは @ で参照します。Readツールの上限(既定25,000トークン)に収まるファイルは内容が会話に入り、256KBを超えるテキストファイルは入りません。

別のリポジトリからVaultのノートを参照するには

コードの作業中にVaultの設計メモも読ませたい場合は、プロジェクト側で起動し、claude --add-dir <Vaultのパス> か、セッション中に /add-dir でVaultを足します。毎回の指定を省くなら、設定ファイルの permissions.additionalDirectories に書きます。

見落としやすいのは、追加ディレクトリは読み書きの範囲が広がるだけで、設定のルートにはならないという点です。

  • --add-dir で足したVaultのCLAUDE.mdは、既定では読み込まれない
  • 設定ファイルの permissions.additionalDirectories で足したディレクトリは、ファイルアクセスだけで、--add-dir に認められている一部の設定の読み込みも行われない

Vault側のCLAUDE.mdも効かせたい場合は、公式にある環境変数を付けて起動します。

CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

../shared-config をVaultのパスに置き換えます。また --add-dir は \\server\share のようなネットワークパスの多くを追加できないため、Vaultをネットワーク上に置いている場合はこの制限に当たることがあります。

日記や機密ノートをClaude Codeに読ませないには

公式の方法は、設定ファイルの permissions.deny に Read のルールを書くことです。一致したファイルはファイル探索や検索結果から外れ、読み取りが拒否され、Edit・Writeツールでの書き込みもブロックされます。

Vaultの中に journal/ と private/ というフォルダがあるとすると、ルールは公式の例 Read(./secrets/**) と同じ形で次のように書けます。

  • Read(./journal/**):journal/ 以下のすべてのノートを読ませない
  • Read(./private/**):private/ 以下も同様

これらを設定ファイルの "permissions" の中の "deny" 配列に文字列として並べます。パスの起点は書き方で変わり、./path は現在のディレクトリ、~/path はホームディレクトリ、//path はファイルシステムのルートを起点にしたパスです。--add-dir で足したVaultを指定するなら、~/ か // で始まる書き方にすると起点の取り違えを避けられます。

書く場所は、全員に適用する共有用なら .claude/settings.json、自分だけに適用する個人用なら .claude/settings.local.json です。

設定するときに知っておきたい公式の仕様が4つあります。

  • ルールは deny、ask、allow の順に評価され、allowルールでdenyの例外は作れない
  • 「読んでよいが書き換えは禁止」にしたいノートは、Read ではなく Edit のdenyルールを使う。パスに対するファイル権限は Edit(path) と Read(path) だけで判定され、Write(...) と書いたルールは参照されない
  • .claudeignore というファイルを置いても効果はなく、Read のdenyルールに移す必要がある
  • denyルールは組み込みのファイルツールと、Bashの cat や head のような認識されたコマンドには効くが、grep -r のようにファイル名を指定せずに読むコマンドや、スクリプトが自分でファイルを開く場合には効かない。プロセス全体を止めたい場合はサンドボックスを有効にする

つまりdenyルールはVault内のすべての読み取りを遮断するものではありません。サンドボックスの設定はサンドボックス設定の記事、denyを含む安全側の設定全体はセキュリティ設定の記事で扱っています。

Claudeがノートを書き換えたとき、どう戻すか

Vaultの整理を頼むと、多数のノートが一度に書き換わることがあります。まず調べるだけにしたいなら、ファイルを読んでも編集はしない plan モードで起動します。

claude --permission-mode plan

セッションの途中なら、Shift+Tab をステータスバーに ⏸ plan mode on と表示されるまで押して切り替えられます。plan モードの流れはplan モードの解説を参照してください。

編集させた後で戻したくなったら、/rewind を実行するか、入力欄が空の状態で Esc を2回押して巻き戻しメニューを開きます。メニューにはセッション中に送ったプロンプトが並ぶので、戻したい時点を選び、「Restore code」で会話を残したままファイルだけを戻すか、「Restore code and conversation」で両方を戻します。

ただし、公式が対象外としている変更は巻き戻せません。Vaultに当てはめると次のとおりです。

戻らない変更 Vaultで起こる場面
Bashコマンドで変更したファイル Claudeが mv などでノートを移動・改名した場合
Claude Codeの外での手動変更、別セッションの編集(現在のセッションと同じファイルを変更した場合を除き、通常は記録されない) Claudeの作業中にObsidianの画面で自分が別のノートを編集した場合
シンボリックリンク・ハードリンクのファイル Vault内にリンクで別の場所のフォルダを取り込んでいる場合
保持期間を過ぎたスナップショット 既定で、最後に保存してから約30日たったセッション

公式も、チェックポイントはセッション単位の素早い復旧のためのもので、恒久的な履歴にはGitなどのバージョン管理を使い続けるよう案内しています。Vaultをまとめて整理させる前に、Gitで現在の状態を記録しておけば、/rewind で戻らない変更にも対応できます。巻き戻しの詳細は/rewindの解説、Gitとの組み合わせはClaude CodeとGit運用の記事にあります。

Obsidian用のMCPサーバーを追加する前に確認すること

Obsidian専用のMCPサーバーはこの記事では扱わず、どのサーバーにも共通する公式の手順だけを示します。公式は、接続前にそのサーバーを信頼できるか確認するよう警告しており、外部のコンテンツを取得するサーバーはプロンプトインジェクションのリスクにつながるとしています。

ローカルで動くサーバー(stdio)の登録は、公式の基本構文に従います。

claude mcp add [options] <name> -- <command> [args...]

登録の既定は local スコープで、自分だけが、登録したプロジェクトでのみ使えます。すべてのプロジェクトで使うなら --scope user を付けます。登録後は状態を確認します。

claude mcp list

✔ Connected なら使えます。! Connected · tools fetch failed や ✘ Failed to connect のときは、claude mcp get <name> に出るエラー内容から原因を探します。接続中のサーバーはツール名などが毎セッションのコンテキストを使うので、使わなくなったら claude mcp remove <name> で外します。

うまくいかないときの切り分け

症状 確認すること
Vaultのノートが読めない Vaultのフォルダで起動したか、--add-dir か /add-dir で足したか。ネットワークパスではないか
CLAUDE.mdの指示が効いていない /context の Memory files に載っているか。--add-dir で足したVaultなら CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 を付けて起動したか
編集が File is covered by a Read deny rule in your permission settings and cannot be edited. で止まる そのノートが Read のdenyルールに一致している。意図した除外ならそのまま、違うならルールのパスを見直す
/mcp に No MCP servers configured と出る 別のプロジェクトでlocalスコープとして登録していないか。今のプロジェクトで登録し直すか、--scope user で登録する

起動時に読まれるはずのCLAUDE.mdが /context の Memory files に出てこなければ、Claudeからは見えていないので、/memory で開いて場所と中身を確かめます。ほかのエラーはエラー・トラブルシューティングガイドで扱っています。

この記事のコマンドと設定は、2026年10月18日時点のClaude Code公式ドキュメントの記述に基づいています。挙動が記事と違うときは、公式ドキュメントの権限・メモリ・チェックポイントの各ページで現在の記述を確認してください。

連携の運用を一緒に詰めたい人へ

VaultのCLAUDE.mdや除外ルールは、使いながら少しずつ調整していくものです。独学だけで抱え込まずに継続して学べる場として、月額1,980円から参加できる学習コミュニティ「AI駆動ラボ」があります。自分の環境で使いこなせるようになることを目的にした場なので、運用ルールを育てる途中の学び直しの選択肢として検討してみてください。