mcpField
A
agent-link

agent-link

ローカル
github.com/mikusnuzAI・エージェント111 週間前に更新

agent-link について

agent-linkは、AIコーディングエージェントのCLIを使うチーム向けに、双方向の連携を実現するMCPサーバーです。CLIを子プロセスとして起動し、並列タスクや追加の返信に対応します。セッションはメモリ上に保持されます。

主な機能

  1. 01対応するエージェントCLIを子プロセスとして起動
  2. 02複数エージェントの並列実行
  3. 03追加質問と返信の双方向交換
  4. 04利用可能なCLIと実行中セッションの一覧
  5. 05実行中のエージェントプロセスのキャンセル

活用シーン

  1. 01行き詰まったコーディングタスクへの別視点の依頼
  2. 02別のエージェントによるコード変更のレビュー
  3. 03エージェント間での調査と実装の分担

MCP 対応

MCPサーバーは、エージェントCLIの起動、返信、一覧表示、停止のツールを公開します。MCP対応クライアントからClaude Code、Codex、Gemini、Aiderなどのエージェントを連携できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mikusnuz-agent-link": {
"command": "npx",
"args": [
"-y",
"agent-link-mcp"
]
}
}
}
起動コマンドnpx -y agent-link-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmagent-link-mcp0.5.3

ツール

6

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
cwdstringいいえエージェントプロセスの作業ディレクトリ
taskstringはいエージェントに送信するタスクの説明
agentstringはいエージェント名(例:
modelstringいいえ使用するモデル(例:"o3"、"gpt-5.4"、"claude-sonnet-4"、"gemini-2.5-pro")。--model フラグを介して Agent CLI に渡されます。
retrybooleanいいえ失敗時に自動再試行します(デフォルト:false)。
contextobjectいいえ任意のタスクコンテキスト
context.diffanyいいえgit diff をコンテキストとして含めます。true = すべての変更、"staged" = ステージ済みの変更のみ、"unstaged" = 未ステージの変更のみ。
context.errorstringいいえコンテキストとして含めるエラーメッセージ
context.filesarrayいいえコンテキストに含める絶対ファイルパス
context.intentstringいいえタスクの背後にある高レベルの意図または目標
escalatebooleanいいえ再試行時に思考レベルを自動的に引き上げます(デフォルト:false)。retry: true が必要です。
thinkingstringいいえ思考/推論の深さのレベル(例:"low"、"medium"、"high"、"max")。エージェントの推論の深さを制御します。
timeoutMsintegerいいえタイムアウト(ミリ秒、デフォルト:3600000)

詳細

agent-link-mcp

npm version License: MIT

英語 | 韓国語

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 Codenpm install -g @anthropic-ai/claude-codeclaude login
Codexnpm install -g @openai/codexcodex login
Gemini CLInpm install -g @google/gemini-cligemini を実行し、サインインのプロンプトに従います
Aiderpip install aider-chatOPENAI_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
}
パラメーター型デフォルト説明
agentstring必須エージェント名("claude"、"codex"、"gemini"、"aider")
taskstring必須タスクの説明
contextobject—任意の { files, error, intent, diff }。diff: true を指定すると git diff の出力が含まれます。ステージ済みのものだけを対象にする場合は diff: "staged" を指定します。
cwdstringcwdエージェントプロセスの作業ディレクトリ
modelstring—使用するモデル(例:"o3"、"gpt-5.4"、"claude-sonnet-4"、"gemini-2.5-pro")。--model フラグで渡されます。
thinkingstring—思考/推論の深さ。サポートされる値は、選択した CLI とモデルによって異なります。Claude:--effort、Codex:-c model_reasoning_effort、Aider:--reasoning-effort。
retrybooleanfalse失敗時に自動で再試行します(最大3回)。
escalatebooleanfalse再試行時に思考レベルを自動的に引き上げます。retry: true が必要です。
timeoutMsnumber3600000タイムアウト時間(ミリ秒)。デフォルト: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 Codeclaude
Codexcodex
Geminigemini
Aideraider
カスタムエージェント

設定ファイル ~/.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--effortlow、medium、high、max
Codex-c model_reasoning_effortモデルにより異なります。例:low、medium、high、xhigh
Aider--reasoning-effortlow、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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。