MCPとは
MCP(Model Context Protocol)は、AIアプリ(ChatGPTやClaudeなど)が外部システムとつながるための“共通の接続規格”です。
これにより、AIは外部のデータ(ファイル・DBなど)やツール(検索・計算など)、ワークフローにアクセスし、作業をこなせるようになります。
USB-C がデバイス同士を標準的につなぐのと同じように、MCP は AI と外部システムを標準的につなぐ“共通ポート”の役割を果たします。
- 参考資料
MCPのポイントを整理する
でも、ユーザーレベルだと知らなくてもいいところも多そうなので、とりあえず、AIに簡単にまとめてもらいました。
1. MCPは「LLMと外部ツールの通信プロトコル」
- WebSocketベース
- JSON-RPC に似た 双方向メッセージ形式
- 技術進化の系譜図(CORBA → SOAP → REST → JSON-RPC → MCP)
- LLM ⇔ MCPサーバー の間で
- tool list
- tool call
- response
がやり取りされる。
2. MCPサーバーが提供するのは「関数一覧とスキーマ」だけ
MCP側は:
- tool 名
- description
- input schema(JSON Schema)
- output 形式
を公開する。
例:
{
"name": "drive.list_files",
"description": "List files",
"inputSchema": {
"folderId": "string"
}
}
→ LLM はこれを読んで「関数として扱う」。
3. LLM の “tool call” は JSON で送られる
LLM が判断して MCPへ送る:
{
"type": "call_tool",
"name": "drive.list_files",
"arguments": {
"folderId": "abc"
}
}
MCPサーバーが外部APIを実行して返す:
{
"type": "tool_result",
"content": [...]
}
→ LLMのFunction callingを外部サーバーのツールまで呼べるようにするための取り組みと理解した。
4. MCPは「関数の実行」を標準化しているだけ
重要ポイント:
- OAuth管理
- APIエラー処理
- 外部サービスとの通信
- ページネーション
- キャッシュ
全部 MCPサーバー側の責務
LLMは「関数を呼ぶだけ」。
5. LLMは自然言語 → tool 呼び出しを “推測”で変換している
だから不安定になりやすい。
例:
「Driveのファイル一覧出して」
→ drive.list_files を呼ぶかどうかは LLM 次第。
tool description が弱いと暴走する。
6. 技術的限界(2025年現在)
- LLM の推論精度に強く依存
- MCP server 側の description が弱いと誤動作
- 公開ツールがまだ少ない
- 仕様は固いが、実装エコシステムが成熟していない
→ プロダクション用途はまだ慎重にすべき。
技術者が MCP を使うときの心得
✔ 1. ツールの “description と input schema” を鬼のように丁寧に書く
→ LLMの誤判断が劇的に減る。
✔ 2. LLM が暴走しやすい操作(削除・更新)は外す
→ read-only を基本に。
✔ 3. LLMの自由度を下げる
→ “どういう時にこのツールを使うべきか” を description に書く。
✔ 4. 外部サービス操作の本体は MCPサーバーに寄せる
→ 例外処理・再試行・OAuthはLLMに任せない。