agent-link について
agent-linkは、AIコーディングエージェントのCLIを使うチーム向けに、双方向の連携を実現するMCPサーバーです。CLIを子プロセスとして起動し、並列タスクや追加の返信に対応します。セッションはメモリ上に保持されます。
主な機能
- 01対応するエージェントCLIを子プロセスとして起動
- 02複数エージェントの並列実行
- 03追加質問と返信の双方向交換
- 04利用可能なCLIと実行中セッションの一覧
- 05実行中のエージェントプロセスのキャンセル
活用シーン
- 01行き詰まったコーディングタスクへの別視点の依頼
- 02別のエージェントによるコード変更のレビュー
- 03エージェント間での調査と実装の分担
MCP 対応
MCPサーバーは、エージェントCLIの起動、返信、一覧表示、停止のツールを公開します。MCP対応クライアントからClaude Code、Codex、Gemini、Aiderなどのエージェントを連携できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cwd | string | いいえ | エージェントプロセスの作業ディレクトリ |
| task | string | はい | エージェントに送信するタスクの説明 |
| agent | string | はい | エージェント名(例: |
| model | string | いいえ | 使用するモデル(例:"o3"、"gpt-5.4"、"claude-sonnet-4"、"gemini-2.5-pro")。--model フラグを介して Agent CLI に渡されます。 |
| retry | boolean | いいえ | 失敗時に自動再試行します(デフォルト:false)。 |
| context | object | いいえ | 任意のタスクコンテキスト |
| context.diff | any | いいえ | git diff をコンテキストとして含めます。true = すべての変更、"staged" = ステージ済みの変更のみ、"unstaged" = 未ステージの変更のみ。 |
| context.error | string | いいえ | コンテキストとして含めるエラーメッセージ |
| context.files | array | いいえ | コンテキストに含める絶対ファイルパス |
| context.intent | string | いいえ | タスクの背後にある高レベルの意図または目標 |
| escalate | boolean | いいえ | 再試行時に思考レベルを自動的に引き上げます(デフォルト:false)。retry: true が必要です。 |
| thinking | string | いいえ | 思考/推論の深さのレベル(例:"low"、"medium"、"high"、"max")。エージェントの推論の深さを制御します。 |
| timeoutMs | integer | いいえ | タイムアウト(ミリ秒、デフォルト:3600000) |
詳細
agent-link-mcp
英語 | 韓国語
AI エージェント同士が双方向に連携するための MCP サーバーです。Claude Code、Codex、Gemini、Aider など、あらゆる AI コーディングエージェントの CLI を起動し、やり取りできます。
使用する場面
バージョン 0.5.2 では、Claude の JSON レスポンスの解析が修正され、返信の間も元のタスク/コンテキストと作業ディレクトリが維持されるようになり、キャンセルが実行中のプロセスに連動するようになりました。reply は、記録された会話を使って新しい CLI 呼び出しを開始します。プロバイダー側のセッションを再開するものではありません。同じセッションへの同時返信は拒否されます。kill_agent は終了を待機し、必要に応じて 5 秒後に強制終了します。サーバーのシャットダウン時には、実行中の子プロセスもキャンセルされます。セッションはメモリ上に保持されるため、サーバーを再起動すると失われます。
- バグで行き詰まっていますか? — エージェントが 2 回試して失敗したら、別のエージェントに新たな視点を求めましょう。
- セカンドオピニオンが必要ですか? — 別の AI モデルにコードレビューやアーキテクチャに関する助言を依頼できます。
- モデルごとの強みを活用 — 計画には Claude、実行には Codex、調査には Gemini を使いましょう。
- 並行作業 — 複数のエージェントを起動して、独立したサブタスクに同時に取り組ませましょう。
- ラバーダックデバッグ — あるエージェントに問題を別のエージェントへ説明させ、解決策を受け取りましょう。
使用例
行き詰まったときに助けを求める
メインのエージェントが同じ問題で何度も失敗していますか?別のエージェントに尋ねてみましょう。
# Claude Code is stuck on a TypeScript error it can't resolve.
# It spawns Codex for a second opinion:
spawn_agent("codex", "This TypeScript error keeps appearing. How do I fix it?", {
error: "Type 'string' is not assignable to type 'number'",
files: ["src/utils.ts"]
})
エージェント間のコードレビュー
別のモデルにエージェントのコード変更をレビューしてもらいましょう。
spawn_agent("claude", "Review these changes for bugs and edge cases", {
files: ["src/api.ts", "src/handler.ts"],
intent: "Code review before merge"
})
マルチエージェントパイプライン
エージェントが異なる段階を担当するパイプラインを構築しましょう。
# Agent 1: Research
spawn_agent("gemini", "Find the best approach for WebSocket reconnection")
# Agent 2: Implementation (using Agent 1's advice)
spawn_agent("codex", "Implement WebSocket reconnection with exponential backoff", {
files: ["src/ws-client.ts"]
})
# Agent 3: Review
spawn_agent("claude", "Review this implementation for production readiness", {
files: ["src/ws-client.ts"]
})
双方向の連携
エージェントから質問を返すこともできます。ホストが回答すると、作業が続行されます。
Host: spawn_agent("codex", "Add caching to the API layer")
Codex: [QUESTION] Should I use Redis or in-memory cache?
Host: reply("codex-a1b2c3", "Use Redis, we have it in our docker-compose")
Codex: [RESULT] Added Redis caching with 5-minute TTL...
目的
AI コーディングエージェントは、ときどき行き詰まります。あなたが待つのではなく、別のエージェントに助けを求めることができます。agent-link-mcp を使うと、MCP 互換のエージェントから他のエージェントの CLI を協力者として起動し、質問をやり取りして結果を受け取れます。これらはすべて、標準の MCP ツールを通じて行われます。
- ホスト側だけにインストール — この MCP サーバーが必要なのはホストエージェントだけです。起動されるエージェントは CLI の子プロセスにすぎません。
- 双方向 — ホストは起動したエージェントに質問でき、起動したエージェントからも質問を返せます。
- あらゆるエージェントに対応 — プロンプトを受け取り、テキストを返す CLI なら利用できます。Claude、Codex、Gemini、Aider 用のプロファイルが組み込まれています。
- マルチエージェント — 複数のエージェントを同時に起動して、並行して連携できます。
前提条件
MCP ホストの npx 環境を含め、Node.js 20 以降が必要です。エージェントの CLI には、個別の追加要件がある場合があります。
agent-link-mcp は、他の AI エージェントを CLI の子プロセスとして起動します。連携するエージェントの CLI をインストールし、認証しておく必要があります。
| エージェント | インストール | 認証 |
|---|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code | claude login |
| Codex | npm install -g @openai/codex | codex login |
| Gemini CLI | npm install -g @google/gemini-cli | gemini を実行し、サインインのプロンプトに従います |
| Aider | pip install aider-chat | OPENAI_API_KEY または ANTHROPIC_API_KEY を設定します |
利用する予定のものだけインストールすれば十分です。agent-link-mcp は、インストール済みの CLI を自動検出します。
インストール
# Claude Code
claude mcp add agent-link npx agent-link-mcp
# Codex
codex mcp add agent-link npx agent-link-mcp
# Any MCP client
npx agent-link-mcp
注: MCP サーバーをインストールする必要があるのは、作業中のエージェントだけです。他のエージェントは子プロセスとして起動されるため、agent-link-mcp は必要ありません。
ツール
spawn_agent
エージェントを起動し、タスクを送信します。
{
"agent": "codex",
"task": "Refactor this function for better performance",
"context": {
"files": ["src/utils.ts"],
"error": "TypeError: Cannot read property 'x' of undefined",
"intent": "Performance improvement"
},
"model": "o3",
"timeoutMs": 7200000
}
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
agent | string | 必須 | エージェント名("claude"、"codex"、"gemini"、"aider") |
task | string | 必須 | タスクの説明 |
context | object | — | 任意の { files, error, intent, diff }。diff: true を指定すると git diff の出力が含まれます。ステージ済みのものだけを対象にする場合は diff: "staged" を指定します。 |
cwd | string | cwd | エージェントプロセスの作業ディレクトリ |
model | string | — | 使用するモデル(例:"o3"、"gpt-5.4"、"claude-sonnet-4"、"gemini-2.5-pro")。--model フラグで渡されます。 |
thinking | string | — | 思考/推論の深さ。サポートされる値は、選択した CLI とモデルによって異なります。Claude:--effort、Codex:-c model_reasoning_effort、Aider:--reasoning-effort。 |
retry | boolean | false | 失敗時に自動で再試行します(最大3回)。 |
escalate | boolean | false | 再試行時に思考レベルを自動的に引き上げます。retry: true が必要です。 |
timeoutMs | number | 3600000 | タイムアウト時間(ミリ秒)。デフォルト:1時間。 |
次のいずれかを返します。
{ status: "done", agentId: "codex-a1b2c3", result: "..." }— タスクが完了しました{ status: "waiting_for_reply", agentId: "codex-a1b2c3", question: "..." }— エージェントから確認が必要です{ error: "...", agentId: "codex-a1b2c3" }— エラーが発生しました
spawn_agents
複数のエージェントを並行して実行します。すべての結果をまとめて返します。
{
"agents": [
{ "agent": "codex", "task": "Review for bugs", "context": { "diff": true } },
{ "agent": "claude", "task": "Review for security", "context": { "diff": true } }
],
"cwd": "/path/to/project"
}
{ summary: { total, succeeded, failed, waiting }, results: [...] } を返します。
reply
起動したエージェントからの質問に回答し、会話を続けます。
{
"agentId": "codex-a1b2c3",
"message": "Yes, you can remove the side effects"
}
kill_agent
実行中のエージェントセッションを中止します。
{
"agentId": "codex-a1b2c3"
}
list_agents
利用可能なエージェント CLI を一覧表示します。
{
"agents": [
{ "name": "claude", "command": "claude", "source": "auto", "available": true },
{ "name": "codex", "command": "codex", "source": "auto", "available": true },
{ "name": "gemini", "command": "gemini", "source": "auto", "available": false }
]
}
get_status
アクティブなエージェントセッションを取得します。
{
"sessions": [
{ "agentId": "codex-a1b2c3", "agent": "codex", "status": "waiting_for_reply", "startedAt": "..." }
]
}
仕組み
You (using Claude Code)
↓
"Ask Codex to help with this refactoring"
↓
Claude Code → spawn_agent("codex", task, context)
↓
agent-link-mcp server → spawns `codex` CLI as subprocess
↓
Codex processes the task...
↓
Codex: "[QUESTION] Should I remove the side effects?"
↓
agent-link-mcp → parses response → returns to Claude Code
↓
Claude Code → reply("codex-a1b2c3", "Yes, remove them")
↓
agent-link-mcp → re-invokes Codex with accumulated context
↓
Codex: "[RESULT] Refactoring complete. Here's what I changed..."
↓
Claude Code receives the result and continues working
設定
outputFormat: "json" を使用するカスタムプロファイルは、文字列の result フィールドを含む単一の結果オブジェクトを出力する必要があります(Claude の印刷モード形式)。is_error: true またはエラーの subtype は失敗として扱われ、メタデータは会話に含まれません。
自動検出
agent-link-mcp は、インストール済みのエージェント CLI を自動的に検出します。
| エージェント | CLI コマンド |
|---|---|
| Claude Code | claude |
| Codex | codex |
| Gemini | gemini |
| Aider | aider |
カスタムエージェント
設定ファイル ~/.agent-link/config.json でカスタムエージェントを追加します。
{
"agents": {
"codex": {
"command": "/usr/local/bin/codex",
"args": ["--full-auto"],
"promptFlag": null,
"outputFormat": "text"
},
"my-local-llm": {
"command": "ollama",
"args": ["run", "codellama"],
"promptFlag": null,
"outputFormat": "text"
}
}
}
AGENT_LINK_CONFIG 環境変数で設定ファイルのパスを上書きできます。
モデルの選択
model パラメーターを使って、起動するエージェントが使用するモデルを指定できます。
# Use a specific model for Codex
spawn_agent("codex", "Debug this issue", { model: "o3" })
# Use a specific model for Claude
spawn_agent("claude", "Review this code", { model: "claude-sonnet-4" })
モデル名は、エージェント CLI の --model フラグで渡されます。省略した場合、エージェントはデフォルトのモデルを使用します。
思考/推論の深さ
thinking パラメーターを使って、エージェントの推論の深さを制御できます。
# High reasoning for complex debugging
spawn_agent("codex", "Debug this race condition", { thinking: "high" })
# Max effort for Claude
spawn_agent("claude", "Architect a new auth system", { thinking: "max" })
| エージェント | フラグ | 値 |
|---|---|---|
| Claude | --effort | low、medium、high、max |
| Codex | -c model_reasoning_effort | モデルにより異なります。例:low、medium、high、xhigh |
| Aider | --reasoning-effort | low、medium、high |
省略した場合、エージェントはデフォルトの推論レベルを使用します。
タイムアウト
デフォルトのタイムアウトは1時間(3,600,000ms)です。呼び出しごとに上書きできます。
# 2 hour timeout for complex tasks
spawn_agent("codex", "Refactor the entire auth system", { timeoutMs: 7200000 })
会話プロトコル
起動したエージェントには、次の形式で応答するよう指示されます。
[QUESTION] ...— ホストエージェントからの確認が必要です[RESULT] ...— タスクが完了しました
エージェントがこの形式に従わない場合、出力全体が結果として扱われます。
開発
ローカルで npm ci、npm run build、npm test を実行します。テストではオフラインの Node.js フィクスチャを使用し、モデルプロバイダーには接続しません。CI は手動(workflow_dispatch)で実行し、利用可能なセルフホストランナーが必要です。プッシュやプルリクエストによって GitHub ホストのジョブが開始されることはありません。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。