AIエージェントがMCPサーバーを通してアプリケーションを操作する方法について調べた備忘録です。
※執筆をAIでサポートしてもらっています。
⸻
AIエージェントはどうやってアプリケーションを操作しているのか
― MCP(Model Context Protocol)を中心に理解する ―
はじめに
最近の AI エージェントは、
「質問に答える」だけでなく、アプリケーションを直接操作するようになってきています。
本記事は、
AIエージェントが、どのようにしてアプリケーションを操作しているのか
を調べた備忘録です。
特に MCP(Model Context Protocol) を軸に整理します。
⸻
LLM は「文字を出力するだけ」
まず重要な前提として:
• LLM(大規模言語モデル)は何も実行しない
• できるのは テキスト(トークン)を出力することだけ
{
"tool": "play",
"params": { ... }
}
これは 「命令文」 であって、
この時点では まだ何も起きていません。
⸻
実際に動かしているのは「エージェント」
LLMの出力を受け取って、
• パースする
• 適切なツールを選ぶ
• 実行する
この役割を担っているのが AIエージェント です。
エージェントは、
• LLM
• ツール実行ロジック
• 外部通信
をまとめた 実行主体 だと考えると理解しやすいです。
⸻
ツール実行方式はいろいろあるが、MCP が強い
ツール実行の方法には様々な方式があります:
• SDK直結
• 独自 RPC
• HTTP API
• OSC などのプロトコル
その中で最近よく使われているのが
MCP(Model Context Protocol) です。
⸻
MCPとは何か(超要約)
• エージェントとツールの 共通プロトコル
• JSON ベース
• ツール定義・実行・レスポンスを統一
重要なのは:
エージェントは MCP クライアントとして振る舞う
という点です。
⸻
エージェントと MCP サーバーの通信
エージェントは MCPクライアント として
MCPサーバー と通信します。
この通信方式としてよく使われるのが:
• STDIO(標準入出力)
• HTTP + SSE(Server-Sent Events)
STDIO の場合
• エージェントが MCP サーバーを子プロセスとして起動
• stdin にリクエストを書く
• stdout からレスポンスを読む
HTTP / SSE の場合
• エージェントが HTTP リクエストを送る
• MCP サーバーが SSE でイベント(結果)を返す
⸻
MCPサーバーはどうやってアプリを操作するのか
MCPサーバー自身は アプリケーションを操作する責任者 です。
方法はアプリによって異なります:
• 内部スクリプト
• ネイティブ API
• OSC / TCP / IPC
流れとしては:
エージェント
↓
MCPサーバー
↓
アプリケーションAPI
⸻
実行結果は「返り値」として戻る
アプリケーションは:
1. API を実行
2. 結果を MCPサーバーに返す
MCPサーバーはそれを:
• JSON のレスポンスとして
• エージェントに返す
つまり、
エージェントは「返り値」を受け取っているだけ
という、とても素朴な構造です。
⸻
アプリ内部に MCP サーバーがあるケースもある
Unity など一部のケースでは、
• アプリケーション内部で MCP サーバーが動いている
ことがあります。
この場合:
• MCPサーバー ⇄ アプリ間の通信は不要
• API 呼び出しは 同一プロセス内
になります。