2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeにMCPを10個繋いだら、ブラウザを開かなくなった

2
Last updated at Posted at 2026-03-07

新座のマックでコーヒーだけで一日中作業していた日のことだ。

Claude Codeでメールを読み、カレンダーを確認し、Chatworkに返信し、GitHubにpushした。ブラウザは一度も開かなかった。ふと気づいて、自分のMac画面を見直した。ターミナルしかない

「これ、全部ここで完結してるじゃん」

そのとき繋いでいたMCPサーバーの数を数えたら、10個だった。

何を繋いだのか

選定基準はシンプルで、「毎日ブラウザで開いているサービス」を全部MCPに置き換えた。メール、カレンダー、チャット、ドキュメント管理、バージョン管理——日常業務で触るものは全部APIが公開されている。なら繋がない理由がない。

Claude Code(VS Code拡張)
├── Gmail MCP .............. メール検索・閲覧・送信
├── Google Calendar MCP .... 予定の取得・作成・更新
├── Google Drive MCP ....... ドキュメント検索
├── Chatwork MCP ........... メッセージ閲覧・投稿・タスク管理
├── Chatwork MCP (2nd) ..... 別アカウント(事務局用)
├── GitHub MCP ............. リポジトリ操作・Issue・PR
├── Notion MCP ............. ページ検索・作成・更新
├── NotebookLM MCP ......... ノートブック検索・質問
├── Spotify MCP ............ 再生コントロール・検索
└── Gemini API ............. 画像生成・補完(ラッパースクリプト経由)

正直、最初は3つくらいで十分だと思っていた。Gmail、カレンダー、GitHub。でも繋ぎ始めると止まらない。「これもAPIあるじゃん」の連鎖。気づいたら10個になっていた。

各MCPの設定とハマりどころ

1. Gmail MCP

パッケージ: @gongrzhe/server-gmail-autoauth-mcp

GmailのMCPは選択肢が複数ある。公式のAnthropicホスティッド版もあるが、ローカル版を選んだ。フィルタ作成やラベル管理まで手が届くからだ。

{
  "gmail": {
    "command": "npx",
    "args": ["-y", "@gongrzhe/server-gmail-autoauth-mcp"],
    "env": {
      "GMAIL_OAUTH_PATH": "~/.gmail-mcp/gcp-oauth.keys.json"
    }
  }
}

ハマった:

  • GCPのOAuth同意画面を本番公開しないと、7日でトークンが切れる。テストモードだと毎週認証し直し。これに気づくまで3回やり直した
  • gmail.modifyスコープを忘れるとラベル操作で権限エラー。地味にハマる

朝イチで「今日の未読メールまとめて」と打つだけで、ブリーフィングに組み込める。返信のドラフトも作れる。メーラーを開く回数が激減した。

2. Google Calendar MCP

パッケージ: @cocal/google-calendar-mcp

{
  "google-calendar": {
    "command": "npx",
    "args": ["-y", "@cocal/google-calendar-mcp"],
    "env": {
      "GOOGLE_OAUTH_CREDENTIALS": "/path/to/gcp-oauth.keys.json"
    }
  }
}

GmailとOAuthキーを共有できる。同じGCPプロジェクトで両方のスコープを入れておけば、認証ファイルは1つで済む。これは楽。

毎朝「今日と明日の予定」を自動取得して、空き時間の確認もターミナルから。

3. Google Drive MCP

パッケージ: @modelcontextprotocol/server-gdrive

{
  "gdrive": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-gdrive"],
    "env": {
      "GDRIVE_OAUTH_PATH": "/path/to/gcp-oauth.keys.json",
      "GDRIVE_CREDENTIALS_PATH": "/path/to/credentials.json"
    }
  }
}

注意: デフォルトパスだと認証ファイルが見つからないバグがある。環境変数で明示的にパスを指定しないと動かない。ドキュメントにも書いてないので、ソース読んで気づいた。

4. Chatwork MCP

パッケージ: @chatwork/mcp-server(npm公式)

{
  "chatwork": {
    "command": "npx",
    "args": ["-y", "@chatwork/mcp-server"],
    "env": {
      "CHATWORK_API_TOKEN": "your-api-token"
    }
  }
}

うちはChatworkのルームが954個ある。ブラウザで巡回していたら日が暮れる。

面白いのは、同じパッケージで複数アカウントを同時接続できること。サーバー名とAPIトークンを変えるだけでいい。

{
  "chatwork": { "env": { "CHATWORK_API_TOKEN": "main-token" } },
  "chatwork-jlwa": { "env": { "CHATWORK_API_TOKEN": "jimukyoku-token" } }
}

メインと事務局アカウントを使い分けている。954ルームの中から特定の相手のメッセージを一発で引っ張れるのは、正直めちゃくちゃ助かっている。

5. GitHub MCP

パッケージ: @modelcontextprotocol/server-github

{
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "your-pat"
    }
  }
}

gh CLIが認証済みなら、そのOAuthトークンをPATとして使える。わざわざ新しいトークンを発行しなくていい。

6. Notion MCP

パッケージ: Notion公式ホスティッド(HTTP型)

{
  "notion": {
    "type": "url",
    "url": "https://mcp.notion.com/mcp"
  }
}

他のMCPと違い、ローカルでnpxを走らせるんじゃなくてNotion側がホスティングしている。設定はURLを書くだけ。楽。

