Obsidian Vault を Claude Code から扱う構成(filesystem MCP / Local REST API)

一言まとめ

Vault は WSL2 の ext4 側に置き、PARA + Daily のレイアウトと frontmatter 規約を先に固める。Claude 連携は filesystem MCP を主軸にし(Obsidian の起動に依存しない)、検索・タグが要るときだけ Local REST API + obsidian-mcp を足す。機密は *.private.md に分離して読み取り対象から外す。

作成 · 更新 · #obsidian#claude-code#mcp#pkm
目次 11 sections
  1. 01 全体像と設計原則
  2. 02 Vault 設計
  3. レイアウト(PARA + Daily)
  4. frontmatter 規約
  5. タグとリンク
  6. プロフィールの置き方と機密の分離
  7. 03 Obsidian 本体の配置パターン
  8. プラグインの初期セット
  9. 04 Claude 連携(MCP)
  10. filesystem MCP の登録
  11. Local REST API + obsidian-mcp
  12. 使い分け
  13. 05 キャプチャと整理の運用
  14. 06 同期とバックアップ
  15. 07 認証情報と git 除外
  16. 08 構築フェーズ
  17. 09 注意点
  18. 10 関連
  19. 11 更新履歴

調査時点: 2026-05。WSL2(Ubuntu)上で Claude Code を動かし、Windows ホストから Obsidian を使う前提。

Obsidian は Markdown のノート管理アプリで、Vault はノートと設定をまとめたフォルダ。MCP(Model Context Protocol)は、Claude Code などの AI ツールに外部のデータや操作機能を接続するための共通プロトコル。

全体像と設計原則#

Windows
├─ Obsidian Desktop(UI) ─┐ \\wsl$\Ubuntu\home\... または WSLg で Linux 版
└─ Browser │
──────────────────────────┼──────────────────────
WSL2 (Ubuntu) ▼
├─ ~/vault/ ← 単一の真実(Markdown + frontmatter)
├─ Claude Code → filesystem MCP で ~/vault/ を操作
└─ (任意) Obsidian Local REST API + obsidian-mcp
  • Vault は WSL2 の Linux ファイルシステム(~/vault/)に置く。/mnt/c/ は性能と inotify の問題で不可
  • ディレクトリレイアウトと frontmatter 規約を最初に固める。後から数百ノートを直すのは高コスト
  • Claude 連携は filesystem MCP を主軸にする。Obsidian アプリの稼働に依存せず、自動化にも回しやすい
  • Obsidian 専用 MCP は補助。検索・グラフ・タグなど Obsidian の機能を呼びたいときだけ足す

Vault 設計#

レイアウト(PARA + Daily)#

~/vault/
├── 00-Inbox/ # 未分類の捕捉。週次で空にする
├── 10-Projects/ # 締切か完了条件のある個別プロジェクト
│ └── <slug>/README.md(必須・正), log/, assets/
├── 20-Areas/ # 継続的責任領域(profile.md など)
├── 30-Resources/ # 参考資料・調べ物
├── 40-Archive/ # 完了・保留
├── 50-Daily/ # YYYY-MM-DD.md
├── 60-Ideas/ # まだプロジェクト化していないアイデア
├── _attachments/ # 共有添付(from-affine/ など)
└── _templates/ # Templater 用

数字プレフィックスで並び順を制御し、_ 始まりはシステム用と一目で分かるようにする。PARA(情報を Projects / Areas / Resources / Archives に分ける整理法) に加えて Inbox / Daily / Ideas を独立して持つ。

frontmatter 規約#

---
type: project # project | area | idea | profile | resource | daily | log
status: active # active | paused | done | someday | archived
created: 2026-05-10
updated: 2026-05-10
tags: [domain/llm, lang/ts]
links: []
---

type の候補は最小限から始め、必要になったら増やす。Dataview / Bases から横断クエリできることが目的。

