Claude Media
ObsidianのMCPサーバーでClaudeにVaultを読み書きさせる

ObsidianのMCPサーバーでClaudeにVaultを読み書きさせる

ObsidianのVaultをMCP経由でClaudeに読み書きさせる4つの実装を比較し、ローカル完結の仕組みと導入手順、アーカイブ済みプラグインの落とし穴を扱います。

ObsidianのMCPサーバーとは何か

Obsidianは公式にはMCPを提供していません。Vaultを読み書きするMCPサーバーは、いずれもコミュニティが作ったプラグインや外部ツールです。それでも仕組みは共通していて、Obsidian内(または隣接プロセス)にローカルのHTTPサーバーを立て、そこにMCPクライアントとしてClaudeを接続します。通信はすべて127.0.0.1宛てのループバック接続で完結し、Vaultの中身をどこかの外部クラウドへ送信する設計にはなっていません。

実装は大きく4つあります。ノート単体の検索や差分編集だけでなく、フロントマターの取得やバックリンクの追跡までツール化されているものもあり、選ぶ実装によって扱える操作の幅がかなり変わります。この記事では、実装ごとの選び方の判断材料と、代表的な2つの導入手順、そして古いブログ記事を参考にすると踏みやすい落とし穴をまとめます。

導入前に確認すること

どの実装を選んでも、次の3つは共通の前提です。

  • Obsidianアプリ本体と、MCPで公開したいVaultがローカルに存在すること
  • Claude CodeまたはClaude Desktopなど、MCPクライアントとして動く環境
  • 実装によってはLocal REST APIというコミュニティプラグインの追加インストールが必要

3つ目が地味に重要です。後述する4実装のうち2つは、この「Local REST API」プラグインが提供するREST APIの上に乗る形で動きます。つまりObsidianのプラグイン設定を1回で済ませられず、2つのプラグイン(または1つのプラグイン+1つの外部プロセス)を組み合わせることになります。

どの実装を選ぶか

実装ごとの性格がかなり異なるため、人気度の目安や更新頻度も含めて並べます。Leonezz版はGitHubリポジトリではなく公式プラグインストアの掲載であるため、他3件のGitHubスター数とは指標が異なる点に注意してください。

実装方式人気度の目安現況
Local REST API(内蔵MCP)方式プラグイン単体でMCPサーバーを内蔵人気度の目安★約2,900現況活発に更新が続く。4.0.3でMCPサーバーを追加した
mcp-obsidian(MarkusPfundstein)方式Local REST APIの上で動くPython製ブリッジ人気度の目安★約4,400現況活発。最もスター数が多い代表実装
Obsidian MCP Server(Leonezz)方式プラグイン単体でMCPサーバーを内蔵人気度の目安DL 1k件台現況公式コミュニティプラグインストア掲載だがベータ・小規模。更新が止まって半年近く経つ
obsidian-mcp-tools(jacksteamdev)方式プラグイン+署名済みバイナリのMCPサーバー人気度の目安★約830現況アーカイブ済み。開発者自身が代替プラグインへの移行を推奨

この中で実質的な第一候補は上の2つです。Local REST APIプラグインは、2026年5月のアップデートでMCPサーバーをプラグイン自身に内蔵しました。それ以前は「Local REST APIでVaultをREST公開し、別途Pythonのmcp-obsidianサーバーを起動してAPIを叩く」という2段構成が定番でしたが、今はLocal REST APIプラグイン単体で/mcp/エンドポイントが立ち上がります。プラグインのREADMEも「サードパーティのMCPサーバーはもう必要ない」と明記しており、既存のPythonブリッジからの乗り換えを推している状態です。

mcp-obsidianを選ぶ理由が残るとすれば、すでにuvx経由のPython環境を他のMCPサーバーでも使っていて構成を揃えたい場合や、stdioトランスポートで完結させたい場合くらいです。

Local REST APIプラグインでMCPを使う(推奨)

まずObsidianの「コミュニティプラグイン」からLocal REST APIをインストールし、有効化します。設定画面(Settings → Local REST API)を開くとAPIキーが発行されているので控えておきます。

このプラグインはHTTPSで127.0.0.1:27124、平文HTTPを有効にすれば127.0.0.1:27123でMCPサーバーを待ち受けます。証明書はプラグインが起動時に自作するローカル認証局(CA)の署名付きで、127.0.0.1localhost以外の名前を騙れないよう名前制約が付いています。証明書を信頼するのが面倒な場合は、設定画面で「Enable HTTP server」を有効にしてHTTPエンドポイントを使う方法もあります。

Claude Codeへの追加はCLIから1コマンドです。

claude mcp add --transport http obsidian https://127.0.0.1:27124/mcp/ \
  --header "Authorization: Bearer <your-api-key>"

プロジェクト単位で.mcp.jsonに書く場合は次の形になります。

