Re Reference AI

エージェント

MCPとは

Model Context Protocol

LLMアプリケーションと外部のツール・データソースを標準化された方法で接続するオープンプロトコル

LLMツール連携プロトコル

ひとことで言うと

AIと外部のツールやデータを、決まったやり方でつなげるための共通規格。

概要

MCP(Model Context Protocol)とは、LLMアプリケーションが外部のツール・データソース・システムと連携するためのインターフェースを標準化するオープンプロトコル。 従来、LLMを様々な外部システム(ファイルシステム、データベース、SaaSサービス等)と連携させるには、連携先ごとに個別の実装が必要だった。 MCPは、ツールやデータソースを提供する側(MCPサーバー)と、それを利用するLLMアプリケーション側(MCPクライアント)のやり取りを共通のプロトコルとして定義し、一度実装したMCPサーバーを複数のLLMアプリケーションから再利用できるようにする。 AnthropicがOSSとして公開し、対応するLLMアプリケーションやツール提供元が急速に増えたことで、エージェント開発における事実上の標準インターフェースの1つになりつつある。

背景

LLMアプリケーションが増えるにつれ、同じ外部システム(GitHub、Slack、社内データベース等)への接続をアプリケーションごとに個別実装する重複が問題になっていた。 MCPは、USB等ハードウェアインターフェースの標準化と同様の発想で、ツール・データ連携の実装を標準化し再利用しやすくするため考案された。

歴史

2024年11月: Anthropicが、LLMアプリケーションと外部データ・ツールを接続するオープン標準としてMCPを公開。 2025年: OpenAIやGoogle DeepMind等、他の主要なAIベンダーもMCPのサポートを表明し、業界横断的な標準として採用が広がる。

アーキテクチャ

MCPは、ツールやデータへのアクセスを提供する「MCPサーバー」と、それを利用する「MCPクライアント(LLMアプリケーション)」から構成される。 サーバーは、利用可能なツール・リソース・プロンプトのテンプレート等を標準化された形式でクライアントへ公開し、クライアントは、タスクの遂行に必要なものを選んで呼び出す。 通信にはJSON-RPCが用いられる。

ワークフロー

MCPサーバーが利用可能なツール・リソースを公開 → MCPクライアントが接続しJSON-RPCで一覧を取得 → LLMがタスクに応じてツールを選択・呼び出し → サーバーが実行結果を返し応答生成に利用する。

コード例

FastMCPで簡単なMCPサーバーを実装する

from fastmcp import FastMCP

mcp = FastMCP("Weather")


@mcp.tool()
def get_weather(city: str) -> str:
    """指定した都市の現在の天気を返す"""
    return f"{city}は晴れです"


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

利点

  • 一度実装したMCPサーバーを、複数の異なるLLMアプリケーションから再利用できる
  • ツール・データ連携の実装が標準化され、開発・保守の重複を減らせる
  • FastMCP等のSDKが整備されており、既存のAPIをMCPサーバーとして素早く公開できる

欠点

  • 標準化されたプロトコルである分、特殊な連携要件への対応は独自実装より柔軟性に欠けることがある
  • 比較的新しい仕様であり、エコシステムやセキュリティのベストプラクティスが発展途上の部分がある
  • MCPサーバーには接続先の外部システムへの強い権限が付与されるため、認可やアクセス制御の設計が重要になる

比較

  • ツールコーリングMCPは、Tool Callingで使うツールの提供方法を標準化するプロトコル
  • A2AMCPがLLMアプリケーションとツール・データの接続を標準化するのに対し、A2Aはエージェント同士の連携を標準化する
  • AIエージェントAIエージェントは、MCPを通じて様々な外部ツール・データソースへ標準化された方法で接続できる
  • ClaudeMCPは、Claudeの開発元であるAnthropicが公開したツール連携プロトコル
  • AgentCoreAWSのAgentCoreは、Gatewayコンポーネントを通じて既存APIをMCP互換のツールへ変換する機能を提供する
  • FastMCPFastMCPは、MCPプロトコルに対応するサーバー・クライアントをPythonのデコレータ構文で簡潔に実装できるフレームワーク

関連用語

ツールコーリングA2AAIエージェントファンクションコーリングClaudeAgentCoreFastMCP

よくある質問

MCPとFunction Callingの違いは?

Function Calling(Tool Calling)は、LLMが単一の呼び出しの中でどの関数をどんな引数で呼ぶかを決める仕組み。 MCPは、そうした呼び出しの対象となるツールやデータソースをどう発見・提供・接続するかを標準化するプロトコルという、より上位のレイヤーに位置する。

既存のREST APIをMCP対応にするには?

AWSのAgentCoreのGatewayのように既存APIをMCP互換のツールへ変換するサービスや、FastMCPのようなSDKで既存の関数をMCPツールとして公開する方法がある。

参考文献

関連する年表

MCP(Model Context Protocol)の歴史

AnthropicがLLMアプリケーションと外部ツール・データを接続する標準として公開したMCPが、主要AIベンダーを巻き込んだ業界標準へと広がっていった過程をたどる。

エージェント5件のイベント / 2024 - 2025

Claudeの歴史

Anthropicが2023年に公開した対話型AI「Claude」の、Claude 2・Claude 3ファミリー・Computer Use・Claude Codeを経てClaude Sonnet 5に至るまでの変遷。

モデル8件のイベント / 2023 - 2026

関連する比較

MCP vs ファンクションコーリング

MCPはLLMアプリケーションと外部ツール・データソースの接続方法を標準化するオープンプロトコル、Function CallingはLLMが構造化された関数呼び出しを出力する仕組み。抽象化のレイヤーが異なり、両者は代替関係ではなく組み合わせて使われる。

MCPファンクションコーリング

関連Zenn記事