Claude Code に MCP サーバーを追加する手順 — 実際の設定ファイルで

これまでの記事(プロジェクトフォルダの回し方 / Gmail × MCP / WordPress × MCP)で「MCP で繋いでいる」と繰り返し書いてきた。その後 Google カレンダーも同じ要領で繋いだので、この記事では Gmail・WordPress・Google カレンダーの3つを実例に、設定の中身と、つまずいたところをまとめて書く。

前提

  • Claude Code が入っていること
  • Node.js(npx で動くタイプの MCP サーバーが多い)
  • 例は Gmail・WordPress・Google カレンダーの3つ

設定ファイルの場所とスコープ

MCP サーバーの登録先は用途で変わる。

  • ~/.claude.json のトップレベル mcpServers:自分の全プロジェクトで有効(user スコープ)。Windows なら C:\Users\<ユーザー名>\.claude.json
  • プロジェクト直下の .mcp.json:そのプロジェクト限定。チームで共有=Git に入れる前提

認証情報を含むものは user スコープ(~/.claude.json)に置く。Git 管理下のファイルにパスワードを書かない。

実際の中身(このブログ環境の設定)

~/.claude.json の mcpServers はこうなっている(認証情報はダミー)。

{
  "mcpServers": {
    "gmail": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@gongrzhe/server-gmail-autoauth-mcp"],
      "env": {}
    },
    "wordpress": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-wordpress"],
      "env": {
        "WORDPRESS_SITE_URL": "https://example.com",
        "WORDPRESS_USERNAME": "あなたのユーザー名",
        "WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
        "WORDPRESS_AUTH_METHOD": "app-password"
      }
    },
    "google-calendar": {
      "type": "stdio",
      "command": "node",
      "args": ["C:\\Users\\<ユーザー名>\\.google-calendar-mcp\\src\\build\\index.js"],
      "env": {
        "GOOGLE_OAUTH_CREDENTIALS": "C:\\Users\\<ユーザー名>\\.google-calendar-mcp\\gcp-oauth.keys.json"
      }
    }
  }
}
  • command + args:起動コマンド。npx -y <パッケージ名> で npm のパッケージをその場で取ってきて実行できる
  • env:そのサーバーに渡す環境変数。Gmail は空(認証は後述の方法で別ファイルに保存される)、WordPress は接続先とログイン情報

google-calendar だけ npx ではなく node でビルド済みファイルを直接指定している。理由は後述の「つまずいたところ」参照。

コマンドで追加する場合

手で JSON を書かなくても、claude mcp add で同じことができる。

claude mcp add wordpress -s user \
  -e WORDPRESS_SITE_URL=https://example.com \
  -e WORDPRESS_USERNAME=あなたのユーザー名 \
  -e "WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx" \
  -e WORDPRESS_AUTH_METHOD=app-password \
  -- npx -y mcp-wordpress

-s user がスコープ、-e が環境変数、-- の後ろが起動コマンド。

ただしこれはターミナルから claude コマンドが使える環境の話。うちの Windows PC は VS Code 拡張版の Claude Code しか入っておらず、claude コマンド自体が PATH に無くてターミナルから叩けない。その場合は素直に ~/.claude.json を直接編集すればいい。

認証

  • WordPress:管理画面 → ユーザー → プロフィール → 「アプリケーションパスワード」で発行。表示される xxxx xxxx xxxx xxxx xxxx xxxx(スペース込み)をそのまま env に入れる
  • Gmail / Google カレンダー:どちらも Google の OAuth。初回は認証コマンドを実行するとブラウザが開いて Google のアクセス許可画面が出る(開かない場合はターミナルに出るURLを手で開けばいい)。許可すると認証情報が ~/.gmail-mcp/~/.google-calendar-mcp/ に保存され、設定ファイル自体には何も書かない

反映と確認

  • 設定を変えたら Claude Code を起動し直す(VS Code 拡張なら「Developer: Reload Window」)
  • /mcp でサーバーの状態を確認。connected になっていればOK

つまずいたところ

npx がその場で解決するバージョンで壊れることがある。
Google カレンダーの MCP サーバー(@cocal/google-calendar-mcp)を npx -y で起動したら ERR_MODULE_NOT_FOUND: zod/v3/index.js で即クラッシュした。原因は、npx がその場で最新の zod v4系を掴んでしまい、MCP SDK が期待する v3系のサブパスが存在しなかったこと。対処は、GitHub リポジトリをクローンして、同梱の package-lock.json でバージョンを固定した状態で npm install && npm run build。.claude.json 側も npx ではなく、ビルド済みの build/index.js を node で直接指定する形に変更した。「npx -y で動かない MCP サーバーに当たったら、ローカルにクローンしてビルドする」は覚えておいて損はない。

認証の有効期限が切れると invalid_grant になる。
しばらく使っていなかった Gmail の連携が、ある日 invalid_grant エラーで一切動かなくなった。認証コマンドを打ち直せば再認証はできる(ブラウザでもう一度許可するだけ)が、ハマったのはその後:認証情報ファイルを更新しても、MCP サーバーのプロセス自体は Claude Code 起動時に立ち上がったまま常駐しているので、古い認証情報を握ったまま動き続ける。ウィンドウの再読み込み(VS Code なら「Developer: Reload Window」)でサーバープロセスごと再起動して、はじめて新しい認証情報を読みにいってくれた。「再認証したのに直らない」と思ったら、まずプロセスの再起動を疑うとよい。

サーバーの WAF が更新をブロックしていた。
新規投稿(POST)は通るのに、既存記事の修正(PUT)だけ「Forbidden」で弾かれる。原因は、レンタルサーバーの WAF が「PUT メソッドの拒否」というルールで REST API の更新まで止めていたこと。コントロールパネルの WAF ログから、その1件を「除外」に登録して解決した。

日本語タイトルだとスラッグが自動生成でぐちゃぐちゃになる。
パーセントエンコードされた長い URL になるので、投稿後に手で英字スラッグに直す運用にしている。

MCP が一覧の結果をキャッシュする。
カテゴリー一覧などが古い値のまま返ってくることがあり、「消したはずのカテゴリーがまだある」と勘違いした。確認の前にキャッシュをクリアするようにした。

まとめ

  • MCP サーバーの追加 =「~/.claude.json の mcpServers に、起動コマンドと環境変数を書く」だけ
  • 認証情報は user スコープに。Git に入るファイルには書かない
  • npx が壊れたらローカルビルド、認証が切れたら再認証+プロセス再起動、更新が弾かれたら WAF を疑う。うちで実際に踏んだ地雷は今のところこの3つ
  • 変更後は再起動 → /mcp で確認
タイトルとURLをコピーしました