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 サーバーへのコマンドインジェクションなど、セキュリティ上の懸念がいくつかあります。
- https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
- https://medium.com/data-science-in-your-pocket/mcp-servers-are-not-safe-bfbc2bb7aef8
- https://equixly.com/blog/2025/03/29/mcp-server-new-security-nightmare/
MCP に認可の仕組みが入ったことで、特にリモートで MCP サーバーを利用するような場合の懸念は少し抑えられるようになったものの、 まだ認可の仕組みを導入したツール/サーバーも限られています。
また、特に個人開発者による MCP サーバーの使い方などを見ると、ユーザーに多くの権限の許可を求めているものが多々見受けられます。利用には十分に注意してください。個人的には Cline などの MCP Marketplace からの自動インストールはかなり危険だと思っています。
まとめと代替の可能性
MCP は、かなりシンプルなものであり開発も導入も容易であるにも関わらず、LLM を強力に拡張することが出来ます。 一方で、まだ成長途中のプロトコルであり、セキュリティ上の懸念があることや、ツール間のバラツキがあることには留意が必要です。
MCP が覇権を握るという声もありますが、この理由により個人的には懐疑的です。 実際、既に代替が存在し、今後も代替案が登場する可能性が十分にあります。盲目的にならないように気を付けましょう。