🐕

Claude DesktopからGitHub MCPにうまく接続できなかった時にやった対応をまとめてみた

に公開

最近、Claude デスクトップアプリケーションとGitHubの連携機能(Model Context Protocol)に接続問題が発生しました。この記事では、この問題の概要と解決方法についてまとめています。

問題の概要

Claude Desktopにて、GitHub MCP Serverへの接続を試みました。しかし設定をしたはずなのにエラーが発生し、うまく接続できませんでした。

最終的な結論としては、Nodeのパスをより厳密に書くことで解決しています。

接続に失敗すると、どうなるか?

GitHubとClaudeの連携に問題が発生した場合、典型的に以下のような症状が見られます:

  1. Claudeがリポジトリへの接続を試みた後にエラーメッセージを表示
  2. コード分析機能が動作しない
  3. アプリケーションログに接続エラーが記録される

具体的なエラーパターンとその識別方法

問題を早期に特定するために、以下の主要なエラーパターンを把握しておくと便利です:

  1. spawn npx ENOENT エラー

    • ログ例: 2025-03-24T05:15:42.092Z [github] [error] spawn npx ENOENT
    • 意味: npx コマンドが見つからない(Node.jsの設定問題)
  2. node: No such file or directory エラー

    • ログ例: env: node: No such file or directory
    • 意味: Node.js自体がシステム上で見つからない

問題の調査と解決の記録

1. 問題の切り分けと診断

問題が発生した時は、まずログをチェックする必要があります。Claudeアプリケーションのログ(通常%APPDATA%\Claude\logsまたは~/Library/Logs/Claudeに保存)にあるログデータをチェックしましょう。もしユーザーからの相談を受けている場合は、ログファイルを共有してもらうように依頼する必要があります。

2. 具体的な解決策の実装ステップ

今回の事例では、以下の手順で問題を解決しました:

問題のあった設定

"github": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-github"],
  "env": {
    "PATH": "/Users/okamotohidetaka/.anyenv/envs/nodenv/shims/node",
    ...
  }
}

修正した設定

"github": {
  "command": "/Users/okamotohidetaka/.anyenv/envs/nodenv/shims/npx",
  "args": ["-y", "@modelcontextprotocol/server-github"],
  "env": {
    "PATH": "/Users/okamotohidetaka/.anyenv/envs/nodenv/shims:/usr/local/bin:/usr/bin:/bin"
  }
}

または、既存のPATH環境変数を継承する方法:

"env": {
  "PATH": "${PATH}:/Users/okamotohidetaka/.anyenv/envs/nodenv/shims"
}

まとめと次のステップ

今回の問題は、npxコマンドやnodeコマンドをMCPがうまく使えなかったことが原因です。そのため、使っているPCでこれらのコマンドがどこにあるかをより具体的に指定してあげることで解決させました。

nodenvやanyenvなどを使ってNode.jsのバージョンを管理していると遭遇しやすいケース・・・かもしれませんので、これらを使いながらMCPサーバーを立てようとされている方は、ご注意ください。

デジタルキューブ

Discussion