{
  "mcpServers": {
    "obsidian": {
      "type": "http",
      "url": "https://127.0.0.1:27124/mcp/",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}

接続できると、vault_read(ノート読み取り)・vault_write(新規作成・上書き)・vault_patch(見出しやフロントマターの部分編集)・search_query(JsonLogicによる構造化検索)・search_simple(全文検索)・見出しやブロック参照、フロントマターフィールドの一覧を返すvault_get_document_mapなど、Vault操作に必要なツール一式が使えるようになります。画像などのバイナリ添付ファイルはvault_read_binary/vault_write_binaryでBase64経由になりますが、コンテキスト消費を抑えるため1MiB超のファイルは拒否される設計です。

mcp-obsidianには無い機能として、command_executeでObsidianのコマンドパレットに登録された任意のコマンドを実行できる点があります。テンプレートプラグインが登録したコマンドや、他プラグインが追加した独自コマンドも対象になるため、「今日のデイリーノートを開いて特定のテンプレートを適用する」のような、単純なファイル操作を超えた依頼にも対応できます。tag_listでVault全体のタグ使用状況を棚卸しできる点も、ノートの整理を任せたい場合に使いやすいツールです。

mcp-obsidian(Python版)で接続する場合

すでにLocal REST APIプラグインを別用途で使っていて、Pythonのブリッジ経由に慣れている場合はこちらも選べます。前提としてLocal REST APIプラグインのインストールとAPIキー取得は同じく必要です。

uvx mcp-obsidian

Claude Desktopの設定ファイル(claude_desktop_config.json)には次のように追加します。

{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "uvx",
      "args": ["mcp-obsidian"],
      "env": {
        "OBSIDIAN_API_KEY": "<your_api_key_here>",
        "OBSIDIAN_HOST": "<your_obsidian_host>",
        "OBSIDIAN_PORT": "<your_obsidian_port>"
      }
    }
  }
}

OBSIDIAN_HOSTを省略すると127.0.0.1OBSIDIAN_PORTを省略するとLocal REST APIの既定ポート27124が使われます。動作環境はPython 3.11以上で、依存するmcpパッケージのバージョンを1.1.0以上2.0未満に固定する必要がある点だけ注意してください。mcp>=2.0を入れると、list_toolsハンドラの実装方式が変わっているためインポート時にエラーで落ちます。

公式ストア掲載のネイティブ実装(Leonezz版)という選択肢

Obsidianの公式Community Pluginsストアには、Local REST APIとは別に「MCP Server」という名前のプラグインも単独で掲載されています。作者はleonezzで、community.obsidian.md上から直接インストールできる点は他の実装にない強みです。ただしダウンロード数は1,000件台、開発ステータスは「Beta」とプラグイン自身が明記しており、Local REST APIやmcp-obsidianに比べると採用実績は薄めです。

機能面では、現在開いているノートを返すget_active_fileで「今読んでいるファイルの続きを書いて」のような文脈依存の依頼に対応できる点、パスやタグ単位でアクセスを制限するブラックリスト機能、接続中のMCPセッション一覧をlist_sessionsで確認できる点が特徴です。既定でBearerトークン認証が有効になっており、開発用途に限りローカルで認証を無効化することもできます。小規模なVaultで試験的に使う分には選択肢になりますが、更新頻度と実績を考えると、本記事で優先して薦めているLocal REST APIかmcp-obsidianのどちらかから始めるほうが手堅い選択です。

よくあるつまずき

  • 古いブログ記事の手順で"Plugin Not Working"になる: obsidian-mcp-tools(jacksteamdev)は2026年5月にアーカイブされたプロジェクトです。開発者自身が「Obsidianを使わなくなったので身を引く」と明記し、他の代替プラグインへの乗り換えを勧めています。このプラグインを紹介する記事を見かけても、新規に導入するなら選ばないほうが安全です
  • ポート番号を混同する: Local REST APIは既定でHTTPSが27124、HTTPが27123です。mcp-obsidianのOBSIDIAN_PORTにHTTP用の27123を指定してしまうと接続に失敗します
  • 証明書エラーで接続できない: Local REST APIプラグイン内蔵のMCPは自己署名証明書を使うため、クライアントによってはTLS検証で弾かれます。証明書を信頼できない環境では、平文HTTPエンドポイント(27123)に切り替えるのが手早い回避策です
  • uvxのパスが見つからない: Claude Desktopがuvxコマンドを検出できないことがあります。which uvxでフルパスを確認し、commandにそのまま指定すると解決します
  • 書き込み系ツールで意図しないファイルが上書きされる: vault_writeはファイル全体を置き換えます。見出し単位やフロントマターの一部だけ変えたいときはvault_patch(Local REST API版)やpatch_content(mcp-obsidian版)を使い、全文置換を避けます

まとめ

ObsidianのVaultをClaudeに読み書きさせる実装は4つありますが、実質的な選択肢はLocal REST APIプラグイン単体(2026年5月以降はMCPを内蔵)と、その上で動くPython製のmcp-obsidianの2つです。新規に導入するなら、追加のプロセス管理が要らないLocal REST API単体から試すのが構成をシンプルに保てます。jacksteamdev製のobsidian-mcp-toolsはすでにアーカイブされているため、これを紹介する記事を見かけても新規導入の対象からは外してください。

いずれの実装も通信はループバック接続に閉じており、Vaultの中身を外部クラウドへ送る設計にはなっていません。ただしClaudeとのやり取りの中でノートの内容がモデルに渡ること自体は避けられないため、機密情報を含むVaultを接続する場合は、Claude CodeのMCP権限設定でツールごとのアクセスを絞ることも検討してください。MCPの基礎から確認したい場合はMCPとは何かclaude mcp addのスコープや認証の詳細はClaude Code MCP設定ガイドにまとめています。

この記事を共有:XはてブLinkedIn