はじめに
昨年の今頃(2024末)に「MCPサーバー」という単語が多く耳に入ってきたのが記憶に新しいです。
しかし当時は私個人特に活用する場面も思い浮かばず「へぇ〜そんなの出たんだ」くらいにしか思っていませんでした。
そこからもしばらく、「MCP入門」「MCP再入門」のような記事が多く投稿され、MCPについて分かりやすく解説する記事か増えてきました。
しかし、それでもまだ実務で使うことがないので「AIと他システムのためのtype-cね」くらいのイメージしか持つことができませんでした。
時は2025年夏、ついに実務で現れる日がきました。
AIコーディングエージェントの登場です。 (ClaudeCode、Codexなどの登場)
AIコーディングエージェントと外部システムをMCPで連携させることで、AIが外部システムの情報を参照できるようになり、要件定義やコーディングの精度がより向上するのです。
この時にようやく初めてMCPという概念を学ばないとと思うようになったので、今回自己のアウトプットとして整理したいと思います!
MCPとは
「P」で終わっているところから勘の良い方は気づくかもしれませんが「プロトコル」です。
プロトコルとは「コンピュータ間の通信やデータ交換を円滑に行うための共通のルールや手順」を指し、MCP(Model Context Protocol)はAIアプリケーションを外部システムに接続するための共通のルールや手順、と捉えて良いと思います。
MCPクライアント
後述のMCPサーバーと接続する君です。
基本的にはAIを搭載したアプリケーションを指します。
今回ClaudeCodeを例にして進めます。
MCPサーバー
AIアプリケーションに特定の機能を公開する軽量なプログラムです。
「AIにウチのアプリのこの情報を参照してほしい!」となった際に、ウチのアプリ側でMCPサーバーを構築することで、MCPを通じてAI(MCPクライアント)が読み取ってくれるようになります。
例:ClaudeCodeにFigmaの情報を読み取ってほしい→Figam側がMCPサーバーを構築し、情報を公開!
みたいなイメージです。
Tool
公式サイトの説明によると
「LLMがアクティブに呼び出すことができ、ユーザーのリクエストに基づいていつ使用するかを決定する関数。ツールは、データベースへの書き込み、外部APIの呼び出し、ファイルの変更、その他のロジックのトリガーなどを実行できます。」
つまり、MCPサーバー上の関数、と捉えて良いと思います
Toolを定義することで、AIが代わりに旅行予約してくれたり、天気の情報を取りに行ってくれたりするようになります。
MCPクライアント〜MCPサーバーの通信の流れ
ClaudeCodeがMCPサーバーを活用する流れを整理します!
- ClaudeCode(MCPクライアント)はMCPサーバーから利用可能なToolのリストをリクエスト
- MCPサーバーは利用可能なToolを説明とともに返す
- ClaudeCodeはどのToolを使うかを決める
- ClaudeCodeは要求されたツール呼び出しをMCPサーバー経由で実行する
- ツールの結果がMCPサーバーからClaudeCodeに返される
- ClaudeCodeは返された結果を元にタスクを進める
この流れを見て思ったのが、AIのFunctionCallingのような機能と似たような流れだなぁと率直に感じました!
おわりに
最後まで読んでいただきありがとうございました!
MCPサーバーの実装まで踏み込んで記事にできれば良かったのですが、それはまた次回の宿題・・・ということにさせてください!
参考