タグとリンク#

  • 階層タグ(domain/llm、lang/ts、area/health)。Dataview で WHERE contains(tags, "domain/llm") と引ける。フリーフォームのタグは Inbox 内だけ許し、定期的に階層へ昇格させる
  • wikilink はファイル名ベース([[my-project]])。ファイル名は英小文字 + ハイフン。表示名を変えるなら [[my-project|表示名]]。ブロック参照([[note#^id]])は引用・定義の再利用に限る

プロフィールの置き方と機密の分離#

20-Areas/profile.md に要約・スキル・関心・Active Projects(Dataview クエリ)・公開 ID を置くと、AI がこれを読むだけで「現在地」を把握できる。

機密(職歴詳細、連絡先、住所、契約金額)は profile.private.md に分離する。

  • .gitignore に **/*.private.md
  • 同期(LiveSync)の暗号化対象に含める
  • .claudeignore などで AI の読み取り対象から外し、明示許可時だけ読む運用にする

セルフホストでデータ主権を取るのに、Vault 内に平文の機密があるのは整合しない。

Obsidian 本体の配置パターン#

パターンObsidianVault性能備考
A. Windows 版 + WSL VaultWindows\\wsl$\Ubuntu\home\<user>\vault中inotify 越境で同期遅延。.obsidian/workspace*.json に Windows / Linux パスが混在しうる
B. WSLg で Linux 版WSL2~/vault高WSLg 必須。Claude Code と同居でき摩擦が最小
C. Windows 版 + Windows VaultWindowsC:\Users\...\vaultWindows 側は高いWSL2 から /mnt/c/ 経由になり性能が落ちる

推奨は B。日常の編集体験を優先するなら A も実用的(File → Open vault で \\wsl$\... を開く)。

プラグインの初期セット#

プラグイン役割必須度
TemplaterDaily / Project のテンプレート高
QuickAddホットキー 1 発のキャプチャ高
Dataviewノート横断の疑似 SQL高
Periodic NotesDaily / Weekly / Monthly中
Tag Wranglerタグの整理中
Local REST APIObsidian の機能を HTTP で公開連携拡張時
Excalidraw手書き図AFFiNE 併用なら不要
Smart Connectionsベクトル検索AI が代替するため任意

Bases(Obsidian 1.9 同梱の Database ビュー)が使えるなら Dataview と併用か代替を検討する。標準機能なので壊れにくい。プラグインは最初 7 個以内に抑える。

Claude 連携(MCP)#

方式実体強み弱み
A. filesystem MCP@modelcontextprotocol/server-filesystem を ~/vault/ に向ける公式。Obsidian の起動に依存しないリンク解決・タグ・グラフは生で扱う
B. Local REST API + obsidian-mcpObsidian プラグイン + サードパーティ MCP検索・タグ・Daily Note など Obsidian の機能を呼べるObsidian 起動必須。トークン管理
C. 併用(推奨)A を主、B で補強常時動作 + 検索強化設定が増える

filesystem MCP の登録#

Terminal window
claude mcp add vault \
--scope user \
-- npx -y @modelcontextprotocol/server-filesystem /home/<user>/vault
  • 絶対パスで指定する。~ はシェル展開のタイミングによって設定に ~ のまま残ることがある
  • WSL2 の Claude Code は Linux 側 ~/.claude.json に書く。Windows 版 Claude Desktop の %APPDATA%\Claude\claude_desktop_config.json とは別物
  • 確認は claude mcp list と、セッション内の /mcp

Local REST API + obsidian-mcp#

  1. Obsidian で Local REST API プラグインを有効化し API キーを発行
  2. キーは ~/.config/obsidian-tools/credentials.json(chmod 600)に置き、コードにハードコードしない
  3. MarkusPfundstein/mcp-obsidian、cyanheads/obsidian-mcp-server などから選び、各 README に従って claude mcp add obsidian --scope user --env OBSIDIAN_API_URL=... --env OBSIDIAN_API_KEY=... -- npx -y <package> の形で登録する。実装ごとに環境変数名と対応エンドポイントが違うので、採用前に主要エンドポイントのカバレッジを比べる

Windows 版 Obsidian の REST API(既定ポート 27124 / 27123)に WSL2 から届くかは curl で確認する。パターン B なら localhost で済む。

使い分け#

  • 読む・書く(grep、新規ノート、追記): filesystem MCP
  • 検索(全文、タグ、リンクの逆引き): obsidian-mcp があれば優先、なければ Bash の ripgrep
  • グラフ・関連性: obsidian-mcp の検索 + AI の解釈

キャプチャと整理の運用#

  • 捕捉の摩擦をゼロにする。すべてまず 00-Inbox/ か Daily Note に着地させ、最初から正しい場所に置こうとしない(QuickAdd のホットキーで 1 行)
  • Daily Note のテンプレートに「今日の捕捉」「今日の作業」「active プロジェクト一覧(Dataview)」を入れる
  • 週次 15 分: Inbox を空にする、プロジェクトの status を更新、Ideas から育てるものを Projects へ昇格、Daily を見て陳腐化を再評価

AI への依頼例: 「過去 30 日の Daily Note から、プロジェクト化していないが繰り返し言及されているテーマを 3 つ挙げて」「profile.md のスキルと active プロジェクトのギャップを指摘して」「60-Ideas で 1 か月以上更新のないものを列挙し、育てる / 捨てる / Archive を理由付きで提案して」。

同期とバックアップ#

方式仕組み評価
Self-hosted LiveSyncCouchDB + プラグインリアルタイム、競合解決が強い、Docker で立てやすい。複数デバイスならこれ
SyncthingP2Pシンプル。競合は手動
git(private)コミット & プッシュ履歴に強い。リアルタイム性なし
Obsidian Sync公式有料楽だがセルフホストの目的に反する
rclone + クラウド単方向同期ではなく退避用

単一デバイス + バックアップなら git + rclone で十分。LiveSync でも競合は完全には消えないので、重要ノートは git にも push する保険を持つ。モバイル捕捉(Obsidian モバイル + LiveSync)は諦めない。

バックアップの最小構成は cron で日次 tar --zstd、30 日経過分を削除。WSL2 では標準で cron が動かない点と、確実性を取るなら Windows タスクスケジューラ経由にする点は WSL2 で常駐サービスを動かす設定。WSL2 のディスクが壊れるとバックアップも消えるので rclone で外部にも送る。

認証情報と git 除外#

  • 認証情報は ~/.config/<tool>/credentials.json(chmod 600)に統一し、Vault 内には置かない。コードからは環境変数経由で読む
  • .gitignore: _attachments/private/、**/.obsidian/workspace*.json、**/.obsidian/cache/。.obsidian/ 自体はプラグイン構成・テンプレート・ホットキーが共有資産なので管理対象に入れる

構築フェーズ#

  1. Vault のディレクトリを作り Obsidian で開く(30 分)
  2. テンプレートと frontmatter の type を確定し、profile.md を埋める(1〜2 時間)
  3. filesystem MCP を登録し、Claude から読み書きできることを確認(30 分)
  4. Dataview / Bases で active プロジェクト一覧を埋め込む(1 時間)
  5. 同期(LiveSync / git / Syncthing)とバックアップ(半日)
  6. 任意で Local REST API + obsidian-mcp(1〜2 時間)

各フェーズで動く状態を確認してから次へ進む。

注意点#

  • AFFiNE などの視覚ツールと二重管理しない。Vault が正。Obsidian と AFFiNE の併用設計
  • スキーマを変えるときは一括移行スクリプトを書く
  • ノートをデータベース化しすぎない。スキーマは「まずゆるく、痛みが出たら締める」

関連#

更新履歴#

  • 2026-05-10: 初版(ローカル調査ノート)
  • 2026-10-17: Wiki へ移植、概念ページとして再構成。冒頭に定義を追加

同じトピック — ツール