MCP(Model Context Protocol)とは
AI エージェントに外部ツール・データソースを接続するための標準プロトコル。何ができて、何が怖くて、各CLIでどう設定するか。
MCP(Model Context Protocol)は Anthropic が 2024 年末に公開した、AI エージェントと外部ツール・データソースを繋ぐためのプロトコル。Claude Code、Codex CLI、Gemini CLI、Copilot CLI など主要な AI CLI が軒並み対応している。
ざっくり言うと「USB-C のような共通端子」。MCP サーバさえあれば、どの AI CLI からも同じツール・データソースを使える。
なぜ MCP が必要だったか
AI エージェントを実用にするには、モデル単体ではできないことを増やす必要がある。
- ファイルシステムへの読み書き
- データベースへのクエリ
- API 呼び出し(Slack、GitHub、Notion など)
- 社内のドキュメント検索
これを各 AI ツールが独自に実装すると、ユーザー側は「Claude Code 用の Slack 連携」「Codex 用の Slack 連携」「Gemini 用の Slack 連携」と別々に管理することになる。MCP はそのインターフェースを共通化した。
MCP の構成
3層に分かれている。
- MCP ホスト — AI エージェント本体(Claude Code、Codex など)
- MCP クライアント — ホストに組み込まれていて、サーバと通信する
- MCP サーバ — 実際にツールやデータを提供する小さなプロセス
ホストが MCP サーバに「Slack の最近のメッセージ一覧を返して」とリクエストすると、サーバが Slack API を呼んで結果を返す。AI からは「Slack を読む」というツールが一つ生えたように見える。
MCP サーバには何がある
公式・コミュニティ製のサーバが多数公開されている。よく使うもの:
@modelcontextprotocol/server-filesystem— ローカルファイル操作@modelcontextprotocol/server-github— GitHub Issues / PR@modelcontextprotocol/server-slack— Slack 連携@modelcontextprotocol/server-postgres— PostgreSQL クエリ@modelcontextprotocol/server-brave-search— Web 検索
公式サーバ一覧 を見ると、何が標準で揃っているか把握しやすい。
各 CLI での設定方法
Claude Code
~/.claude/settings.json または プロジェクトの .claude/settings.json に書く。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
}
}
}
Codex CLI
~/.codex/config.toml に書く。
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
Gemini CLI
~/.gemini/settings.json または プロジェクトの .gemini/settings.json に書く。フォーマットは Claude Code とほぼ同じ。
GitHub Copilot CLI
公式ドキュメントの MCP 設定セクションを参照。CLI 側で個人のサーバ追加は可能だが、組織レベルの MCP ポリシーは現時点で Web 側で管理する仕様。
MCP の怖いところ
MCP サーバは AI からの呼び出しを受けて実際に動くプロセス。つまり「AI が触れる範囲 = MCP サーバが触れる範囲」。これを甘く見ると事故になる。
具体的なリスク:
- 過剰な権限付与 —
@modelcontextprotocol/server-filesystemに/を渡すと、AI からシステム全体が見える - 認証情報の露出 — 多くの MCP サーバは環境変数で API キーを受け取る。設定ファイルに直書きしないこと
- 意図しないコマンド実行 — シェル系の MCP サーバを入れると、AI が任意コマンドを実行できるようになる
- データの外部送信 — クラウド連携系の MCP サーバは、ローカルデータを外部 API に送る経路を作る
新しい MCP サーバを足すときは:
- ソースコードか挙動の説明を読む
- アクセススコープを最小に絞る(パスを限定、読み取り専用モードがあれば使う)
- 機密情報を含むディレクトリを参照させない
いつ MCP を使うべきか
逆に言うと、いつ使わなくていいか。
MCP が要らない場合:
- 単発の質問・コード生成だけ
- 同じディレクトリ内のファイル編集だけ(標準のファイル操作で足りる)
- Web 検索が単発で済む(モデルの組み込み検索で足りる)
MCP が効く場合:
- 同じ外部システム(Slack、GitHub、社内 DB)に何度もアクセスする
- 複数の AI CLI で同じ連携を使いたい(設定の使い回しが楽)
- カスタムのデータソースを AI に見せたい(社内ドキュメント、独自 API など)
「とりあえず全部の MCP サーバを入れる」は推奨しない。必要になったとき、必要なものだけ足す。
関連記事
- AI エージェントとは — MCP が前提とするエージェントの仕組み
- AI CLI の権限モード総まとめ — MCP と承認モードの組み合わせ