ただしVS Codeセッションとの同期がたまに切れる。「接続済み」と表示されてるのにツールが見つからない。再起動すれば直るが、ちょっとモヤる。

7. NotebookLM MCP — ゾンビ127体との戦い

パッケージ: notebooklm-mcp@latest(非公式・PleasePrompto版)

ここが一番ヤバかった。

ある日、VS Codeが異常に重くなった。ファンが回りっぱなし。アクティビティモニタを開いて血の気が引いた。

$ ps aux | grep notebooklm-mcp | wc -l
127

127個のゾンビプロセス。CPU使用率230%超。

セッションが切れるたびに新しいプロセスが立ち上がるのに、古いやつが死なない。非公式MCPあるあるだと思うが、まさかここまでとは。

# 全駆除
pkill -9 -f "notebooklm-mcp"

これを打った瞬間、ファンが止まった。静寂。

今は普段は無効化して、使うときだけ有効にしている。使用後は必ずpkillで掃除。非公式APIなのでGoogle側の変更で動かなくなるリスクもある。爆弾を抱えている感覚。

8. Spotify MCP

パッケージ: sespinosa/spotify-mcp(GitHub clone)

「おしゃれでしょ?」と上司に見せたら笑われた。でも作業BGMの選曲をターミナルからやれるのは地味に快適。

落とし穴: 2026年2月のSpotify APIポリシー変更で、Development Modeだとプレイリスト作成APIが使えなくなった。Extended Quota Modeの申請には組織が必要。個人開発者は実質アウト。

プレイリストはローカルファイルで管理して、Spotifyアプリで手動保存する運用に切り替えた。

9. Gemini API(ラッパースクリプト)

MCPではないが、Claude Codeから呼び出せるようにしている。

#!/bin/bash
# tools/gemini.sh
curl -s "https://generativelanguage.googleapis.com/v1beta/models/$1:generateContent?key=$GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d "{\"contents\":[{\"parts\":[{\"text\":\"$2\"}]}]}"

Claudeが苦手な画像生成をGeminiに投げる。Claude × Geminiのハイブリッド。AIにAIを呼ばせる構成、なかなかシュール。

GCPプロジェクトは1つにまとめろ

Gmail・Google Calendar・Google Driveは全部同じGCPプロジェクトで管理している。

GCPプロジェクト: ai-management
├── OAuth同意画面(本番公開済み)
├── OAuthクライアントID
│   ├── Gmail MCP用
│   ├── Google Calendar MCP用
│   └── Google Drive MCP用
└── APIキー
    └── Gemini API用

同意画面を本番公開しておくこと。テストモードだと7日でトークンが失効する。これ、2回ハマった。2回目は自分が悪い。

毎朝、こうなる

  1. ターミナルで「おはよう」と打つ
  2. Google Calendar → 今日・明日の予定を取得
  3. Gmail → 未読・未返信メールを確認
  4. Chatwork → 重要ルームの未読を確認
  5. 全部まとめて朝のブリーフィングとして出てくる

この流れはCLAUDE.mdに定義してある。Claude Codeは起動時にCLAUDE.mdを読むので、「おはよう」の一言でMCPが連鎖的に動く。

# CLAUDE.md(抜粋)

## セッション開始プロトコル
ユーザーが「おはよう」と発言したとき:
1. Google Calendar MCPで今日+明日の予定を取得
2. Gmail MCPで未読・未返信メールを確認
3. Chatwork MCPで重要ルームの未読を確認
4. 全てをまとめて朝のブリーフィングとして報告

CLAUDE.mdにプロトコルを書いておけば、MCPの呼び出し順序をClaudeが勝手に判断してくれる。個別のスクリプトを組む必要がない。これがMCP連携の真価だと思う。

ブラウザのタブを10個開く生活とはおさらばだ。コーヒーだけで一日中ターミナルと向き合っていられる。

10個繋いで気づいたこと

コンテキストウィンドウは有限

MCPを増やすほど、ツール定義だけでトークンを食う。10個繋ぐと数千トークンが定義で消える。

対策は2つ。使用頻度の低いMCP(NotebookLM等)は普段無効化。あとCLAUDE.mdを分割して本体を軽量化した(634行→278行に圧縮した話は次回書く)。

認証ファイルの管理

10サービス分のOAuthトークン・APIキーを管理することになる。環境変数で管理して.gitignoreで除外。ここをサボると事故る。

バックアップもlaunchdで自動化している。変更があれば毎日2回、勝手にcommit & pushされる。

#!/bin/bash
# auto-backup.sh — 変更があれば自動でcommit & push
cd "/path/to/project" || exit 1

if [ -z "$(git status --porcelain)" ]; then
  exit 0  # 変更なし
fi

DATE=$(date '+%Y-%m-%d %H:%M')
git add -A
git commit -m "自動バックアップ: ${DATE}"
git push

認証ファイルは.gitignoreに入っているので、うっかりpushされる心配はない。

迷ったら繋げ

最初は「Spotifyとか要る?」と思っていた。繋いでみたら使い道が見つかった。MCPの追加コストはほぼゼロ。APIは無料枠で足りる。迷ったら繋いでおくのが正解。繋がなかったことを後悔することはあっても、繋いで後悔することはない。

次回予告

この10連携を束ねるCLAUDE.mdの設計術——634行を278行に圧縮しながら、むしろ機能は増やした話を書く。

→ 書きました:CLAUDE.mdが634行になって関係が壊れた話

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?