Skip to content
Published on

MCP(Model Context Protocol)完全ガイド:9,700万ダウンロードのAI標準になった理由

Authors

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つの方法(ほうほう)解消(かいしょう)します。

  1. Resources(リソース): AIが()むことができるデータを提供(ていきょう)(ファイル、DBレコード、APIレスポンス)
  2. Tools(ツール): AIが実行(じっこう)できる関数(かんすう)提供(ていきょう)(API()()し、コード実行(じっこう)、ファイル作成(さくせい)
  3. 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接続(せつぞく)のライフサイクルは以下(いか)(とお)りです。

  1. 初期化(しょきか)(Initialization): クライアントがサーバーに接続(せつぞく)し、プロトコルバージョンとサポート機能(きのう)交渉(こうしょう)
  2. ディスカバリ(Discovery): クライアントがサーバーのリソース、ツール、プロンプトリストを照会(しょうかい)
  3. 実行(じっこう)(Execution): AIモデルのリクエストに(おう)じてツール()()し、リソース()()りを実行(じっこう)
  4. 終了(しゅうりょう)(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

項目(こうもく)MCPFunction CallingLangChain Tools
標準化(ひょうじゅんか)オープンプロトコル(かく)AIベンダー独自(どくじ)スペックライブラリレベルの抽象化(ちゅうしょうか)
再利用性(さいりようせい)一度(いちど)(つく)ればすべてのAIで使用(しよう)特定(とくてい)AIベンダーに依存(いぞん)LangChain生態系(せいたいけい)(ない)のみ
転送方式(てんそうほうしき)stdio、Streamable HTTPHTTP 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は以下(いか)のように動作(どうさ)します。

  1. PostgreSQL MCPサーバー現在(げんざい)のusersテーブルスキーマを照会(しょうかい)
  2. 既存

    ( きそん )

    スキーマを

    分析

    ( ぶんせき )

    してマイグレーションSQLを

    作成

    ( さくせい )

  3. Filesystem MCPサーバーでマイグレーションファイルを生成(せいせい)
  4. 関連

    ( かんれん )

    モデルコードを

    更新

    ( こうしん )

  5. GitHub MCPサーバーでブランチ作成(さくせい)、コミット、PR作成(さくせい)

全体

( ぜんたい )

過程

( かてい )

が一つの

会話

( かいわ )

自動的

( じどうてき )

( おこな )

われます。

開発者

( かいはつしゃ )

最終的

( さいしゅうてき )

なPRのみレビューすれば

( )

みます。

もう一つのシナリオ:「Slackで今日(きょう)議論(ぎろん)されたバグレポートを整理(せいり)してGitHub Issueを(つく)って」

  1. Slack MCPサーバー今日(きょう)のチャネルメッセージを検索(けんさく)
  2. バグ関連(かんれん)メッセージをフィルタリング・要約(ようやく)
  3. 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エージェントAMCPAIエージェント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などの成功(せいこう)したオープンソースプロジェクトの実証済(じっしょうず)みの(みち)です。


参考(さんこう)資料(しりょう)

  1. MCP公式(こうしき)サイト - modelcontextprotocol.io - スペック、ドキュメント、クイックスタートガイド
  2. MCP GitHubリポジトリ - github.com/modelcontextprotocol - ソースコード、SDK、サンプル
  3. Anthropic MCP発表(はっぴょう)ブログ - anthropic.com/news/model-context-protocol - 2024年11月の初回(しょかい)発表(はっぴょう)
  4. OpenAI MCP採用(さいよう)発表(はっぴょう) - openai.com/index/new-tools-for-building-agents - 2025年3月
  5. Google ADK MCPサポート - google.github.io/adk-docs - Agent Development Kitドキュメント
  6. Linux Foundation AAIF寄贈(きぞう)発表(はっぴょう) - linuxfoundation.org - 2025年12月
  7. MCP 1周年(しゅうねん)アップデート - modelcontextprotocol.io/blog - Streamable HTTP、Tool Annotationsなど
  8. FastMCP公式(こうしき)ドキュメント - gofastmcp.com - Python MCPフレームワーク
  9. MCP TypeScript SDK - npmjs.com/package/@modelcontextprotocol/sdk
  10. MCP Python SDK - pypi.org/project/mcp
  11. GitHub MCPサーバー - github.com/github/github-mcp-server
  12. Cloudflare MCPデプロイガイド - developers.cloudflare.com/agents/guides/remote-mcp-server
  13. MCP Inspector - github.com/modelcontextprotocol/inspector
  14. MCP.soマーケットプレイス - mcp.so - コミュニティMCPサーバーディレクトリ
  15. Claude Code MCPドキュメント - docs.anthropic.com/en/docs/claude-code - MCP統合(とうごう)ガイド
  16. MCPスペックドキュメント - spec.modelcontextprotocol.io - プロトコル詳細(しょうさい)スペック