- Authors

- Name
- Youngju Kim
- @fjvbn20031
- MCPとは何か:AIのUSB-C
- 一つのプロトコルがすべてを<ruby>繋<rp>(</rp><rt>つな</rt><rp>)</rp></ruby>ぐ
- MCP<ruby>以前<rp>(</rp><rt>いぜん</rt><rp>)</rp></ruby>の<ruby>世界<rp>(</rp><rt>せかい</rt><rp>)</rp></ruby>:N x M<ruby>問題<rp>(</rp><rt>もんだい</rt><rp>)</rp></ruby>
- <ruby>爆発的<rp>(</rp><rt>ばくはつてき</rt><rp>)</rp></ruby><ruby>成長<rp>(</rp><rt>せいちょう</rt><rp>)</rp></ruby>のタイムライン
- MCPが<ruby>解決<rp>(</rp><rt>かいけつ</rt><rp>)</rp></ruby>する<ruby>核心的<rp>(</rp><rt>かくしんてき</rt><rp>)</rp></ruby><ruby>問題<rp>(</rp><rt>もんだい</rt><rp>)</rp></ruby>
- アーキテクチャ ディープダイブ
- なぜMCPが<ruby>勝利<rp>(</rp><rt>しょうり</rt><rp>)</rp></ruby>したのか
- N x M<ruby>問題<rp>(</rp><rt>もんだい</rt><rp>)</rp></ruby>の<ruby>根本的<rp>(</rp><rt>こんぽんてき</rt><rp>)</rp></ruby><ruby>解決<rp>(</rp><rt>かいけつ</rt><rp>)</rp></ruby>
- OpenAIの<ruby>採用<rp>(</rp><rt>さいよう</rt><rp>)</rp></ruby>:<ruby>競合他社<rp>(</rp><rt>きょうごうたしゃ</rt><rp>)</rp></ruby>が<ruby>作<rp>(</rp><rt>つく</rt><rp>)</rp></ruby>った<ruby>標準<rp>(</rp><rt>ひょうじゅん</rt><rp>)</rp></ruby>を<ruby>受容<rp>(</rp><rt>じゅよう</rt><rp>)</rp></ruby>
- Google DeepMindの<ruby>合流<rp>(</rp><rt>ごうりゅう</rt><rp>)</rp></ruby>
- Linux Foundation<ruby>寄贈<rp>(</rp><rt>きぞう</rt><rp>)</rp></ruby>:コミュニティガバナンス
- MCP vs Function Calling vs LangChain Tools
- MCPサーバーを<ruby>作<rp>(</rp><rt>つく</rt><rp>)</rp></ruby>る:<ruby>実践<rp>(</rp><rt>じっせん</rt><rp>)</rp></ruby>ガイド
- <ruby>主要<rp>(</rp><rt>しゅよう</rt><rp>)</rp></ruby>MCPサーバー<ruby>生態系<rp>(</rp><rt>せいたいけい</rt><rp>)</rp></ruby>
- Claude Code + MCP <ruby>実践<rp>(</rp><rt>じっせん</rt><rp>)</rp></ruby>ワークフロー
- <ruby>開発者<rp>(</rp><rt>かいはつしゃ</rt><rp>)</rp></ruby>が<ruby>知<rp>(</rp><rt>し</rt><rp>)</rp></ruby>るべきMCPロードマップ
- <ruby>実践<rp>(</rp><rt>じっせん</rt><rp>)</rp></ruby>クイズ
- <ruby>参考<rp>(</rp><rt>さんこう</rt><rp>)</rp></ruby><ruby>資料<rp>(</rp><rt>しりょう</rt><rp>)</rp></ruby>
MCPとは何か:AIのUSB-C
一つのプロトコルがすべてを繋ぐ
USBが登場する前、プリンターにはパラレルポート、キーボードにはPS/2、カメラにはシリアルポートが必要でした。機器ごとに異なるケーブル、ドライバー、接続方式。USBがこの混乱を終わらせたように、MCP(Model Context Protocol) はAI世界の接続標準を作りました。
MCPは、AIモデルが外部データソース、ツール、サービスと通信するためのオープン標準プロトコルです。Anthropicが2024年11月にオープンソースとして公開し、わずか1年余りでAI業界の事実上の標準(de facto standard)になりました。
MCP以前の世界:N x M問題
MCPがなかった時代を思い出してみましょう。
- ChatGPTがGitHubデータにアクセスするには?OpenAI専用プラグインが必要
- ClaudeがSlackメッセージを読むには?Anthropic専用インテグレーションが必要
- Geminiがデータベースを照会するには?Google専用コネクタが必要
N個のAIモデルとM個の外部ツールがある場合、合計 N x M個のカスタム統合 が必要でした。AIモデルが5個、外部ツールが100個あれば、500個の個別インテグレーションが必要でした。
MCPはこの問題を N + M に削減しました。各AIモデルはMCPクライアントを一つだけ実装し、各ツールはMCPサーバーを一つだけ実装すればよいのです。USBのように片方を合わせるだけで、すべてが繋がります。
爆発的成長のタイムライン
MCPの成長速度は驚異的です。
| 時期 | イベント | 意味 |
|---|---|---|
| 2024年11月 | AnthropicがMCPをオープンソース公開 | プロトコル誕生 |
| 2025年1月 | Claude DesktopにMCP統合 | 最初の大規模クライアント |
| 2025年3月 | OpenAIがAgents SDKにMCP採用 | 競合他社の受容、業界標準認定 |
| 2025年4月 | Google DeepMindがAgent Development KitでMCPサポート | ビッグ3完成 |
| 2025年6月 | OAuth 2.0認証スペック追加 | エンタープライズ準備完了 |
| 2025年11月 | MCP1周年アップデート | 成熟期突入 |
| 2025年12月 | Linux Foundation AAIFに寄贈 | コミュニティガバナンスへ移行 |
| 2026年3月 | 月間SDKダウンロード9,700万突破 | 爆発的普及確認 |
Python SDKとTypeScript SDKの月間ダウンロードを合わせると9,700万回に達します。MCP.soマーケットプレイスには数万個のMCPサーバーが登録されており、GitHubで「MCP server」を検索すると数千のリポジトリが見つかります。
MCPが解決する核心的問題
AIモデルは基本的に**隔離された存在**です。どんなに賢いモデルでも、学習データ以降の情報を知らず、社内データにアクセスできず、外部システムに作業を依頼することもできません。
MCPはこの隔離を3つの方法で解消します。
- Resources(リソース): AIが読むことができるデータを提供(ファイル、DBレコード、APIレスポンス)
- Tools(ツール): AIが実行できる関数を提供(API呼び出し、コード実行、ファイル作成)
- Prompts(プロンプト): 特定タスクに最適化されたプロンプトテンプレートを提供
この3つの要素がMCPプロトコルの柱です。次のセクションでアーキテクチャを詳しく見ていきましょう。
アーキテクチャ ディープダイブ
クライアント-サーバーモデル
MCPは クライアント-サーバーアーキテクチャ に従います。JSON-RPC 2.0プロトコルの上に構築されており、軽量で効率的です。
MCPアーキテクチャ概要
+--------------------------------------------------+
| Host Application |
| (Claude Desktop, VS Code, IDE, カスタムアプリ) |
| |
| +--------------+ +--------------+ |
| | MCP Client | | MCP Client | ... |
| | #1 | | #2 | |
| +------+-------+ +------+-------+ |
| | | |
+---------+-----------------+------------------------+
| |
+----v-----+ +----v------+
| MCP | | MCP |
| Server | | Server |
| (Git) | | (Slack) |
+----+-----+ +-----+----+
| |
+----v-----+ +----v------+
| GitHub | | Slack |
| API | | API |
+----------+ +-----------+
核心
コンポーネントを
整理
すると
以下
の
通
りです。
- Host: MCPクライアントを実行するアプリケーション(Claude Desktop、VS Code、カスタムアプリ)
- Client: ホスト内部で特定のMCPサーバーと1:1で通信するコネクタ
- Server: 外部システムのデータと機能を標準化された形式で提供するサービス
一つのホストアプリが複数のMCPクライアントを同時に実行できます。例えば、Claude DesktopがGitHub MCPサーバー、Slack MCPサーバー、PostgreSQL MCPサーバーに同時に接続することが可能です。
3つの核心概念:Resources、Tools、Prompts
Resources(リソース)
リソースは、MCPサーバーがクライアントに提供する**読み取り専用データ**です。URI形式で識別されます。
{
"resources": [
{
"uri": "file:///project/src/main.py",
"name": "Main source file",
"mimeType": "text/x-python"
},
{
"uri": "db://users/schema",
"name": "Users table schema",
"mimeType": "application/json"
}
]
}
リソースはAIモデルのコンテキストを豊かにします。コードファイル、データベーススキーマ、APIドキュメント、設定ファイルなど、AIが参照すべきすべてのデータをリソースとして提供できます。
Tools(ツール)
ツールは、AIモデルが**実行できる関数**です。Function callingの標準化されたバージョンと考えることができます。
{
"tools": [
{
"name": "search_code",
"description": "Search for code across all repositories",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query"
},
"language": {
"type": "string",
"description": "Programming language filter"
}
},
"required": ["query"]
}
}
]
}
AIモデルはツールリストを確認し、ユーザーのリクエストに応じて適切なツールを選択して呼び出します。結果はモデルに返され、レスポンス生成に使用されます。
Prompts(プロンプト)
プロンプトは、特定タスクに最適化された**再利用可能なプロンプトテンプレート**です。
{
"prompts": [
{
"name": "code-review",
"description": "Review code for best practices and potential issues",
"arguments": [
{
"name": "language",
"description": "Programming language",
"required": true
}
]
}
]
}
プロンプトを通じて、ドメイン専門家が最適な指示文を作成し、MCPサーバーを通して配布することができます。
Transport:ローカル vs リモート
MCPは2つの転送方式をサポートしています。
stdio(標準入出力)
- ローカルでMCPサーバーをプロセスとして実行
- stdin/stdoutを通じてJSON-RPCメッセージを交換
-
設定
が簡単
でセキュリティが高
い -
個人
開発
環境
に最適
Streamable HTTP(旧SSE)
- リモートサーバーとHTTPで通信
- 2025年11月のアップデートでSSEからStreamable HTTPに進化
- チーム/組織単位の共有に最適
- Cloudflare、AWSなどにデプロイ可能
転送方式の比較
stdio (ローカル) Streamable HTTP (リモート)
+----------+ stdin/stdout +----------+
| Client |<------------------->| Server |
+----------+ (ローカルプロセス) +----------+
+----------+ HTTP/HTTPS +----------+
| Client |<------------------->| Server |
+----------+ (ネットワーク) +----------+
認証:OAuth 2.0
2025年6月に追加された認証スペックは、MCPのエンタープライズ適用を可能にした重要なアップデートです。
- OAuth 2.0ベースの認証フローの標準化
- トークンベースの権限管理
-
細
かいスコープ制御
-
既存
のIdP(Identity Provider)との統合
これにより、企業環境で「どのAIモデルがどのデータにアクセスできるか」を体系的に管理できるようになりました。
プロトコルライフサイクル
MCP接続のライフサイクルは以下の通りです。
- 初期化(Initialization): クライアントがサーバーに接続し、プロトコルバージョンとサポート機能を交渉
- ディスカバリ(Discovery): クライアントがサーバーのリソース、ツール、プロンプトリストを照会
- 実行(Execution): AIモデルのリクエストに応じてツール呼び出し、リソース読み取りを実行
- 終了(Shutdown): 接続のクリーンアップとリソース解放
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-05",
"capabilities": {
"tools": {},
"resources": {},
"prompts": {}
},
"clientInfo": {
"name": "claude-desktop",
"version": "1.0.0"
}
}
}
なぜMCPが勝利したのか
N x M問題の根本的解決
前述
のN x M
問題
は、AI
生態系
の
最大
の
非効率
でした。
MCP以前:N x M統合
AIモデル 外部ツール
+---------+ +---------+
| ChatGPT |-------| GitHub |
| |--+ +--| |
+---------+ | | +---------+
+---------+ | | +---------+
| Claude |--+-+--| Slack |
| |--+-+--| |
+---------+ | | +---------+
+---------+ | | +---------+
| Gemini |--+ +--| DB |
| |-------| |
+---------+ +---------+
= 3 x 3 = 9個の統合が必要
MCP以後:N + M統合
AIモデル MCP 外部ツール
+---------+ +-----+ +---------+
| ChatGPT |---| |---| GitHub |
+---------+ | | +---------+
+---------+ | MCP | +---------+
| Claude |---| |---| Slack |
+---------+ | Pro | +---------+
+---------+ | to | +---------+
| Gemini |---| |---| DB |
+---------+ | col | +---------+
+-----+
= 3 + 3 = 6個の統合のみ必要
この効率性は生態系が大きくなるほど劇的になります。AIモデル10個、外部ツール1,000個の場合、10,000個の統合の代わりに1,010個だけで済みます。
OpenAIの採用:競合他社が作った標準を受容
2025年3月、OpenAIがAgents SDKにMCPサポートを発表したことは、業界に大きな衝撃を与えました。Anthropicが作ったプロトコルを最大の競合他社が採用したのです。
この決定の背景には実用的な判断がありました。
- すでに形成されたMCP生態系を無視できない
-
独自
プロトコルを作
ると生態系
が分裂
する -
開発者
がすでにMCPサーバーを構築
していた -
標準化
が市場
全体
を拡大
し、すべての参加者
に利益
Google DeepMindの合流
2025年4月、GoogleはAgent Development Kit(ADK)でMCPをサポートすると発表しました。これにより、AI業界の「ビッグ3」がすべてMCPをサポートすることになりました。
Googleの参加は、MCPが単一企業のプロジェクトではなく、**業界全体の標準**になったことを確認しました。
Linux Foundation寄贈:コミュニティガバナンス
2025年12月、AnthropicはMCPをLinux FoundationのAI and Data Foundation(AAIF)に寄贈しました。これは非常に重要な決定です。
- 中立性保証: 特定企業ではなくコミュニティが標準を管理
- 持続可能性: Anthropicの事業方向と無関係にプロトコルが発展
- 信頼構築: 競合他社が安心して参加できる環境
- ガバナンスの透明性: 公開された意思決定プロセス
Linux、Kubernetes、Node.jsなど成功したオープンソースプロジェクトと同じ道です。
MCP vs Function Calling vs LangChain Tools
| 項目 | MCP | Function Calling | LangChain Tools |
|---|---|---|---|
| 標準化 | オープンプロトコル | 各AIベンダー独自スペック | ライブラリレベルの抽象化 |
| 再利用性 | 一度作ればすべてのAIで使用 | 特定AIベンダーに依存 | LangChain生態系内のみ |
| 転送方式 | stdio、Streamable HTTP | HTTP API | インプロセス |
| ディスカバリ | 動的なツール/リソース検索 | 事前定義が必要 | 事前定義が必要 |
| 認証 | OAuth 2.0標準 | 各ベンダー方式 | 別途実装が必要 |
| 状態管理 | プロトコルレベルでサポート | なし | ライブラリレベル |
| 生態系の規模 | 数万個のサーバー | ベンダー別プラグイン | 数百個のツール |
MCPの最大の差別化ポイントは**ベンダー独立性**です。一度作ったMCPサーバーは、Claude、ChatGPT、Gemini、オープンソースLLMなど、どのAIモデルでも動作します。
MCPサーバーを作る:実践ガイド
FastMCPでPythonサーバーを作る
FastMCPは、Pythonで素早くMCPサーバーを構築できるフレームワークです。簡単な天気情報サーバーを作ってみましょう。
# パッケージインストール
pip install fastmcp httpx
# weather_server.py
from fastmcp import FastMCP
import httpx
import json
# MCPサーバー作成
mcp = FastMCP("weather-server")
# リソース:対応都市リスト
@mcp.resource("weather://cities")
def list_cities() -> str:
"""利用可能な都市リストを返します。"""
cities = [
"seoul", "tokyo", "new-york",
"london", "paris", "berlin"
]
return json.dumps(cities)
# ツール:天気取得
@mcp.tool()
async def get_weather(city: str) -> str:
"""
指定された都市の現在の天気情報を取得します。
Args:
city: 都市名(例:seoul、tokyo、new-york)
"""
async with httpx.AsyncClient() as client:
response = await client.get(
f"https://wttr.in/{city}",
params={"format": "j1"}
)
data = response.json()
current = data["current_condition"][0]
return json.dumps({
"city": city,
"temperature_c": current["temp_C"],
"humidity": current["humidity"],
"description": current["weatherDesc"][0]["value"],
"wind_speed_kmh": current["windspeedKmph"],
"feels_like_c": current["FeelsLikeC"]
})
# ツール:天気予報取得
@mcp.tool()
async def get_forecast(city: str, days: int = 3) -> str:
"""
指定された都市の天気予報を取得します。
Args:
city: 都市名
days: 予報日数(1-3)
"""
async with httpx.AsyncClient() as client:
response = await client.get(
f"https://wttr.in/{city}",
params={"format": "j1"}
)
data = response.json()
forecasts = []
for day in data["weather"][:days]:
forecasts.append({
"date": day["date"],
"max_temp_c": day["maxtempC"],
"min_temp_c": day["mintempC"],
"description": day["hourly"][4]["weatherDesc"][0]["value"]
})
return json.dumps(forecasts)
# プロンプト:天気ブリーフィング
@mcp.prompt()
def weather_briefing(city: str) -> str:
"""都市の天気ブリーフィング用プロンプト"""
return f"""以下の都市の天気情報を分析し、日本語でブリーフィングしてください:
都市:{city}
以下の情報を含めてください:
1. 現在の気温と体感気温
2. 湿度と風の状態
3. 今後3日間の予報まとめ
4. 外出時の推奨事項(傘、上着など)
"""
if __name__ == "__main__":
mcp.run()
このサーバーを実行すると、Claude Desktopや他のMCPクライアントからすぐに接続できます。
# 直接実行テスト
python weather_server.py
TypeScript SDKでサーバーを作る
TypeScriptを好む場合は、公式SDKを使用できます。
# プロジェクト初期化
npm init -y
npm install @modelcontextprotocol/sdk zod
// src/index.ts
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
import { z } from 'zod'
const server = new McpServer({
name: 'todo-server',
version: '1.0.0',
})
// インメモリTodoストア
interface TodoItem {
id: string
title: string
completed: boolean
createdAt: string
}
const todos: Map<string, TodoItem> = new Map()
// ツール:Todo追加
server.tool(
'add_todo',
'Add a new todo item',
{
title: z.string().describe('The todo item title'),
},
async ({ title }) => {
const id = crypto.randomUUID()
const todo: TodoItem = {
id,
title,
completed: false,
createdAt: new Date().toISOString(),
}
todos.set(id, todo)
return {
content: [
{
type: 'text',
text: JSON.stringify(todo, null, 2),
},
],
}
}
)
// ツール:Todoリスト取得
server.tool('list_todos', 'List all todo items', {}, async () => {
const allTodos = Array.from(todos.values())
return {
content: [
{
type: 'text',
text: JSON.stringify(allTodos, null, 2),
},
],
}
})
// ツール:Todo完了処理
server.tool(
'complete_todo',
'Mark a todo as completed',
{
id: z.string().describe('The todo item ID'),
},
async ({ id }) => {
const todo = todos.get(id)
if (!todo) {
return {
content: [{ type: 'text', text: 'Todo not found' }],
isError: true,
}
}
todo.completed = true
return {
content: [
{
type: 'text',
text: JSON.stringify(todo, null, 2),
},
],
}
}
)
// リソース:Todo統計
server.resource('todo-stats', 'todo://stats', async (uri) => {
const allTodos = Array.from(todos.values())
const stats = {
total: allTodos.length,
completed: allTodos.filter((t) => t.completed).length,
pending: allTodos.filter((t) => !t.completed).length,
}
return {
contents: [
{
uri: uri.href,
mimeType: 'application/json',
text: JSON.stringify(stats, null, 2),
},
],
}
})
// サーバー起動
async function main() {
const transport = new StdioServerTransport()
await server.connect(transport)
console.error('Todo MCP Server running on stdio')
}
main().catch(console.error)
MCP Inspectorでデバッグ
MCP Inspectorは、MCPサーバーをテスト・デバッグできる公式ツールです。
# Inspector実行
npx @modelcontextprotocol/inspector python weather_server.py
Inspectorを実行すると、ブラウザで以下の操作が可能です。
- サーバーが提供するツール、リソース、プロンプトのリスト確認
-
各
ツールを直接
呼
び出
して結果
確認
- JSON-RPCメッセージログのリアルタイム確認
- エラーメッセージのデバッグ
開発
過程
でInspectorは
必須
ツールです。サーバーが
正
しく
動作
するかをクライアント
接続前
に
事前
検証
できます。
Cloudflareにリモートサーバーをデプロイ
ローカルでの検証が完了したら、リモートにデプロイできます。Cloudflare WorkersはMCPサーバーのデプロイに特に適しています。
# Cloudflare MCPサーバーテンプレートで開始
npm create cloudflare@latest -- my-mcp-server \
--template=cloudflare/ai/demos/remote-mcp-server
// src/index.ts (Cloudflare Workers用)
import { McpAgent } from 'agents/mcp'
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import { z } from 'zod'
export class MyMCP extends McpAgent {
server = new McpServer({
name: 'my-remote-server',
version: '1.0.0',
})
async init() {
this.server.tool('hello', 'Say hello to someone', { name: z.string() }, async ({ name }) => ({
content: [{ type: 'text', text: `Hello, ${name}!` }],
}))
}
}
export default {
fetch(request: Request, env: Env, ctx: ExecutionContext) {
const url = new URL(request.url)
if (url.pathname === '/sse' || url.pathname === '/mcp') {
return MyMCP.serve('/sse').fetch(request, env, ctx)
}
return new Response('MCP Server Running')
},
}
# デプロイ
npx wrangler deploy
デプロイ後、どこからでもStreamable HTTPを通じてMCPサーバーに接続できます。チーム全体で一つのリモートMCPサーバーを共有することが可能です。
主要MCPサーバー生態系
GitHub MCPサーバー
GitHub公式MCPサーバーは、最も人気のあるMCPサーバーの一つです。
提供するツール:
- リポジトリ検索と閲覧
- Issue作成、表示、編集
- Pull Request作成とレビュー
- コード検索(正規表現サポート)
- ブランチ管理
- ファイルの読み書き
Claude Desktop設定例:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}
Google Drive / Docs MCP
Google WorkspaceとAIを接続するMCPサーバーです。
主要機能:
- Google Driveファイル検索
- Google Docsドキュメント内容読み取り
- Google Sheetsデータ照会
- ファイルメタデータ照会
Slack MCP
チームコミュニケーションツールであるSlackとAIを接続します。
主要機能:
- チャネルメッセージ読み取り
- メッセージ検索
- チャネルリスト照会
- スレッドコンテキストの把握
Database MCP(PostgreSQL、MySQL)
データベースに直接アクセスし、AIがデータを照会・分析できるようにします。
主要機能:
- SQLクエリ実行(読み取り専用モードサポート)
- スキーマ探索
- テーブルリストとカラム情報照会
- クエリ結果の分析
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@localhost:5432/mydb"
]
}
}
}
Filesystem MCP
ローカルファイルシステムへのアクセスを提供する基本MCPサーバーです。
主要機能:
- ファイル/ディレクトリ読み取り
- ファイル検索(globパターン)
- ファイル作成/変更
- ディレクトリ構造の探索
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/projects"]
}
}
}
Brave Search MCP
ウェブ検索機能をAIに提供します。AIが最新情報を検索して回答に活用できます。
主要機能:
- ウェブ検索
- ニュース検索
-
検索
結果
の要約
- ドメインフィルタリング
この他にも数万個のMCPサーバーがMCP.soマーケットプレイスとGitHubに公開されています。Notion、Jira、Linear、Figma、AWS、GCPなど、ほぼすべての主要サービスにMCPサーバーが存在します。
Claude Code + MCP 実践ワークフロー
Claude CodeでMCPサーバーを接続する
Claude Codeは、AnthropicがCLIベースのAIコーディングツールで、MCPをネイティブでサポートしています。
# MCPサーバー追加(プロジェクトスコープ)
claude mcp add github -- docker run -i --rm \
-e GITHUB_PERSONAL_ACCESS_TOKEN \
ghcr.io/github/github-mcp-server
# MCPサーバー追加(グローバルスコープ)
claude mcp add --scope user postgres -- \
npx -y @modelcontextprotocol/server-postgres \
postgresql://localhost:5432/mydb
# 登録済みMCPサーバーリスト確認
claude mcp list
# 特定のMCPサーバー削除
claude mcp remove github
Claude Codeの設定ファイルに直接追加することもできます。
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/projects"]
}
}
}
実際の使用例:DB照会からPR作成まで
MCPの真の力は、複数のサーバーを組み合わせるときに現れます。実際のワークフローを見てみましょう。
シナリオ:「usersテーブルにlast_login_atカラムを追加して、マイグレーションを作ってPRを出して」
この一つのリクエストで、Claude Codeは以下のように動作します。
- PostgreSQL MCPサーバーで現在のusersテーブルスキーマを照会
-
既存
スキーマを分析
してマイグレーションSQLを作成
- Filesystem MCPサーバーでマイグレーションファイルを生成
-
関連
モデルコードを更新
- GitHub MCPサーバーでブランチ作成、コミット、PR作成
全体
の
過程
が一つの
会話
で
自動的
に
行
われます。
開発者
は
最終的
なPRのみレビューすれば
済
みます。
もう一つのシナリオ:「Slackで今日議論されたバグレポートを整理してGitHub Issueを作って」
- Slack MCPサーバーで今日のチャネルメッセージを検索
- バグ関連メッセージをフィルタリング・要約
- GitHub MCPサーバーでIssue作成(ラベル、担当者自動指定)
MCPは、AIエージェントが**実際に業務を遂行**できるようにする核心インフラです。
MCPサーバーデバッグのヒント
Claude CodeでMCPサーバー接続に問題がある場合の便利なデバッグ方法です。
# MCPサーバー状態確認
claude mcp list
# サーバーログ確認(Claude Desktopの場合)
# macOS: ~/Library/Logs/Claude/
# Windows: %APPDATA%/Claude/logs/
# Inspectorで独立テスト
npx @modelcontextprotocol/inspector your-server-command
頻繁
に
発生
する
問題
と
解決方法
:
| 症状 | 原因 | 解決 |
|---|---|---|
| サーバーが接続されない | 実行ファイルパスエラー | 絶対パスを使用、whichコマンドで確認 |
| ツールが表示されない | 初期化失敗 | Inspectorでサーバーを独立テスト |
| タイムアウトエラー | サーバーレスポンス遅延 | 非同期処理確認、タイムアウト設定調整 |
| 認証失敗 | トークン期限切れ/エラー | 環境変数を再設定 |
開発者が知るべきMCPロードマップ
2024-2025 主要マイルストーン
2024年11月 - 誕生
AnthropicがMCPをオープンソースとして公開しました。当初はClaude Desktop専用でしたが、オープンプロトコルとして設計されており、誰でも実装できました。
2025年3月 - OpenAI採用
OpenAIがAgents SDKでMCPをサポートすると発表しました。MCPが単一企業のプロジェクトを超えて業界標準になる転換点でした。
2025年6月 - 認証スペック追加
OAuth 2.0ベースの認証がMCPスペックに追加されました。
- トークンベースの認証フロー
-
細
かい権限
(スコープ)管理
-
既存
IdP(Identity Provider)との統合
-
監査
(audit)ログサポート
2025年11月 - 1周年大規模アップデート
MCP 1周年を迎え、主要アップデートが発表されました。
- Streamable HTTP: 旧SSEに代わる、より効率的なリモート通信方式
- Tool Annotations: ツールの副作用(side effects)を明示的に宣言
- Elicitation: サーバーが実行中にユーザーに追加情報を要求する機能
- Structured Output: ツール出力のスキーマを定義する機能
2025年12月 - Linux Foundation寄贈
MCPがLinux FoundationのAI and Data Foundation(AAIF)に寄贈されました。MCPのガバナンスはAnthropicの単独からコミュニティ主導に転換されました。
2026年の展望
エージェント間MCP通信
現在
、MCPは
主
に「AIモデル -
外部
ツール」
間
の
通信
に
使用
されています。2026年には**エージェント
間通信
**への
拡張
が
予想
されます。
現在:AIモデル → MCP → 外部ツール
未来:AIエージェントA → MCP → AIエージェントB
例
えば、コーディングエージェントがテストエージェントにMCPを
通
じてテスト
実行
を
依頼
し、テストエージェントが
結果
をMCPを
通
じて
返
すシナリオが
可能
になります。
マルチモーダルMCP
テキストだけでなく、画像、音声、動画をMCPで伝達する機能が拡大する見通しです。すでに一部のMCPサーバーが画像リソースをサポートしており、このトレンドは加速するでしょう。
エンタープライズMCPゲートウェイ
大企業
環境
でMCPサーバーアクセスを
中央管理
するゲートウェイソリューションが
登場
しています。
-
中央集権的
な認証
/認可
-
使用量
モニタリングと制限
-
監査
ログ - ポリシーベースのアクセス制御
MCPレジストリ
npmやPyPIのようにMCPサーバーを検索してインストールできる公式レジストリの登場が予想されます。現在MCP.soが非公式マーケットプレイスの役割を果たしていますが、Linux Foundation寄贈以降、公式レジストリの構築が議論されています。
実践クイズ
MCPについての理解を確認してみましょう。
Q1. MCPが解決する「N x M問題」とは何ですか?
正解: N個のAIモデルとM個の外部ツールを接続する際、各ペアに対してカスタム統合が必要で、合計N x M個の統合が必要になる問題です。MCPは標準プロトコルを提供してこれをN + Mに削減します。各AIモデルはMCPクライアントを一つだけ、各ツールはMCPサーバーを一つだけ実装すれば済みます。
Q2. MCPの3つの核心概念(Resources、Tools、Prompts)の違いを説明してください。
正解:
- Resources(リソース): AIがアクセスできる読み取り専用データです。ファイル、DBスキーマ、APIレスポンスなどのコンテキストを提供します。URIで識別されます。
- Tools(ツール): AIが呼び出せる実行可能な関数です。API呼び出し、データの作成/変更、外部システム操作などのアクションを実行します。
- Prompts(プロンプト): 特定タスクに最適化された再利用可能なプロンプトテンプレートです。ドメイン専門家が最適な指示を作成・配布できます。
簡単
に
言
えば、リソースは「
読
み
取
り」、ツールは「
実行
」、プロンプトは「
案内
」です。
Q3. OpenAIが競合他社であるAnthropicが作ったMCPを採用した理由は何ですか?
正解: 実用的な判断の結果です。第一に、すでに形成されたMCP生態系を無視できませんでした。第二に、独自プロトコルを作ると生態系が分裂し、全員が損をします。第三に、開発者がすでにMCPサーバーを構築しており、ネットワーク効果が働いていました。第四に、標準化は市場全体を拡大し、結果的にOpenAIにも利益をもたらします。ウェブブラウザがW3C標準に従うのと同じ論理です。
Q4. MCPの2つの転送方式(stdio vs Streamable HTTP)はそれぞれどのような状況に適していますか?
正解:
- stdio(標準入出力): ローカル開発環境に最適です。MCPサーバーをローカルプロセスとして実行し、stdin/stdoutで通信します。設定が簡単で、ネットワーク不要、セキュリティが高いです。個人開発者や単一マシン環境で使用します。
- Streamable HTTP: リモート/チーム環境に最適です。HTTPで通信するため、Cloudflare、AWSなどにデプロイしてチーム全体で共有できます。認証、アクセス制御、モニタリングが可能です。
Q5. MCPがLinux Foundationに寄贈されたことがなぜ重要なのですか?
正解: Linux Foundation寄贈はMCPの長期的成功のための核心的決定です。第一に、特定企業ではなくコミュニティが標準を管理して**中立性が保証されます。第二に、Anthropicの事業方向の変化に関係なくプロトコルの持続可能性が確保されます。第三に、競合他社が安心して参加でき信頼が強化されます。第四に、公開された意思決定プロセスによりガバナンスの透明性**が確保されます。Linux、Kubernetes、Node.jsなどの成功したオープンソースプロジェクトの実証済みの道です。
参考資料
- MCP公式サイト - modelcontextprotocol.io - スペック、ドキュメント、クイックスタートガイド
- MCP GitHubリポジトリ - github.com/modelcontextprotocol - ソースコード、SDK、サンプル
- Anthropic MCP発表ブログ - anthropic.com/news/model-context-protocol - 2024年11月の初回発表
- OpenAI MCP採用発表 - openai.com/index/new-tools-for-building-agents - 2025年3月
- Google ADK MCPサポート - google.github.io/adk-docs - Agent Development Kitドキュメント
- Linux Foundation AAIF寄贈発表 - linuxfoundation.org - 2025年12月
- MCP 1周年アップデート - modelcontextprotocol.io/blog - Streamable HTTP、Tool Annotationsなど
- FastMCP公式ドキュメント - gofastmcp.com - Python MCPフレームワーク
- MCP TypeScript SDK - npmjs.com/package/@modelcontextprotocol/sdk
- MCP Python SDK - pypi.org/project/mcp
- GitHub MCPサーバー - github.com/github/github-mcp-server
- Cloudflare MCPデプロイガイド - developers.cloudflare.com/agents/guides/remote-mcp-server
- MCP Inspector - github.com/modelcontextprotocol/inspector
- MCP.soマーケットプレイス - mcp.so - コミュニティMCPサーバーディレクトリ
- Claude Code MCPドキュメント - docs.anthropic.com/en/docs/claude-code - MCP統合ガイド
- MCPスペックドキュメント - spec.modelcontextprotocol.io - プロトコル詳細スペック