0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【MCP運用術】増えすぎたMCPをどう管理する?接続構築から「日々の死活監視・ヘルスチェック」までの実践ガイド

0
Last updated at Posted at 2026-09-08

はじめに

Model Context Protocol(MCP)の登場により、AIエージェント(Claude Desktop、Cursor、Gemini Antigravityなど)にあらゆる外部ツールやAPIを接続できるようになりました。

SEO分析(GA4 / Search Console / Ubersuggest)、ナレッジ(NotebookLM / Google Drive)、Web検索(Brave Search)、開発(GitHub / SQLite)など、MCPを組み合わせて**「自分だけの最強AI環境」**を作るのは非常に楽しい体験です。

しかし、MCPを増やしていくと必ず直面するのが**「あれ?これ今ちゃんと動いてる…?」問題**です。

  • Google OAuthやCookieのセッションが切れていた
  • APIキーの無料枠や有効期限が切れていた
  • パスや依存パッケージの更新でローカルサーバーが落ちていた

本記事では、8種類以上の実用MCPを統合しつつ、日常的に「一発で接続状況をチェックできる運用体制」を構築したナレッジをまとめます。


1. 今回構築したMCP統合環境の全体像

日々の業務(コンテンツ制作、SEO分析、リサーチ、開発)をカバーするため、以下のMCPサーバーを mcp_config.json で一元管理しています。

カテゴリ MCPサーバー 認証・連携方式 主な用途
SEO・データ分析 ga4 GCP サービスアカウント アクセス解析・リアルタイム集計
search-console GCP サービスアカウント 検索パフォーマンス・URL検査
ubersuggest Remote SSE (API認証) キーワード分析・競合調査
ナレッジ・リサーチ notebooklm ローカルPython CLI + Cookie ノートブック検索・Q&A・音声概要生成
brave-search API Key(月2,000回無料) 最新Web情報検索
gdrive Google OAuth 2.0 (Desktop) ドキュメント・スプレッドシート閲覧
開発・執筆 github Personal Access Token (PAT) リポジトリ検索・Issue/PR管理
sqlite ローカルファイルパス ローカルDB操作・データ分析
scrivener ローカルNode.js 執筆アプリのプロジェクト連携

2. MCP認証の4大パターンと設定の落とし穴

MCPを複数運用する際、認証方式ごとの特性を把握しておくことが安定運用の鍵になります。

① APIキー型(Brave Search / Ubersuggest 等)

  • 特徴: 環境変数 BRAVE_API_KEY 等を渡すだけで最も手軽。
  • 注意点: クォータ上限(Braveは月2,000回無料枠など)に達した際のエラーハンドリング。
"brave-search": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-brave-search"],
  "env": {
    "BRAVE_API_KEY": "YOUR_API_KEY"
  }
}

② サービスアカウント型(GA4 / Search Console 等)

  • 特徴: Google Cloudのサービスアカウントキー(JSON)を指定。トークン失効がなく一度設定すれば永続的に動作。
  • 注意点: キーファイルの配置パスを固定し、アクセス権限(パーミッション)を適切に保つ。
"ga4": {
  "command": "node",
  "args": ["/path/to/ga4/index.js"],
  "env": {
    "GA4_PROPERTY_ID": "xxxxxxxxx",
    "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/ga4-key.json"
  }
}

③ OAuth・ブラウザセッション型(Google Drive / NotebookLM 等)

  • 特徴: 個人のGoogleアカウントやクラウドサービスと直接紐付けるため、強力だがセッション管理が必要。
  • 落とし穴: 初回認証時のブラウザ起動トラブル。CLIツール側でログイン(nlm loginserver-gdrive auth)を済ませてから設定するのが確実。
"gdrive": {
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-gdrive"],
  "env": {
    "GDRIVE_OAUTH_PATH": "/path/to/gcp-oauth.keys.json",
    "GDRIVE_CREDENTIALS_PATH": "/path/to/.gdrive-server-credentials.json"
  }
}

④ ローカルCLI / DB型(SQLite / Scrivener 等)

  • 特徴: 外部通信なしでローカル完結。爆速で安定。
  • 注意点: 対象ファイル(data.db.scriv)への絶対パス指定。

3. 「日々のヘルスチェック体制」の作り方

MCPが増えると、「いざタスクを頼んだときに動かない」というダウンタイムが発生します。
そこで、「AI自身に各MCPの死活監視(ヘルスチェック)を巡回させる」 体制を作りました。

AIへの指示プロンプト(ワンフレーズ)

朝の作業開始時やセッション開始時に、以下のプロンプトを投げるだけです。

今設定しているMCPの接続状況をチェックしてください。

エージェント内部でのヘルスチェック実行フロー

AIエージェント側は、各MCPサーバーに対して**「軽量で副作用のない確認用ツール」**を並列〜順次コールします。

実際のレスポンス例

AIから以下のように一覧で返ってくるため、一目でどのMCPが生きていて、どれが認証切れになっているかが把握できます。

### 接続状況一覧

| MCP サーバー名 | 接続状態 | テスト結果・詳細 |
| :--- | :---: | :--- |
| **ubersuggest** | 🟢 正常 | ログインユーザー認証確認済み (`user@example.com` / `tier3`) |
| **search-console** | 🟢 正常 | サイト一覧の取得成功 (`sc-domain:example.com`) |
| **ga4** | 🟢 正常 | ディメンション・指標等のメタデータ取得成功 |
| **notebooklm** | 🟢 正常 | ノートブック一覧取得成功 (authenticated: true) |
| **scrivener** | 🟢 正常 | プロジェクト探索・ツール実行応答確認済み |

4. この体制を導入して得られたメリット

  1. 「タスク実行中の予期せぬ失敗」がゼロに
    作業の途中で「Google Driveのトークンが切れていて止まった」「Search ConsoleのAPIが叩けない」といった手戻りが完全になくなりました。
  2. トークン切れや設定不備を即座に特定・復旧できる
    「どのMCPが落ちたのか」がピンポイントでわかるため、再認証(nlm login や OAuth再発行)も1分以内で完了します。
  3. MCPの追加・メンテナンスが格段にラクに
    新しいMCPサーバーを追加した際も、既存環境に影響を与えていないかをヘルスチェックですぐに確認できます。

まとめ

MCPはAIエージェントの可能性を何倍にも広げてくれる素晴らしい仕組みですが、ツールが増えれば増えるほど「接続のヘルスチェック・保守体制」が実務での快適さを左右します。

  • mcp_config.json による集約管理
  • 認証タイプごとの適切なトークン保持
  • AIエージェント自身を活用した日々のヘルスチェック

ぜひ皆さんも「MCPを接続して終わり」ではなく、**「毎日の健康診断ルーティン」**を取り入れて快適なAIライフを構築してみてください!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?