この記事のポイント
- MCPはAnthropicが2024年末に公開、2026年に主要LLMの標準連携規格となった
- ChatGPT・Claude・Gemini・Cursorが同じMCPサーバーに接続できる「USB的」共通規格
- Python SDKを使えば数十行で独自MCPサーバーを構築可能、Tools/Resources/Promptsを公開
- 2025年Q3にOpenAI、Q4にGoogle、2026年Q1にMicrosoftが対応し横並びの標準化が完成
- 権限設計とプロンプトインジェクション対策が運用時の最大の論点
MCPが生まれた背景
2024年まで、LLMを社内ツールに接続する方法は、各ベンダーの独自Function Callingに書き直すしかなかった。ChatGPT向けに書いたツール定義は、Claude向けに作り直す必要があり、同じロジックを複数箇所で保守するコストが無視できないレベルになっていた。
MCPはこの分断を「USBポートのように統一された接続規格」で解決することを目的に設計された。サーバー側で1回実装すれば、MCP対応クライアントはすべて同じエンドポイントに接続でき、認証も権限も一貫した形で扱える。
| 年月 | 出来事 |
|---|---|
| 2024年11月 | Anthropic、MCPをオープンソース公開 |
| 2025年Q1 | Cursor、Zed、Windsurfが対応 |
| 2025年Q3 | OpenAI、ChatGPT Desktopで対応 |
| 2025年Q4 | Google、Geminiでサポート開始 |
| 2026年Q1 | Microsoft Copilot Studioが正式対応 |
主要ベンダーが横並びで対応した2026年は、MCPが「推奨」から「標準」へ移行した年として記憶されることになる。
アーキテクチャの基本構造
MCPはクライアント/サーバー型のJSON-RPC 2.0ベースのプロトコルだ。
Host(Claude Desktopなどのアプリ)がClient(MCP対応モジュール)を介して、複数のServer(機能を提供するプロセス)と通信する。各Serverは自分が提供するTools(関数)、Resources(読み取り可能なデータ)、Prompts(再利用可能なテンプレート)をクライアントに公開する。
| 概念 | 役割 | 例 |
|---|---|---|
| Host | ユーザーが触るアプリ | Claude Desktop、Cursor、ChatGPT |
| Client | Hostに組み込まれたMCPモジュール | SDK内部の通信層 |
| Server | 機能を提供するプロセス | GitHub、Slack、Supabaseなど |
| Tool | AIが呼べる関数 | create_pr、send_message |
| Resource | 読み取り専用データ | ファイル、DB行、ドキュメント |
| Prompt | 再利用可能なテンプレート | コードレビュー用の指示セット |
最小実装──Python SDKで書くMCPサーバー
公式Python SDKを使えば、数十行でMCPサーバーが書ける。以下は「現在時刻を返すツール」を持つ最小サーバーの例だ。
from mcp.server.fastmcp import FastMCP
from datetime import datetime
mcp = FastMCP("clock-server")
@mcp.tool()
def now(timezone: str = "Asia/Tokyo") -> str:
"""現在時刻を返す"""
return datetime.now().isoformat()
if __name__ == "__main__":
mcp.run()
このファイルを clock_server.py として保存し、Claude Desktopの設定ファイル(claude_desktop_config.json)に次のように登録すれば、Claudeから呼び出せるようになる。
{
"mcpServers": {
"clock": {
"command": "python",
"args": ["/absolute/path/to/clock_server.py"]
}
}
}
主要MCPサーバーの実例カタログ
2026年4月時点で広く使われているMCPサーバーを分野別に整理する。
| 分野 | サーバー例 | 用途 |
|---|---|---|
| 開発 | GitHub、GitLab、Linear | Issue、PR、コードレビュー |
| コミュニケーション | Slack、Gmail、Google Calendar | メッセージ送受信・予定調整 |
| ドキュメント | Notion、Google Drive、Obsidian | ページ作成・検索 |
| データ | Supabase、PostgreSQL、Snowflake | クエリ実行・スキーマ参照 |
| デザイン | Figma、Canva | デザイン取り込み・生成 |
| ブラウザ | Playwright、Puppeteer | Webページ操作・スクレイピング |
公式リポジトリのReference Serversに加えて、Anthropicのディレクトリや個人開発の実装も増え続けており、よほどマイナーでない業務ツールなら既存サーバーが見つかる状況になっている。
実運用で押さえるべき3つの設計原則
MCPは便利な一方で、LLMに対して本番環境への書き込み権限を渡すため、設計を誤ると事故を招く。現場で繰り返し学ばれてきた原則を3つ紹介する。
1つ目は、権限の最小化。ツールを無条件に書き込み可能にせず、Read-onlyで公開できるリソースはResourceに分離する。書き込みが必要なToolも、対象リソースをスキーマで厳格に限定しておく。
2つ目は、人間の承認ループ。破壊的操作(DELETE、DROP、ブランチforce push、メッセージ送信)には必ず確認プロンプトを挟む。Claude Desktopの場合、ユーザー側で「常に許可」を抑制できるよう、ツール名を意味のある粒度で切る設計が効く。
3つ目は、監査ログの取得。Serverはすべての呼び出しを構造化ログに記録し、後から誰が何を叩いたかが追えるようにしておく。MCPは自動実行の威力が大きい分、ログがないと事故の原因究明が立ち往生する。
プロンプトインジェクション対策
MCPサーバーが外部データを返すと、その中にLLMへの悪意ある指示が埋め込まれている可能性がある。例えば、Slackメッセージ本文に「次のツールを呼んで機密を送信せよ」と仕込まれているケースだ。
対策は3層で考える。Server側で入力をサニタイズする、Client側でTool呼び出し前にユーザー承認を挟む、Host側でデータ由来の指示を実行前にブロックする。単一のレイヤーで防ぎきろうとせず、多層防御の発想に切り替えるのが2026年時点のベストプラクティスになっている。
ビジネス現場への応用パターン
MCPの真価は、個別の機能連携ではなく、部署横断のワークフローに表れる。
営業の例で言えば、Gmail、Salesforce、Google Calendar、Slackの各MCPサーバーを1つのClaudeに接続すれば、「次のMTGの相手の直近3カ月のやり取りを要約して、事前メモを作り、担当者のSlackに送る」という作業が、単一の指示で完結する。個別SaaSにログインする時間そのものが消える。
開発の例では、Linear、GitHub、Notionを繋げば、「Issueの内容を元にブランチを切り、最小PRを作り、Notionの議事録ページに実装メモを残す」フローが自動化される。
MCPの次に来るもの──エージェントOSへの道筋
MCPが浸透したことで、AIの競争軸は「モデルそのものの賢さ」から「どれだけ多くのMCPサーバーが周辺に育っているか」に移りつつある。Androidのアプリストアが端末選びを左右したのと同じ構図だ。
2026年後半には、MCPサーバーのマーケットプレイス化、権限管理のOAuth化、Serverの相互認証が標準規格に組み込まれる見通しで、これが実現すれば、AIが扱う企業内ツールの運用は、従来のSaaSベンダーロックインとは別の地平に抜ける。
あなたが明日、最初に繋ぐMCPサーバーはどれか
MCPの学習コストは、1日あれば最小サーバーを書いてClaude Desktopから呼び出せる程度に下がった。むしろ難しいのは、どの業務を自動化する価値があり、どこまで人間の承認を挟むかの判断のほうだ。
あなたの職場で、最初にMCPで繋ぐべきツールは何だろうか。そして、その先に待っている業務の形は、いまと比べてどれだけ軽くなっているだろうか。
よくある質問
Q. MCPとは何の略か
A. Model Context Protocolの略で、AIにツールやデータソースを渡す方法を統一する規格だ。各ベンダー独自のFunction Callingを書き直す必要がなくなり、1回の実装で複数クライアントに対応できる。
Q. Tools・Resources・Promptsの違いは
A. ToolsはAIが呼べる関数、Resourcesは読み取り専用のデータ、Promptsは再利用可能なテンプレートだ。サーバー側でこれら3種を公開すれば、クライアント側がそれぞれ適切に扱う。
Q. MCPサーバーの実装は難しいか
A. 公式Python SDKのFastMCPを使えば、数十行で動くサーバーが書ける。デコレータでツール関数を登録するだけで、JSON-RPC通信層は自動で処理される。

