up:: AI_agent
Model Context Protocol, 略してMCP。
提唱はAnthoropicっぽい。
GitHub - modelcontextprotocol/servers: Model Context Protocol Servers
All-in-one AI workspace
Sourcegraph
どのソースもAIモデル用のコンテキストに変換したり、ツールとして扱えるようにしたり、プロンプトを提供できたりするサーバーにするプロトコルっぽい。
以下の三つの概念で出来てる。
- ホスト
- 接続されるLLMアプリ
- クライアント
- ホストとサーバーの1:1接続の維持
- サーバー
- クライアントにコンテキストやツールを渡す
サーバー
アクセスできるツールの定義と、その説明になるオブジェクトを用意する。
さらにリクエスト用のハンドラーを公開し、受け取ったリクエストを関連付けれらている機能に紐づける。
クライアント
どのサーバーに接続できるかを定義。
及び、接続の為のメソッドを準備。
接続後のメッセージ送信。
クライアントがプロトコルバージョンと機能を元に初期化要求を送信
サーバーがプロトコルバージョンと機能を元に応答
クライアントが応答の証人として初期化された通知を送信
その後メッセージ交換を行う。
メッセージは以下の4つが定義されている。
- Request
- 応答を期待
- Notify
- 応答を期待しない
- Result
- Requestに対する成功した応答
- Error
- Requestに対する障害応答
Transport
アプリとインターネットの間、実際通信に使うトランスポート部分は2つの手法が用意されている。
- stdio transport
- 標準の入出力
- ローカルに最適
- HTTP with SSE transport
- サーバーからクライアントへのメッセージ、Server Sent Event
- クライアントからサーバーへのHTTP Post
また、データ構造はJSON-RPC 2.0に従う。
ホスト
サーバーへの接続を開始っするアプリケーション。
プロトコル上では曖昧。
OSS Component
pythonとtypescript用のOSS、fastmcpというフレームワークが出てる。
SDKもある。
開発者ツールもある。
Introducing Model Context Protocol (MCP) | Glama
Cody supports additional context through Anthropic’s Model Context Protocol | Sourcegraph Blog
servers/src/everything at main · modelcontextprotocol/servers · GitHub