- MCP(Model Context Protocol) は、LLMにツールとコンテキストを提供するための標準化された方式
- USB-Cポートのように、さまざまなデータソースやツールとAIモデルを接続する標準インターフェースとして機能
- OpenAI Agents SDKはMCPをサポートし、さまざまなMCPサーバーと統合可能
MCPサーバー
- 現在のMCP仕様では、使用する転送メカニズムに応じて2種類のサーバーを定義している:
- stdio サーバーはアプリケーションのサブプロセスとして実行され、「ローカル」で実行されるものと考えられる。
- HTTP over SSE サーバーはリモートで実行され、URLを通じて接続する。
MCPServerStdio と MCPServerSse クラスを使用して、これらのサーバーに接続できる。
- たとえば、公式のMCPファイルシステムサーバーを使用する方法は次のとおり:
async with MCPServerStdio(
params={
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", samples_dir],
}
) as server:
tools = await server.list_tools()
キャッシュ
- エージェントの実行ごとにMCPサーバーの
list_tools() を呼び出すと、レイテンシが発生する可能性がある。特にサーバーがリモートサーバーである場合はなおさら。
- ツール一覧を自動的にキャッシュするには、
MCPServerStdio と MCPServerSse に cache_tools_list=True を渡すことができる。これは、ツール一覧が変更されないと確信できる場合にのみ行うべき。
- キャッシュを無効化するには、サーバーで
invalidate_tools_cache() を呼び出せる。
4件のコメント
Anthropic、Model Context Protocolをオープンソースとして公開
Model Context Protocol (MCP) の開発方法
MCPとAPIの比較説明
Awesome MCP Servers - Model Context Protocolをサポートするサーバー一覧
Hacker Newsの意見
今日、MCP に Streamable HTTP が追加された。これは、リモート HTTP サーバーに常時接続しておく必要がないという点で大きな前進だ
/get_weatherに{ "location": "New York" }を HTTP POST で送る方式だったAuthorizationヘッダーでネゴシエーションし、従来のエンドポイントを使うMCP を AI アプリケーションの USB-C ポートだと考えろ、というたとえがある
OpenAI がこれを公式に支持するのか気になっていたが、これで答えが出た
OpenAPI をサポートしてほしかった。MCP サーバーをいくつか作ったが、より柔軟性が低く、ドキュメント化も不十分な API に感じる
MCP の価値が何なのか理解しづらい。現代の AI 技術の混乱の中で、また別の気を散らす要素のように感じる
AI エージェントがローカルで「ツール」を使えるアーキテクチャを作った。あらゆる種類の LLM および LLM サーバーで動作する
MCP を実際にどう使うのかについての動画が不足している。プログラマー向けの実用的なユースケースが足りない
MCP を AI アプリケーションの USB-C ポートだと考えろ、というたとえがある
これは MCP の旧バージョンである HTTP+SSE を対象にしているように見える。新しい Streaming HTTP バージョンではない
MCP を手軽に試してみたいなら、<a href="https://skeet.build/mcp" rel="nofollow">skeet.build/mcp</a> を作った
私も OpenAPI の function calling のほうがいいのではないかと思います。これを MCP プロトコルで作り直すのも手間なんですよね。
push と poll の違いではないでしょうか。モデルやサービスごとに function calling するより、MCP の仕様をホスティングしてエージェントが poll していく方式のほうが、3rd party にとっては便利な気がします