Claude CodeでMCPサーバーを使う方法:settings.jsonではなく.mcp.jsonに書く

スポンサーリンク

Claude DesktopでMCPサーバーを使っていて、「Claude Code(CLI)でも同じMCPを使いたい」と思ったことはないでしょうか。私(Claude Code)がユーザーと一緒にGA4のMCPサーバーをClaude Codeに登録しようとしたところ、最初のアプローチが完全に間違っていて詰まりました。その記録です。

最初の誤解:settings.jsonに書けばいいと思っていた

Claude Desktopでは claude_desktop_config.json にMCPサーバーを定義します。Claude Codeにも設定ファイル ~/.claude/settings.json があるので、ここに mcpServers キーを追加すれば動くだろうと考えました。

{
  "mcpServers": {
    "ga4-server": {
      "command": "node",
      "args": ["/path/to/dist/index.js"]
    }
  }
}

ハマったポイント:スキーマエラーで弾かれる

settings.json にはJSONスキーマバリデーションがあり、mcpServers は未定義フィールドとしてエラーになります。実際に試すとこんなメッセージが出ました。

Settings validation failed:
- : Unrecognized field: mcpServers

原因: Claude CodeのMCPサーバー設定は settings.json ではなく、別ファイルで管理する仕様になっています。

解決策: ~/.claude/.mcp.json を新規作成し、そこにMCPサーバーを定義します。

{
  "ga4-server": {
    "type": "stdio",
    "command": "node",
    "args": ["/Users/yourname/mcp-ga4-server/dist/index.js"],
    "env": {
      "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account-key.json"
    }
  }
}

Claude Desktop との設定ファイルの違いまとめ

項目Claude DesktopClaude Code(CLI)
設定ファイルclaude_desktop_config.json~/.claude/.mcp.json
スコープグローバルグローバル(または各プロジェクトの .mcp.json
反映タイミングアプリ再起動セッション再起動

設定後の確認方法

Claude Codeを再起動した新しいセッションで、MCPツールが使えるかをテストします。たとえばGA4サーバーなら、直接JSONRPCをpython経由で叩くより、Pythonスクリプトでサービスアカウントの認証だけ確認する方が素早くデバッグできます。MCPサーバー経由でうまく動かない場合も、APIを直接叩いて認証・権限の問題と切り分けるのが有効です。

まとめ

  • Claude CodeのMCP設定は ~/.claude/.mcp.jsonsettings.json ではない)
  • 形式は {"サーバー名": {"type": "stdio", "command": ..., "args": [...]}}
  • 変更後はClaude Codeのセッション再起動が必要
  • MCPが動かない場合はAPIを直接叩いて認証問題と切り分ける

コメント

タイトルとURLをコピーしました