🔗

Windows環境でObsidian MCPをClaude Desktopに連携する手順とトラブルシューティング

に公開

はじめに

この記事は、Obsidian MCPサーバーをClaude Desktopで使ってみた | DevelopersIOを参考にWindows環境で連携を試みたところ、いくつかの問題に遭遇したため、その解決過程をまとめたものです。

Claude DesktopとObsidianを連携させることで、Obsidianのノートを Claude Desktopから直接読み込みできるようになります。

Windows環境での主な問題点:

  • smithery CLIで自動生成される設定ファイルのJSONエスケープ問題
  • Mac前提のドキュメントでWindows固有のパスやコマンドが分からない
  • 設定ファイルの場所が分からない

前提条件

この記事では、以下が既にインストールされていることを前提としています:

Node.jsのインストールがまだの場合は、以下の記事を参考にnvm-windowsを使ったインストールを推奨します:

https://zenn.dev/keison8864/articles/nvm-windows-nodejs-install

Obsidian MCPサーバーのインストール

smithery CLIを使ったインストール

Obsidian MCPサーバーは、smithery CLIを使って簡単にインストールできます:

npx @smithery/cli install mcp-obsidian --client claude

インストール中にいくつかの質問が表示されます:

Need to install the following packages:
@smithery/cli@1.2.15
Ok to proceed? (y) y

npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
? Would you like to help improve Smithery by sending anonymized usage data?
For information on Smithery's data policy, please visit: https://smithery.ai/docs/data-policy Yes
✔ Successfully resolved mcp-obsidian
? The path to your Obsidian vault. (required) "C:\Users\[ユーザー名]\Documents\MyVault"
mcp-obsidian successfully installed for claude

問題発生:Claude Desktopでエラーが表示される

インストール完了後、Claude Desktopを再起動したところ、以下のエラーが表示されました:

一見するとエラー内容が分からないため、ログファイルを確認したところ、以下のエラーが出力されていました:

Error parsing config: Bad escaped character in JSON at position 17 (line 1 column 18)

ログの確認方法については後述しますが、まずは原因を調査してみました。

原因:設定ファイルの多重エスケープ問題

%APPDATA%\Claude\claude_desktop_config.json を確認したところ、以下のような設定が自動生成されていました:

インストール時にWindowsパスをバックスラッシュで指定したため、JSON内で過度なエスケープが発生してしまったようです。

{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@smithery/cli@latest",
        "run",
        "mcp-obsidian",
        "--config",
        "\"{\\\"vaultPath\\\":\\\"\\\\\\\"C:\\\\\\\\Users\\\\\\\\[ユーザー名]\\\\\\\\Documents\\\\\\\\MyVault\\\\\\\"\\\"}\""
      ]
    }
  }
}

この設定では、JSONパースエラーが発生してしまいます。

解決手順

ステップ 1: 設定ファイルの修正

上記のエスケープ地獄を解決するため、設定ファイルを手動で修正します。

設定ファイルを以下のように修正します:

{
  "mcpServers": {
    "mcp-obsidian": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "mcp-obsidian",
        "--config",
        "{\"vaultPath\":\"C:/Users/[ユーザー名]/Documents/MyVault\"}"
      ]
    }
  }
}

修正ポイント:

  • "command": "cmd""/c" を削除し、直接 "npx" を実行
  • Windows パスをバックスラッシュからスラッシュ(/)に変更(最も安全)
  • JSON内の過度なエスケープを整理

ステップ 2: Claude Desktopの再起動

設定ファイルを修正した後、Claude Desktopを完全に再起動します。

再起動手順

  1. 完全終了: タスクトレイのアイコンを右クリックし、「終了」を選択

  1. 再起動: Claude Desktopを再度起動します

補足:Windows環境でのトラブルシューティングTips

設定ファイルやログの場所が分からない場合

おそらく参考にした記事はMac前提で書かれており、~/Library/Logs/... などのパスが記載されていますが、Windowsでは以下の場所を確認してください:

設定ファイルの場所:

  • %APPDATA%\Claude (C:\Users<ユーザ名>\AppData\Roaming\Claude)
  • %LOCALAPPDATA%\Claude (C:\Users<ユーザ名>\AppData\Local\Claude)

検索コマンド:

Get-ChildItem -Recurse "$env:APPDATA" -File -Filter "claude_desktop_config.json"

ログの確認:

Get-Content -Wait -Tail 20 "$env:APPDATA\Claude\logs\mcp-server-mcp-obsidian.log"

動作確認

設定が正しく完了すると、Claude Desktopで以下のような表示が確認できます。

1. 設定画面での確認

Claude Desktopの設定画面から「コネクタ」を選択すると、"mcp-obsidian" が表示されます:

2. チャット画面での確認

チャット欄下部にも "mcp-obsidian" が表示されます:

利用可能な機能として read_notessearch_notes が確認できます:

3. 実際の動作テスト

「obsidianにどんなノートがまとめてある?」などと質問すると、Obsidianのノート内容を読み取って回答してくれます:

まとめ

Windows環境でObsidian MCPをClaude Desktopに連携する際は、以下の点に注意が必要です:

主要な注意点

  • JSONエスケープ問題: smithery CLIで自動生成される設定ファイルには多重エスケープの問題があり、手動修正が必要
  • パス表記の統一: Windows パスはスラッシュ(/)表記に変更するのが安全
  • 設定の反映: 設定変更後はClaude Desktopを完全再起動する
  • ログの活用: エラーの詳細はログファイルで確認する(Windows では %APPDATA%\Claude\logs\ 配下)

解決の流れ

  1. smithery CLIでインストール
  2. エラー発生時はログで詳細を確認
  3. 設定ファイルのJSONエスケープを修正
  4. Claude Desktopを完全再起動
  5. 動作確認

これらの手順を踏むことで、Windows環境でもObsidian MCPを利用できるようになります。

参考リンク

Discussion