O hirunewani blog

MCPサーバーの概観

Created at

MCPの仕様、SDKやサーバーの例、MCPのサポート状況、セキュリティ上の懸念、代替の可能性について。

MCPとは

MCP(Model Context Protocol)は、アプリケーションがLLM(大規模言語モデル)にコンテキストを提供する方法を標準化するオープンプロトコルです。

詳しくは、次の仕様を参照してください。

https://modelcontextprotocol.io/specification/2025-03-26

様々な方が色々な説明や比喩をしていますが、シンプルな仕様なので仕様を読んだ方が良いと思います。

MCP SDK

MCP ServerとMCP Clientの実装を容易にするSDKが公開されています。

MCPサーバー例

MCP自体はかなり単純なため、既に多くのMCPサーバーが個人/企業問わず提供されています。

MCPのサポート状況

次の表にあるように、ほとんどのツールがMCPを部分的にはサポートしています。 また表にはないですが、AmazonやGoogle、OpenAIのツールも既にMCPをサポートしています。

https://modelcontextprotocol.io/clients#feature-support-matrix

ただしツールがMCPをサポートしていると言った場合、そのサポートにはバラツキがあることには留意が必要です。例えば、次のような状況にあります。

  • クライアントとサーバー間の通信方法はstdioとSSE(現在はStreamable HTTP)が定義されていますが、両方または一方をサポートしているかはツールに拠ります。
  • サーバーの機能であるResources/Prompts/Tools、クライアントのSamplingなどは任意実装であるためツール毎にサポート状況が異なります。
  • 現在はOAuthを利用することになっていますが、 元々の仕様には認可の仕組みがなかったため、いくつかのツールは独自実装を行ってしまっています。

MCPのセキュリティ

MCPにより悪意あるコードを含めたりデータを攻撃者に送信させるような指示を埋め込む攻撃や、MCPサーバーへのコマンドインジェクションなど、セキュリティ上の懸念がいくつかあります。

MCPに認可の仕組みが入ったことで、特にリモートでMCPサーバーを利用するような場合の懸念は少し抑えられるようになったものの、 まだ認可の仕組みを導入したツール/サーバーも限られています。

また、特に個人開発者によるMCPサーバーの使い方などを見ると、ユーザーに多くの権限の許可を求めているものが多々見受けられます。利用には十分に注意してください。個人的にはClineなどのMCP Marketplaceからの自動インストールはかなり危険だと思っています。

まとめと代替の可能性

MCPは、かなりシンプルなものであり開発も導入も容易であるにも関わらず、LLMを強力に拡張することが出来ます。 一方で、まだ成長途中のプロトコルであり、セキュリティ上の懸念があることや、ツール間のバラツキがあることには留意が必要です。

MCPが覇権を握るという声もありますが、この理由により個人的には懐疑的です。 実際、既に代替が存在し、今後も代替案が登場する可能性が十分にあります。盲目的にならないように気を付けましょう。