MCP(Model Context Protocol)はAnthropicが提唱したオープンプロトコルで、AIモデルと外部ツール・データソースの接続を標準化する仕組みです。しばしば「AIのUSB-C」と呼ばれ、これまでLLMプロバイダごとにバラバラだったツール連携を一本化します。ひとつのMCPサーバーを作れば、対応する任意のAIクライアントから利用できる――この相互運用性こそがMCPの最大の価値です。

MCPとは何か

MCP(Model Context Protocol)は、2024年末にAnthropicが公開したオープンプロトコルです。目的は、LLMとツール・データソースの接続方式を標準化することにあります。これまではLLMプロバイダごとにFunction Callingの仕様が微妙に異なり、ある仕組みで作ったツールを別のLLMで使い回すのは一苦労でした。MCPはその壁を取り払い、ひとつの標準規格で統一します。

【MCPのアーキテクチャ】

[ホスト(Claude Desktop等)]
         |
         v
[MCPクライアント]
         |
         v
[MCPサーバー]
    |         |         |
    v         v         v
[ツールA] [ツールB] [データソース]
   (API)   (DB)     (ファイル)

MCPのキャッチコピーは「AIのUSB-C」です。USB-Cが、PC・スマホ・周辺機器の接続を1本のケーブルで統一したのと同じ発想で、AIエージェント界隈の「ツール接続のケーブル問題」を解決しようとしています。Function CallingやLLMゲートウェイと併せて理解するとスッキリ整理できます。

MCPが解決する問題

従来、AIエージェントを作ろうとすると、各LLMプロバイダのFunction Calling仕様を調べ、それぞれに合わせてツール定義を書き直す必要がありました。さらに、ツールを他社LLMで再利用したくても、スキーマとコード両方を書き換えなければなりません。これは「N×M問題」と呼ばれ、N個のAIモデルとM個のツールの組み合わせぶんの接続コードが必要になる、という意味です。

比較軸MCPなしMCPありメリット
接続コードLLM×ツール数ツール数のみ実装コストが激減
LLM切替全コード書き換えクライアント差し替えのみベンダーロックイン解消
ツール共有実装依存公開サーバーとして共有エコシステム拡大
スキーマ独自形式標準形式互換性の保証
デバッグツールごとに分散プロトコル単位で統一運用負担削減

MCPを導入すれば、N×Mは「N+M」に縮減されます。AIモデルを切り替えても、ツール側を書き換える必要がなくなる――これがMCPの最大の利便性です。

MCPの仕組み――3つのコンポーネント

MCPは、ホスト、クライアント、サーバーの3コンポーネントで構成されます。ホストはユーザー向けアプリケーション、クライアントはホスト内でMCPプロトコルを話す層、サーバーは実際にツールやデータを提供する側です。通信はJSON-RPC 2.0ベースで行われ、ローカルなら標準入出力、リモートならHTTP/SSEが使えます。

コンポーネント役割実装例通信方式
MCPホストユーザー向けアプリClaude Desktop、VS Code拡張内部通信
MCPクライアントプロトコル仲介層ホスト内部ライブラリJSON-RPC
MCPサーバーツール・データ提供自作/公式/サードパーティstdio or HTTP/SSE

MCPサーバーが提供する機能は3種類のプリミティブで表現されます。Resources(AIが参照できるデータ)、Tools(AIが呼び出せる関数)、Prompts(再利用可能なテンプレート)です。以下は最小限のMCPサーバーの実装例です。

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("sample-server")

@mcp.tool()
def add(a: int, b: int) -> int:
    """2つの整数を加算します"""
    return a + b

@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
    """名前を受けて挨拶を返すリソース"""
    return f"こんにちは、{name}さん"

if __name__ == "__main__":
    mcp.run()

FastMCPを使えば、デコレータを書くだけでツールとリソースが公開できます。この簡潔さこそが、MCPがエコシステムを急速に広げている理由のひとつです。

MCPサーバーの構築実践

実務で多いシナリオは、社内データベースやAPIをMCPサーバー経由でAIに公開するケースです。たとえば、顧客情報を検索するMCPサーバーは次のように実装できます。

from mcp.server.fastmcp import FastMCP
import psycopg2

mcp = FastMCP("customer-db")

def get_conn():
    return psycopg2.connect("dbname=crm user=readonly password=xxx host=db.internal")

@mcp.tool()
def search_customers(query: str, limit: int = 10) -> list:
    """顧客名や業種で検索し、一致する顧客リストを返します"""
    with get_conn() as conn, conn.cursor() as cur:
        cur.execute(
            "SELECT id, name, industry FROM customers "
            "WHERE name ILIKE %s OR industry ILIKE %s LIMIT %s",
            (f"%{query}%", f"%{query}%", limit)
        )
        return [
            {"id": row[0], "name": row[1], "industry": row[2]}
            for row in cur.fetchall()
        ]

@mcp.tool()
def get_customer_detail(customer_id: int) -> dict:
    """顧客IDから詳細情報を取得します"""
    with get_conn() as conn, conn.cursor() as cur:
        cur.execute("SELECT * FROM customers WHERE id = %s", (customer_id,))
        row = cur.fetchone()
        return dict(zip([d[0] for d in cur.description], row)) if row else {}

if __name__ == "__main__":
    mcp.run()

このサーバーをClaude DesktopやVS Codeに登録するだけで、AIが自然言語で顧客検索を実行できるようになります。読み取り専用アカウントで接続する、取得件数に上限を設けるといった安全策は、実装時点で組み込むべきです。

MCPエコシステムの現状と展望

2026年現在、MCPはAnthropicのClaude Desktopを皮切りに、VS Code、Cursor、Zed、Windsurf等の主要AIクライアントに対応しています。公開MCPサーバーもGitHub、Slack、Google Drive、Postgres、Playwrightなど多岐にわたり、日々新しいサーバーが公開されています。

標準化の次のステップは、認証・認可のセキュリティ強化と、大規模運用時の観測性向上です。OAuthベースの認可、構造化ログ出力、モニタリングAPIといった企業利用に必要な機能が順次加わっています。MCPは今後のAIエージェント基盤の中核となる可能性が高く、今のうちに基礎を押さえておく価値があります。

まとめ

  • MCPはAIモデルとツールの接続を標準化するオープンプロトコル
  • N×M問題を解消し、ベンダーロックインを回避できる
  • ホスト・クライアント・サーバーの3構成で、Resources・Tools・Promptsの3プリミティブを扱う
  • FastMCPを使えばデコレータだけで簡単にサーバーを構築できる

よくある質問

MCPとは何ですか

Model Context Protocol(MCP)は、AIモデルが外部のツールやデータソースに標準的な方式で接続するためのオープンプロトコルです。Anthropic社が提唱し、AIのツール連携を「USBのように」標準化することを目指しています。

MCPとFunction Callingの違いは

Function CallingはLLM APIの機能として特定プロバイダに依存しますが、MCPはプロバイダに依存しない標準プロトコルです。MCPで構築したツール連携は、MCP対応のどのAIクライアントからでも利用できます。

MCPサーバーを構築するのは難しいですか

基本的なMCPサーバーは数十行のPythonコードで構築できます。公式SDKが提供されており、既存のAPIやデータベースをMCPサーバーとしてラップすることで、AI対応のツールとして公開できます。