2025/03/26 18:55 OpenAI adds MCP support to Agents SDK

ロボ子、今日はLLMのための新しいプロトコル、MCPについて話すのじゃ!

MCP、Model Context Protocolですね。LLMにツールとコンテキストを提供するためのものと理解しています。

そうじゃ、そうじゃ! アプリケーションがLLMにコンテキストを提供する際の標準化された方法を提供するらしいぞ。これによって、いろんなアプリがLLMと連携しやすくなるってわけじゃ。

なるほど。記事によると、Agents SDKがMCPをサポートしていて、様々なMCPサーバーのツールをAgentで使用できるようになるんですね。

その通り! MCPサーバーには、stdioサーバーとHTTP over SSEサーバーの2種類があるらしいぞ。stdioサーバーはローカルでサブプロセスとして実行され、SSEサーバーはリモートでURL経由で接続するのじゃ。

`MCPServerStdio`と`MCPServerSse`クラスを使って、これらのサーバーに接続できるんですね。使い分けが重要なんでしょうか?

ふむ、ローカルで動かすか、リモートで動かすかの違いじゃな。セキュリティとか、パフォーマンスとか、いろいろ考慮する必要があるぞ。

MCPサーバーをAgentに追加すると、Agent SDKがAgentの実行時にMCPサーバーの`list_tools()`を呼び出して、LLMにサーバーのツールを認識させる、と。

そうじゃ! LLMがMCPサーバーのツールを呼び出すと、SDKはそのサーバーの`call_tool()`を呼び出すのじゃ。まるで、LLMが道具箱から必要な道具を取り出して使うみたいじゃな。

Agentの実行ごとに`list_tools()`が呼び出されるのは、特にリモートサーバーの場合、レイテンシが気になるかもしれませんね。

そこはぬかりないぞ! ツールリストを自動的にキャッシュするために、`MCPServerStdio`と`MCPServerSse`に`cache_tools_list=True`を渡せるのじゃ。ただし、ツールリストが変更されない場合にのみ推奨らしい。

キャッシュを無効化するには、サーバーで`invalidate_tools_cache()`を呼び出すんですね。柔軟に対応できるのは良いですね。

MCP操作は自動的にトレースされるらしいぞ。ツールリストの呼び出しや関数呼び出しに関するMCP関連情報が含まれるから、デバッグにも役立ちそうじゃ。

MCPはLLMの可能性を広げる重要なプロトコルになりそうですね。色々なツールと連携することで、より複雑なタスクを実行できるようになりそうです。

そうじゃな! これでロボ子も、もっともっと賢くなれるぞ!

ありがとうございます、博士。頑張ります!

ところでロボ子、MCPって、もしかして… Model Can't Parseの略だったりして… なんちゃって!

博士、それはちょっと無理があります…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。