背景
-
Docker MCP Toolkitに、ObsidianのMCPサーバー
mcp-obsidianがあったので、検証してみる - 既存のObsidian用MCPサーバーだと、smithery-ai/mcp-obsidianがある。
smithery-ai/mcp-obsidianは、ノートの検索・読取ができるが、Docker MCP ToolkitのMarkusPfundstein/mcp-obsidianの場合、ノートの書込・削除等まで可能なため、こちらを選んだ
検証内容
- Claude Desktopから、MCPサーバーでObsidianのファイルを参照・操作する
- Obsidianのプラグインで、ローカルAPIサーバーを構築
- MCPサーバーから、ObsidianのローカルAPIサーバーにHTTPSで接続する
登場人物
- Claude Desktop:デスクトップアプリ。ChatGPTやGeminiでは、ローカルMCPサーバーと連携できないため、Claudeで検証
- mcp-obsidian:Obsidian接続用MCPサーバー。DockerDesktopで起動。
GitHub - MarkusPfundstein/mcp-obsidian: MCP server that interacts with Obsidian via the Obsidian rest API community plugin - Obsidian:ローカルのObsidian Vault
構成図
構築手順
0. 前提
- OS: Windows 11
- すでに Docker Desktop / Claude Desktop / Obsidian を導入済み
- ObsidianはローカルVaultを使用
1. node の導入(nvm-windowsを推奨)
1-1. nvm-windows を入れる(推奨)
-
公式リポジトリから
nvm-setup.exeを取得し実行。Releases · coreybutler/nvm-windows -
ターミナルを再起動して
nvm versionで疎通確認。
nvm -version
1.2.2
- Node の導入・切替:
nvm list available
nvm install lts
nvm use <インストールしたLTSのバージョン>
# node -vで確認
node -v
npm -v
1-2. winget で一発更新(代替)
最新版のNodeを上書き更新する場合(管理者PowerShell):
# Current系
winget upgrade -e --id OpenJS.NodeJS
# LTS系
winget upgrade -e --id OpenJS.NodeJS.LTS
※ wingetは追随が遅れることがあるので、バージョン厳密性が要る案件は nvm-windows を推奨。
2️. uv/uvx の導入(Pythonツール高速ランナー)
mcp-obsidian は uv/uvx での起動が公式手順。Windowsに uv/uvx のインストールが必要
2-1. 公式インストーラ(PowerShell推奨)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# パス指定
$env:Path = "C:\Users\<ユーザー名>\.local\bin;$env:Path"
# インストール確認
uv -V
uvx -V
3️. Obsidian:コミュニティプラグイン「Local REST API」の有効化
-
Obsidianの設定 > コミュニティプラグインから、Local REST API をインストール&有効化。
Local Rest API for Obsidian: Interactive API Documentation -
設定画面で API Keyを発行 して控える。
-
Host/Port を確認(私の環境だと
127.0.0.1:27124)。 -
証明書(HTTPS) をPCに導入
- Obsidianの設定からコミュニティプラグイン「Local REST API」を開き、How to Accessの
thins certificateをクリック - ダウンロードされた証明書ファイルをダブルクリックし、PCにインストール
- 詳細な手順は、こちら
- Obsidianの設定からコミュニティプラグイン「Local REST API」を開き、How to Accessの
4. Docker MCP Toolkit で mcp-obsidian を追加
ポイント:Docker MCP Toolkit(Docker Desktop内)はMCPサーバーカタログをワンクリック起動でき、Claudeなどのクライアントと自動連携できる。
-
Docker Desktopの左メニューから、MCP Toolkit を開く。
- BETA機能なので、無効化されている場合も有り。その際は、設定 > Extensionsで有効化する。
-
Catalogで
obsidianを検索。- 見つかる場合:有効化(Enable) → 起動(Start)。
- 見つからない場合:hub.docker.com/r/mcp/obsidianから手動でpull
-
MCP ToolkitのObsidianページのConfigurationタブのSecretsに、上で控えたAPIキーをセットする
5. claude-desktop-config.json を設定
-
C:\Users\<ユーザー名>\AppData\Roaming\Claude\claude_desktop_config.jsonを開く- Claude Desktop → Settings → Developer → Edit Config でも可だが、私の環境では開かなかった。
- ファイルが無ければ空ファイルを作成し、下で追記
-
以下を追記(値は自環境に合わせて置換):
{
"mcpServers": {
"mcp-obsidian": {
"command": "uvx",
"args": ["mcp-obsidian"],
"env": {
"OBSIDIAN_API_KEY": "<ObsidianのAPIキー>",
"OBSIDIAN_HOST": "127.0.0.1",
"OBSIDIAN_PORT": "27124"
}
}
}
}
私は上で上手く行ったが、
uvxがPATHにない場合は 絶対パス を指定する必要があるとの記載も(例:"command": "C:\\Users\\<USER>\\.local\\bin\\uvx.exe")。
こちらのConfigurationを参照
6️. Claude Desktop を再起動しテスト
- Claude Desktopを完全終了 → 再起動
Windowsの場合、アプリを閉じた後、Windowsタスクバーの右側にある『インジゲーターの表示』を開き、Claude Desktopのアイコンを選択して閉じて、再起動する必要がある
- 失敗時の確認ポイント:
- API Key / Host / Port の不一致(Obsidian側設定と一致させる)
- uvxのパス(where uvxで確認、必要なら絶対パス指定)
-
Claudeログ(
%APPDATA%\Claude\logs\mcp*.log)
参考:mcp-obsidian README/Claude公式トラブルシュート/Obsidian REST API Docs こちら

