
この記事でわかること
ObsidianのVaultをAIエージェントに読み書きさせるプラグインは、以前この記事でClaudian(独自のエージェントSDKを同梱する方式)とAgent Client(Agent Client Protocol経由で複数エージェントを扱う方式)を取り上げました。もう一つ方向性が異なるプラグインがあります。「Claude Code MCP」(https://github.com/iansinnott/obsidian-claude-code-mcp )です。前の2つがObsidian側からエージェントを“呼び出す”形なのに対し、このプラグインはVault自体をMCP(Model Context Protocol)サーバーとして公開し、Claude Code本体やClaude DesktopからVaultへ“接続してもらう”形を取ります。
この記事は公式リポジトリのREADME・`manifest.json`・`package.json`・ソースコード一式を一次情報としつつ、実際にリポジトリをクローンしてソースを読み込んだ記録です。GUIを持つObsidianプラグインかつ`isDesktopOnly: true`の構成のため画面操作そのものは検証していませんが、README記載の仕様がソースコードの実装と一致しているかは、ツール定義・設定のデフォルト値・プロトコルの実装箇所まで遡って確認しました。
- この記事でわかること:Claude Code MCPが何をするプラグインで、既出の2つとどう違うか。
- Claude Code CLIが使う「IDE接続」の仕組みに、このプラグインがどう相乗りしているか。
- Claude Desktopを接続する際に`mcp-remote`という別のnpmパッケージが必要な理由。
- ソースコードで確認した、既定で有効な組み込みターミナル機能と`obsidian_api`ツールの中身。
- コミュニティプラグイン一覧への登録状況と、LICENSE表記で見つかった気になる点。
Claude Code MCPとは:VaultをIDEとしてClaude Codeに差し出すプラグイン
`manifest.json`によると、プラグインの正式名は「Claude Code MCP」、プラグインID`claude-code-mcp`、作者はiansinnott氏、確認時点のバージョンは1.1.8でした。説明文は「Connect Claude Code and other AI tools to your notes using Model Context Protocol (MCP).」で、`isDesktopOnly: true`のためモバイル版Obsidianでは動作しません。`package.json`の`license`欄には`MIT`と書かれている一方、リポジトリの`LICENSE`ファイル自体はMITの条文ではなく、著作権表記が「Copyright (C) 2020-2025 by Dynalist Inc.」となっている別の許諾文(zlib Licenseに近い短い文面)でした。ライセンス表記に食い違いがある状態なので、業務で使う場合はこの点を踏まえて作者に確認した方がよさそうです。
技術的な核は、ソースコード`src/mcp/dual-server.ts`が実装する「デュアルトランスポートMCPサーバー」です。Obsidian起動時にVault内でWebSocketサーバーとHTTP/SSEサーバーを両方立ち上げ(既定ポート22360)、前者をClaude Code CLI向け、後者をClaude Desktopなど一般的なMCPクライアント向けに使い分けます。README自身が「2024-11-05版の“HTTP with SSE”という旧仕様をあえて使っている。最新のStreamable HTTP(2025-03-26版)はClaude CodeやClaude Desktopがまだ対応していないため」と明記しており、最新仕様に追従するのではなく実際に繋がる組み合わせを優先した設計であることがわかります。
仕組みの核心:Claude CodeのIDE接続プロトコルに相乗りする
Claude Code CLIには、VS CodeやJetBrains向けの公式IDE統合があり、ターミナルから`/ide`コマンドで接続先を選ぶとエディタ側の差分表示や選択範囲の共有などが使えるようになります。Anthropic公式ドキュメント(https://docs.claude.com/en/docs/claude-code/ide-integrations )が挙げる公式対応IDEはVS Code系とJetBrains系のみで、Obsidianは含まれていません。
Claude Code MCPは、このIDE接続の裏側で使われている通信方式を独自に実装することで、Obsidianを「IDEの一つ」としてClaude Codeに認識させています。この通信方式は、IDE側が`~/.claude/ide/[ポート番号].lock`という発見用ファイルにプロセスID・ワークスペースパス・認証トークンなどをJSONで書き出し、Claude Code CLI側がそれを読んでWebSocketで接続する、という仕組みです。Anthropicはこの仕組み自体を公式仕様として公開しておらず、Neovim向け実装「claudecode.nvim」が自分たちのプロトコル文書(https://github.com/coder/claudecode.nvim/blob/main/PROTOCOL.md )の中で「VS Code拡張をリバースエンジニアリングして得られた内容」と明記しているように、コミュニティが挙動を解析して再実装したものです。Claude Code MCPのソース(`src/ide/ide-handler.ts`、`src/claude-config.ts`)でも同様に`.lock`ファイルの書き出しと`x-claude-code-ide-authorization`ヘッダーでの認証処理が確認でき、Obsidianを“非公式IDE”として扱う作りになっていることがコード上からも裏付けられました。
実際の接続設定:Claude CodeはWebSocketで自動検出、Claude Desktopは`mcp-remote`が必要
READMEによると、Claude Code CLI側の手順はシンプルです。プラグインを有効化した状態でターミナルから`claude`を起動し、`/ide`コマンドでIDE一覧から「Obsidian」を選ぶだけで、WebSocket経由の自動検出により接続されます。
一方Claude Desktopは、HTTP/SSEのような直接のリモートHTTP接続に対応していないため、`npx mcp-remote http://localhost:22360/sse`という形でローカルの標準入出力・HTTP変換ブリッジを挟む必要があります。`mcp-remote`はnpmレジストリ(https://registry.npmjs.org/mcp-remote )で公開されている実在のパッケージで、確認時点の最新バージョンは0.14.3、説明文は「Remote proxy for Model Context Protocol, allowing local-only clients to connect to remote servers using oAuth」でした。`claude_desktop_config.json`の`mcpServers`にこのコマンドを登録し、Claude Desktopを再起動する、という2段構えの設定になります。
公開されているツールと、ソースコードで見つけた既定オンの機能
ソース`src/tools/general-tools.ts`を読むと、Claude Code/Claude Desktopの双方に共通で公開されるツールは`get_current_file`・`get_workspace_files`・`view`・`str_replace`・`create`・`insert`・`obsidian_api`の7種類でした。最後の`obsidian_api`は、関数本体を文字列で渡すとObsidianの`app`インスタンスと`obsidian`モジュールを引数に`new Function`で動的実行する、という作りで、ツール定義の説明文自体が「This is an experimental tool...It provides full, unrestricted access to the Obsidian API, which allows destructive actions.」と、破壊的操作が可能な実験的機能である旨を自己申告しています。Claude Code専用のWebSocket経由では、これに`getDiagnostics`・`openDiff`・`close_tab`・`closeAllDiffTabs`が加わりますが、`src/ide/ide-tools.ts`のコメントを見るとdiff表示やタブ操作は「stub implementation for Obsidian compatibility」、つまりObsidian上では実処理を伴わないスタブであることが明記されています。
さらにREADMEには記載がありませんでしたが、`src/terminal/`ディレクトリには`@xterm/xterm`を使った本物のターミナルビュー実装があり、`main.ts`では「Toggle Claude Terminal」というコマンド(既定ホットキーCtrl+`)でObsidian内に擬似端末(pseudoterminal)を開けるようになっていました。`src/settings.ts`の`DEFAULT_SETTINGS`を確認すると、WebSocketサーバー・HTTPサーバーに加えてこの組み込みターミナル機能(`enableEmbeddedTerminal`)も既定値は`true`、つまり追加設定なしでOS側のシェルをObsidianのペインから直接起動できる状態になっています。MCP経由の無制限API実行ツールと合わせて、どちらも強力な分、有効化したまま放置する前にアクセス範囲を理解しておく価値はありそうです。
導入前に確認しておきたい点
公式のコミュニティプラグイン一覧データ(`obsidianmd/obsidian-releases`リポジトリの`community-plugins.json`)を確認したところ、`claude-code-mcp`というIDも、このリポジトリ名も登録されていませんでした。つまりObsidianの設定画面からワンクリックで入れることはできず、GitHubのReleasesから`manifest.json`・`main.js`・`styles.css`を取得してVaultの`.obsidian/plugins/`配下に手動配置するか、BRATのようなベータプラグイン管理ツールを使って導入する形になります。
ポートは既定で22360番、複数Vaultを同時に使う場合はVaultごとに別ポートを設定する必要があるとREADMEに明記されています。また前述の通り、組み込みターミナルと`obsidian_api`ツールはいずれも既定で有効なので、Vault内の機密ノートを扱っている場合は、接続するMCPクライアント側の権限設定もあわせて確認しておくのが安全です。
まとめ
Claude Code MCPは、Obsidian側からAIエージェントを呼び出すのではなく、Vaultの方をClaude Codeから見える“IDE”として差し出す、という逆方向のアプローチを取るプラグインです。ソースコードを確認すると、Anthropicが公式にドキュメント化していないIDE接続プロトコルをコミュニティ解析ベースで再実装している点、Claude Desktop接続には別途`mcp-remote`が必要な点、そして既定で有効な組み込みターミナルと無制限API実行ツールが用意されている点が、READMEの説明以上に踏み込んだ実装の特徴として見えてきました。
VS CodeやJetBrainsと同じ感覚でClaude CodeからVaultを直接いじりたい人には噛み合う設計ですが、コミュニティプラグイン一覧に未登録で手動インストールが前提になる点、既定オンの機能が強力な権限を持つ点は、導入前に把握しておいた方がよさそうです。
参考リンク
- Claude Code MCP 公式GitHubリポジトリ(README・manifest.json・ソースコード)
- https://github.com/iansinnott/obsidian-claude-code-mcp
- Claude Code 公式ドキュメント:IDE統合
- https://docs.claude.com/en/docs/claude-code/ide-integrations
- claudecode.nvim によるIDE接続プロトコルのリバースエンジニアリング文書
- https://github.com/coder/claudecode.nvim/blob/main/PROTOCOL.md
- mcp-remote(npmパッケージ)
- https://www.npmjs.com/package/mcp-remote
- obsidianmd/obsidian-releases(community-plugins.json)
- https://github.com/obsidianmd/obsidian-releases
