🔨

【Could not connect to MCP server】ClaudeのMCPサーバ接続エラーを解決する

2024/12/16に公開

概要

MCPのQuickstartをとりあえずやってみようと以下の公式サイトを見て進めていたところ、
MCPサーバの接続エラーで少し苦戦したので、簡単にですが解決方法をまとめました。

https://modelcontextprotocol.io/quickstart

発生したエラーは以下の通りです。

Desktopに表示されたエラー

Could not connect to MCP server <サーバ名>

MCPログに表示されたエラー

2024-12-12T16:46:26.458Z [error] Error in MCP connection to server weather: Error: spawn uv ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:286:19)
    at onErrorNT (node:internal/child_process:484:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn uv',
  path: 'uv',
  spawnargs: [Array]
}

結論

先に結論を書くと、claude_desktop_config.jsonを修正することで解決しました。
MCPログに表示されたエラーを見ると、"uv"コマンドが見つからなかったようなので以下のような感じでフルパスを指定しました。

which uvでフルパスを取得できます。

claude_desktop_config.json
{
  "mcpServers": {
      "weather": {
-         "command": "uv",
+         "command": "/usr/local/Cellar/uv/0.5.8/bin/uv",
          "args": [
              "--directory",
              "/Users/USERNAME/weather",
              "run",
              "weather"
          ]
      }
  }
}

詳しい原因まではわかりませんが、こちらはおそらく私の環境に起因しているんじゃないかと思います。
MCPのエラーが出ているのであればとりあえずMCPのログは見るべきでしょう。

以下のコマンドもしくはDesktopアプリでMCPのログを確認できます。

コマンド

tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

Desktopアプリからログファイルを開く

調べたこと・試したこと

さて、ついでに解消するまでに調べたことや試したことをまとめます。
自分とは違う原因でエラーが出ている方の助けになれば幸いです。

  • Claudeの再起動
    • configを変更したら一旦再起動はしておいた方が良さそうです
  • pythonのバージョンの確認
    • 古いとダメだとの情報をどこかで見ました
  • nodeのバージョンの確認
    • 以下の記事を参考にしたところ、nodeのバージョンが関係しているのではないかと思い、実際少し古そうだったので上げてみました

https://zenn.dev/channnnsm/articles/6fc50a86a1e03e

  • 管理者権限で起動し直す
    • 以下記事にそのように記載されていたため試してみました

https://qiita.com/ayoyo/items/6f92bde15fb1168624bb#claude-desktop側の設定

最後に

Quickstartなのにquickに進められなかったのは少し悔しいですが、とりあえずMCPを触れて良かったです。使いこなせれば様々な可能性がありますが、まだまだ設定の部分でハードルがありそうだなと感じました。

次はローカルファイルのアクセスや、Brave Search APIによるWeb検索、GitHubとの連携なども試してみたいと思います!

Sun* Developers

Discussion