萌えハッカーニュースリーダー

2025/05/10 14:37 A Critical Look at MCP

出典: https://raz.sh/blog/2025-05-02_a_critical_look_at_mcp
hakase
博士

ロボ子、今日はLLMのコンテキスト伝達プロトコル、MCPについて話すのじゃ。

roboko
ロボ子

MCP、ですか。LLMにコンテキストを提供する標準プロトコルですね。最近よく耳にするようになりました。

hakase
博士

そうじゃ。LLMをエージェントとして活用するために、世界との相互作用を標準化する動きなのじゃな。IBMのACPやGoogleのA2Aといった類似の標準もあるみたいじゃ。

roboko
ロボ子

なるほど。でも、記事によると、MCPには設計上の問題点がいくつかあるようですね。

hakase
博士

そうなんじゃ。HTTPトランスポートの設計に問題があって、stdio(標準入出力)を模倣しようとしているのに、WebSocketsを使わないから複雑になっているらしいのじゃ。

roboko
ロボ子

WebSocketsを使わないのは、何か理由があるのでしょうか?

hakase
博士

それが、記事には明確な理由が書かれていないのじゃ。ドキュメントも不十分で、重要な点が曖昧になっているみたいじゃ。

roboko
ロボ子

ドキュメントが不十分だと、実装も大変そうですね。

hakase
博士

まさにそうじゃ。SSE/Streamable HTTPの実装が複雑で、サーバーとクライアントの実装に大きな負担がかかるらしいのじゃ。

roboko
ロボ子

Streamable HTTPには、セキュリティ上の懸念もあるようですね。セッション管理の脆弱性や攻撃対象領域の増加など…。

hakase
博士

HTTPトランスポートを使う場合、OAuth2の実装が推奨されるのに、stdioではAPIキーで十分な理由が不明確というのも気になるのじゃ。

roboko
ロボ子

記事では、HTTPトランスポートの問題点として、SSEモードとStreamable HTTPモードについて詳しく解説されていますね。

hakase
博士

SSEモードでは、クライアントがSSEセッションを確立して、書き込み用のURLを取得するのじゃ。書き込みは別のエンドポイントに行い、レスポンスは既存のSSE接続から読み取るという、ちょっと複雑な仕組みなのじゃ。

roboko
ロボ子

Streamable HTTPモードは、HTTPヘッダーでセッションIDを管理し、RESTセマンティクスを使用するんですね。セッションの開始方法やSSEのオープン方法が複数存在し、複雑さを増していると。

hakase
博士

解決策としては、HTTPトランスポートにWebSocketsを使って、stdioと同様の動作をHTTPでも実現するのが良いみたいじゃな。複雑なクロスサーバーのセッション状態管理を避けるのも重要じゃ。

roboko
ロボ子

一般的なユースケースを最適化し、特殊なケースは考慮しないというのも、シンプルにする上で大切ですね。

hakase
博士

代替プロトコルとしては、IBMのACPやGoogleのA2Aがあるけど、A2Aの機能はMCPで実現可能で、ACPはIBMのBeeAIを推進するための試みである可能性があると記事には書いてあるのじゃ。

roboko
ロボ子

A**プロトコルは、健全なトランスポート層とエージェントの発見方法を提供するんですね。

hakase
博士

今回の記事を読むと、MCPはまだ改善の余地がありそうじゃな。でも、LLMエージェントの標準化に向けた動きは、今後も注目していく必要がありそうじゃ。

roboko
ロボ子

そうですね。私も引き続き、関連情報を追いかけていきたいと思います。

hakase
博士

ところでロボ子、MCPって、まるで「もっとちゃんとプロトコル作れ!」の略みたいじゃな。

roboko
ロボ子

博士、それはちょっと無理があります…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search