
こんにちは。よっしーです(^^)
背景
この連載では、Claude Codeの公式ドキュメントを1ページずつ読み解いていきます。公式ドキュメントは情報が網羅されている分、「結局どの機能を、どんな場面で使えばいいのか」は自分で考える必要があり、読むのに意外と時間がかかります。そこで、私が実務で使うために読み込んだ内容を「使う場面→実例コード」の順に整理して残していくことにしました。専門家の解説というより、一次情報を読んだ記録です。推測や動作を確認していない部分には、その都度そう書きます。
1. これは一言でいうと何か
MCP(Model Context Protocol)は、AI ツール統合のためのオープンソース標準です。MCP サーバーを接続すると、Claude Code はツール・データベース・API に直接アクセスできるようになります。判断の目印は単純で、別のツール(課題追跡、監視ダッシュボードなど)からチャットにデータをコピペしているなら、そのサーバーを接続するサインです。接続後は、貼り付けたものを見るのではなく、Claude がそのシステムを直接読み書きします。
このページは完全なリファレンスです。初接続なら、まず「MCP クイックスタート」から始めるのが公式の案内です。
2. どういう場面で役立つか
- 課題追跡から実装まで一気通貫:「JIRA の課題 ENG-4521 の機能を追加し、GitHub に PR を作成して」のように、複数サービスをまたいだ指示ができます。
- 本番の問題をその場でデバッグ:Sentry を接続すれば「過去 24 時間で最も多いエラーは?」「エラー ID abc123 のスタックトレースは?」と自然文で聞けます。
- データベースへの自然文クエリ:PostgreSQL を接続して「今月の総収益は?」「orders テーブルのスキーマを表示して」と尋ねられます。
- 離席中の外部イベントに反応:MCP サーバーは「チャネル」としても働き、セッションにメッセージをプッシュできます。CI 結果や監視アラート、Telegram / Discord などに Claude が対応できます。
向かないケース・不要なケース。
- 信頼できないサーバーは接続すべきではありません。ドキュメントは明確に警告しています。外部コンテンツを取得するサーバーはプロンプトインジェクションのリスクにさらされ得ます。接続前に各サーバーを信頼できるか確認してください。
- リクエストに応答するだけのサーバーに WebSocket は不要です。双方向の永続接続でイベントをプッシュする必要がなければ HTTP を使います(HTTP は OAuth と
--transportフラグをサポートしますが、WebSocket はどちらも非対応)。 - 単発の小さな調べ物にわざわざ接続を増やすと、ツール定義がコンテキストを消費します(後述のツール検索で緩和されますが、原則として「コピペを繰り返しているか」を接続の判断基準にするのが健全です)。
3. コード・コマンドの実例と解説
前提条件
- 追加は基本的に
claude mcp add系のコマンドで行い、確認は/mcp(セッション内)やclaude mcp listで行います。 - スコープを
-s/--scopeで選びます。local(デフォルト、現在のプロジェクトのみ・非共有)、project(.mcp.jsonでチーム共有)、user(全プロジェクトで利用可・非共有)。同名で重複した場合は local → project → user → プラグイン → claude.ai の順で優先され、勝った定義がまるごと使われます(フィールドのマージはされません)。 - プロジェクトスコープのサーバーは、セキュリティ上、
.mcp.jsonから使う前に承認を求められます。
リモート HTTP サーバーを追加する(推奨)
# 基本的な構文
claude mcp add --transport http <name> <url>
# 実際の例:Notion に接続する
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Bearer トークンを使用した例
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header "Authorization: Bearer your-token"
クラウド系サービスに最も広くサポートされているトランスポートで、リモート接続の第一選択です。認証が要るサーバーは --header で静的トークンを渡すか、OAuth(HTTP サーバーで機能)を使います。なお JSON で設定する場合、type に http のエイリアスとして streamable-http も使えます。url があるのに type がない JSON は設定エラーとして扱われる点に注意してください。
ローカル stdio サーバーを追加する
# 基本的な構文
claude mcp add [options] <name> -- <command> [args...]
# 実際の例:Airtable サーバーを追加する
claude mcp add --env AIRTABLE_API_KEY=YOUR_KEY --transport stdio airtable \
-- npx -y airtable-mcp-server
stdio サーバーはマシン上でローカルプロセスとして動きます。直接のシステムアクセスやカスタムスクリプトに向きます。最重要は --(ダブルダッシュ)です。 これが Claude 自身のオプション(--transport など)と、サーバーを起動するコマンド・引数を分離します。-- の後はすべてそのままサーバーに渡ります。付け忘れると、Claude Code がサーバー側のフラグ(--port など)を自分のオプションとして解釈しようとして失敗します。
サーバーを管理する
# すべての設定済みサーバーをリストする
claude mcp list
# 特定のサーバーの詳細を取得する
claude mcp get github
# サーバーを削除する
claude mcp remove github
# (Claude Code 内)サーバーのステータスを確認する
/mcp
日常的に使うのはこの 4 つです。.mcp.json のプロジェクトスコープで未承認のサーバーは、claude mcp list に「⏸ Pending approval」と出ます。/mcp パネルは各サーバーのツール数を表示し、機能を宣言しているのにツールを公開していないサーバーにフラグを立てます。
実践例:GitHub に接続してレビューさせる
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--header "Authorization: Bearer YOUR_GITHUB_PAT"
GitHub の細かい権限を持つ個人アクセストークンをヘッダーで渡して認証します。接続後は「PR #456 をレビューして改善を提案して」「見つけたバグの課題を作成して」のように依頼できます。同じ要領で、Sentry なら claude mcp add --transport http sentry https://mcp.sentry.dev/mcp のあと /mcp で認証、という流れです。
コンテキストを圧迫しない仕組み:ツール検索
MCP を増やすと各ツール定義がコンテキストを食います。これを抑えるのがツール検索で、デフォルトで有効です。セッション開始時にはツール名とサーバー命令だけを読み込み、Claude が必要になったとき検索して実際に使うツールだけをコンテキストに入れます。挙動を変えたい場合は環境変数 ENABLE_TOOL_SEARCH を使います(auto でしきい値方式、false で無効)。
# 事前ロードのしきい値をコンテキストの5%にする
ENABLE_TOOL_SEARCH=auto:5 claude
毎ターン必ず要る少数のツールは、逆に .mcp.json の該当サーバーに "alwaysLoad": true を付けて遅延から除外できます。ただし事前ロードはコンテキストを消費し、接続完了までスタートアップをブロックする点に注意してください。
その他(SSE / WebSocket トランスポート、OAuth の詳細と claude mcp login、固定コールバックポート、事前設定 OAuth 認証情報、headersHelper による動的ヘッダー、claude mcp add-json、Claude Desktop からのインポート、claude.ai コネクタの利用と disableClaudeAiConnectors、claude mcp serve、MAX_MCP_OUTPUT_TOKENS などの出力制限、@server:protocol://... での MCP リソース参照、/mcp__server__prompt 形式の MCP プロンプト、プラグイン提供サーバー、管理対象 MCP 設定)は、量が多いため公式ドキュメントを参照してください。
4. まとめと次回予告
- MCP は「コピペで運んでいた外部データ」を直結する仕組み。判断基準は「同じ貼り付けを繰り返しているか」です。
- 接続は 3 択。クラウドは HTTP(推奨)、ローカルプロセスは stdio(
--を忘れない)、イベントをプッシュするなら WebSocket。 - スコープで共有範囲が決まります。個人は local、チーム共有は project(
.mcp.json)、横断は user。
接続前に必ず意識すべき事実。 MCP サーバーは外部システムへの読み書き権限を Claude に与えます。とくに外部コンテンツを取得するサーバーはプロンプトインジェクションの経路になり得ます。信頼できるサーバーだけを、必要なスコープで接続してください。プロジェクトスコープのサーバーが承認制なのも、クローンしたリポジトリが自分のサーバーを勝手に承認できないのも、この安全側の設計です。
もう 1 点、認証まわりで迷ったら /mcp が起点です。401 / 403 を返すサーバーはここでフラグが立ち、OAuth フローや再認証(Re-authenticate)に進めます。コマンドラインからは claude mcp login <name> でも認証できます。
次回予告:タスクを分離コンテキストで実行させる「サブエージェント」を取り上げます。
関連ページ(本記事で触れた概念の詳細):プロンプトインジェクション対策 →「セキュリティ」、CLAUDE_PROJECT_DIR を受け取るフック →「Hooks」、allowed-tools でツール名を参照するスキル →「Skills」、権限ルールと deny →「権限」、設定ファイルの場所 →「設定」、チャネル →「チャネル」、プラグイン提供サーバー →「プラグイン」、組織での集中管理 →「管理対象 MCP 設定」。
本記事は執筆時点の公式ドキュメント(MCP を使用して Claude Code をツールに接続する)に基づきます。最新は公式ドキュメントをご確認ください。

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)


コメント