エンジニアの井立田です。 本記事では、最近注目されているMCPの基本的な概念について、簡潔にわかりやすく解説します。
MCPとは
ツールとは
- LLMが外部の関数やAPIを呼び出すための機能
- 例:
- 天気を取得するAPIを呼ぶ
- 社内のドキュメント検索を行う
- 例:
- LLMは閉じた世界の中で働くため、外部の世界について知ることができず、また外部に対してなんらかの変化を及ぼす能力も持っていない。この弱点を克服する機能がツール。
Function Callingとは
- ツールは関数のような形式で表現され、関数名・引数・その説明などを含む。 会話のプロセスで、モデルがツールの使用が必要だと判断した場合、適切な引数を指定して構造化された呼び出しリクエストを生成する。 この仕組みを Function Calling と呼ぶ。
- 実際にツールを実行し、その結果をモデルに返す処理は、LLMアプリケーション(ホスト側)の責任です。
- Function Callingの流れ
MCPとは
MCP (Model Context Protocol) はLLMと外部サービスを繋ぐためのプロトコル(規格)のこと
MCPはAIアプリケーション用のUSB-Cポートのようなものだと考えてください。USB-Cがデバイスを様々な周辺機器やアクセサリに接続するための標準化された方法を提供するのと同様に、MCPはAIモデルを様々なデータソースやツールに接続するための標準化された方法を提供します。
Anthropic社が2024年11月に発表、2025年にはOpenAIをはじめ競合他社でも採用され、デファクトスタンダードとなっている
- Function callingとMCPの違い
なぜMCPが必要なのか
https://modelcontextprotocol.io/introduction#why-mcp%3F
関連技術
- RAG
- 検索拡張生成(Retrieval-Augmented Generation)
- モデルのトレーニング時には含まれていない情報源から取得したコンテキストを、プロンプトに追加することで、モデルに一時的な知識を与える手法
- RAGとMCPの違い
仕組み
MCPの基本構成
- MCPホスト
- LLMアプリケーション本体(例:Claude, Cursor)
- MCPクライアントを内部に持ち、ツール呼び出しなどを管理
- MCPクライアント
- MCPサーバーと1:1で接続されるクライアント
- LLMとのやり取りやルート制御を担う中継役
- MCPサーバー
- LLMに提供したい機能(ツール・リソース・プロンプトなど)を定義・公開するプログラム
https://modelcontextprotocol.io/docs/learn/architecture#participants
MCPサーバーの種類
- Stadio(標準入出力)
- ローカルのServerとの通信
- Remote
- リモートサーバーとの通信
- HTTP + SSE
- Streamable HTTP(2025年3月26日の仕様改定で追加)
- リモートサーバーとの通信