Skip to main content
Glama

agent-link-mcp

npm version License: MIT

English | 한국어

MCP server for bidirectional AI agent collaboration. Spawn and communicate with any AI coding agent CLI — Claude Code, Codex, Gemini, Aider, and more.

When to Use

  • Stuck on a bug? — Your agent tried twice and failed. Let it ask another agent for a fresh perspective.

  • Need a second opinion? — Get code review or architectural advice from a different AI model.

  • Cross-model strengths — Use Claude for planning, Codex for execution, Gemini for research.

  • Parallel work — Spawn multiple agents to tackle independent subtasks simultaneously.

  • Rubber duck debugging — Have one agent explain the problem to another and get back a solution.

Related MCP server: personal-mcp

Use Cases

Get Help When Stuck

Your primary agent keeps failing on the same issue? Ask another agent:

# 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"]
})

Cross-Agent Code Review

Have another model review your agent's code changes:

spawn_agent("claude", "Review these changes for bugs and edge cases", {
  files: ["src/api.ts", "src/handler.ts"],
  intent: "Code review before merge"
})

Multi-Agent Pipeline

Build a pipeline where agents handle different stages:

# 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"]
})

Bidirectional Collaboration

Agents can ask questions back. The host answers, and work continues:

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...

Why

AI coding agents get stuck sometimes. Instead of waiting for you, they can ask another agent for help. agent-link-mcp lets any MCP-compatible agent spawn other agent CLIs as collaborators, exchange questions, and get results back — all through standard MCP tools.

  • One-side install — only the host agent needs this MCP server. Spawned agents are just CLI subprocesses.

  • Bidirectional — the host can ask questions to the spawned agent, and the spawned agent can ask questions back.

  • Any agent — works with any CLI that accepts a prompt and returns text. Built-in profiles for Claude, Codex, Gemini, and Aider.

  • Multi-agent — spawn multiple agents simultaneously for parallel collaboration.

Prerequisites

agent-link-mcp spawns other AI agents as CLI subprocesses. You need to install and authenticate the agent CLIs you want to collaborate with:

Agent

Install

Auth

Claude Code

npm install -g @anthropic-ai/claude-code

claude login

Codex

npm install -g @openai/codex

codex login

Gemini CLI

npm install -g @anthropic-ai/gemini-cli

gemini login

Aider

pip install aider-chat

Set OPENAI_API_KEY or ANTHROPIC_API_KEY

You only need the ones you plan to use. agent-link-mcp auto-detects which CLIs are installed.

Install

# 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

Note: Only the agent you're working in needs this MCP server installed. The other agents are spawned as subprocesses — they don't need agent-link-mcp.

Tools

spawn_agent

Spawn an agent and send it a task.

{
  "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
}

Parameter

Type

Default

Description

agent

string

required

Agent name ("claude", "codex", "gemini", "aider")

task

string

required

Task description

context

object

Optional { files, error, intent, diff }. diff: true includes git diff output. diff: "staged" for staged only.

cwd

string

cwd

Working directory for the agent process

model

string

Model to use (e.g. "o3", "gpt-5.4", "claude-sonnet-4", "gemini-2.5-pro"). Passed via --model flag.

thinking

string

Thinking/reasoning depth ("low", "medium", "high", "max"). Claude: --effort, Codex: -c reasoning_effort, Aider: --reasoning-effort.

retry

boolean

false

Auto-retry on failure (up to 3 attempts).

escalate

boolean

false

On retry, automatically increase thinking level. Requires retry: true.

timeoutMs

number

3600000

Timeout in ms. Default: 1 hour.

Returns one of:

  • { status: "done", agentId: "codex-a1b2c3", result: "..." } — task completed

  • { status: "waiting_for_reply", agentId: "codex-a1b2c3", question: "..." } — agent needs clarification

  • { error: "...", agentId: "codex-a1b2c3" } — something went wrong

spawn_agents

Run multiple agents in parallel. Returns all results together.

{
  "agents": [
    { "agent": "codex", "task": "Review for bugs", "context": { "diff": true } },
    { "agent": "claude", "task": "Review for security", "context": { "diff": true } }
  ],
  "cwd": "/path/to/project"
}

Returns { summary: { total, succeeded, failed, waiting }, results: [...] }.

reply

Answer a spawned agent's question and continue the conversation.

{
  "agentId": "codex-a1b2c3",
  "message": "Yes, you can remove the side effects"
}

kill_agent

Abort a running agent session.

{
  "agentId": "codex-a1b2c3"
}

list_agents

List available agent CLIs.

{
  "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

Get active agent sessions.

{
  "sessions": [
    { "agentId": "codex-a1b2c3", "agent": "codex", "status": "waiting_for_reply", "startedAt": "..." }
  ]
}

How It Works

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

Configuration

Auto-detection

agent-link-mcp automatically detects installed agent CLIs:

Agent

CLI Command

Claude Code

claude

Codex

codex

Gemini

gemini

Aider

aider

Custom agents

Add custom agents via config file at ~/.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"
    }
  }
}

Override config path with AGENT_LINK_CONFIG environment variable.

Model Selection

You can specify which model the spawned agent should use via the model parameter:

# 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" })

The model name is passed to the agent CLI via its --model flag. If omitted, the agent uses its default model.

Thinking / Reasoning Depth

Control how deeply the agent reasons with the thinking parameter:

# 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" })

Agent

Flag

Values

Claude

--effort

low, medium, high, max

Codex

-c reasoning_effort

low, medium, high

Aider

--reasoning-effort

low, medium, high

If omitted, the agent uses its default reasoning level.

Timeout

Default timeout is 1 hour (3,600,000ms). You can override per-call:

# 2 hour timeout for complex tasks
spawn_agent("codex", "Refactor the entire auth system", { timeoutMs: 7200000 })

Conversation Protocol

Spawned agents receive instructions to format their responses:

  • [QUESTION] ... — needs clarification from the host agent

  • [RESULT] ... — task completed

If the agent doesn't follow the format, the entire output is treated as a result.

License

MIT

Available Tools

6 tools
get_statusA
Read-only

Get the status of all active agent sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds the scope 'all active' but lacks further behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence that front-loads the verb and resource with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description adequately explains the tool's purpose; however, mentioning return format would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description doesn't need to augment schema; schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('status of all active agent sessions'), clearly distinguishing it from siblings like kill_agent or spawn_agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as list_agents, which might also provide status information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kill_agentA
Destructive

Terminate an active agent session and clean up its resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesSession ID of the agent to kill

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint=true. The description adds the behavioral detail of 'clean up its resources', but does not disclose additional traits such as whether the kill is graceful, requires specific permissions, or affects other sessions. With annotations present, the bar is lower, and the description adds some value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the key action and resource, no unnecessary words. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and no output schema, the description is adequate but does not mention return values or success/failure confirmation. For a destructive action, more context about what the cleanup entails or what the response looks like would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with a clear description for agentId ('Session ID of the agent to kill'). The description does not add any further meaning beyond what the schema already provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Terminate') and the resource ('active agent session'), and explicitly includes 'clean up its resources'. It is distinct from sibling tools like spawn_agent (create) and list_agents (list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, it does not suggest checking agent status with get_status before killing, nor does it mention that the action is irreversible. The description provides no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_agentsA
Read-only

List all known agents and their availability on this system.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and non-destructive. Description adds 'availability' detail, consistent with annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 8 words, front-loaded with core action. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no parameters, no output schema. Description adequately covers purpose; minor gap on 'availability' meaning, but sufficient for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (no parameters). Description adds no parameter info, but baseline is 3 as per rules. Adequate given no parameters exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'list' and resource 'all known agents', specifying output includes 'availability'. Distinguishes from siblings like spawn_agent (create) or kill_agent (destroy).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context indicating use to list agents; no explicit exclusions or alternatives needed due to the simple nature of the tool. Sibling names provide implicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

replyA

Reply to an agent that is waiting for clarification. Continues the conversation until the agent returns a result or asks another question.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesSession ID returned from spawn_agent
messageYesClarification or additional information to send to the agent

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by stating the tool continues conversation until the agent returns a result or asks another question. It does not contradict the readOnlyHint=false and destructiveHint=false annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short, front-loaded sentences with no wasted words. Every sentence provides essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity with 2 parameters and no output schema, the description adequately covers the interactive nature. However, it could mention error handling or preconditions for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema coverage is 100% with clear descriptions. The tool description does not add additional meaning beyond what's already in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Reply' and the resource 'agent waiting for clarification'. It distinguishes itself from sibling tools like kill_agent and spawn_agent by specifying the conversational continuation context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an agent is waiting for clarification but does not explicitly state when not to use it or provide alternatives. It lacks prerequisites or exclusion scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spawn_agentA

Spawn an AI agent to work on a task. Returns a question if the agent needs clarification, or a result when done.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory for the agent process
taskYesTask description to send to the agent
agentYesAgent name (e.g. "claude", "codex", "gemini", "aider")
modelNoModel to use (e.g. "o3", "gpt-5.4", "claude-sonnet-4", "gemini-2.5-pro"). Passed via --model flag to the agent CLI.
retryNoAuto-retry on failure (default: false).
contextNoOptional task context
escalateNoOn retry, escalate thinking level automatically (default: false). Requires retry: true.
thinkingNoThinking/reasoning depth level (e.g. "low", "medium", "high", "max"). Controls how deeply the agent reasons.
timeoutMsNoTimeout in milliseconds (default: 3600000)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds that the tool returns a question or result, indicating an interactive loop. However, given openWorldHint=true, it omits key behaviors like potential side effects (e.g., file creation, network access), concurrency, or lifecycle. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous information. The first sentence states the core action, the second clarifies the return behavior. Every phrase earns its place, and the structure is front-loaded with the primary function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers basic purpose and return type, but lacks details on result format, async behaviour (if any), timeout behavior, and how the agent's work is surfaced. Given the complex nested context parameter and absent output schema, additional clarity would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add parameter-specific details beyond what is already in the schema; it is generic. The schema already describes each parameter adequately, so the tool definition is acceptable but not enhanced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool spawns an AI agent to work on a task, and mentions the dual return types (clarification question or result). This directly distinguishes it from sibling tools like kill_agent, reply, and spawn_agents (the plural variant).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an agent is needed to autonomously perform a task, but provides no explicit guidance on when to choose this tool over alternatives like spawn_agents, nor when not to use it. No context or exclusion criteria are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spawn_agentsA

Spawn multiple AI agents in parallel. Each agent runs independently and results are returned together. Great for getting multiple opinions, parallel code reviews, or distributing subtasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory (shared for all agents)
agentsYesArray of agent tasks to run in parallel
timeoutMsNoTimeout per agent in ms (default: 3600000)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only, not destructive, and open-world. The description adds parallel execution but lacks detail on side effects or interaction with external systems.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with key action and parallel nature, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers purpose and use cases for a spawning tool with 3 parameters; absence of output schema is not critical since results returned together is mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters. Description does not add extra meaning beyond the schema for parameters like 'agents' or 'timeoutMs'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it spawns multiple AI agents in parallel and returns results together, distinguishing it from the singular spawn_agent sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly suggests use cases like parallel code reviews and distributing subtasks, but does not directly specify when not to use or list alternatives beyond implied distinction with spawn_agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.3.2
    • Removedget_status
    • Removedkill_agent
    • Removedlist_agents
    • Removedreply
    • Removedspawn_agent
    • Removedspawn_agents
  2. 2 tool updatesv0.5.0
    • Changedspawn_agent4 fields changed
      • addedInput schema / properties / context / properties / diff
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "enum": [
        +        "staged",
        +        "unstaged"
        +      ],
        +      "type": "string"
        +    }
        +  ],
        +  "description": "Include git diff as context. true = all changes, \"staged\" = staged only, \"unstaged\" = unstaged only."
        +}
      • addedInput schema / properties / escalate
        Added value: +{
        +  "description": "On retry, escalate thinking level automatically (default: false). Requires retry: true.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / retry
        Added value: +{
        +  "description": "Auto-retry on failure (default: false).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / thinking
        Added value: +{
        +  "description": "Thinking/reasoning depth level (e.g. \"low\", \"medium\", \"high\", \"max\"). Controls how deeply the agent reasons.",
        +  "type": "string"
        +}
    • Addedspawn_agents
  3. 5 tool updates
    • First observedget_status
    • First observedkill_agent
    • First observedlist_agents
    • First observedreply
    • First observedspawn_agent

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: spawn, spawn multiple, list, get status, reply to clarification, kill. No overlap between get_status and list_agents, and spawn_agent vs spawn_agents are differentiated by number of agents.

Naming Consistency4/5

Most tools follow verb_noun pattern (e.g., get_status, kill_agent, list_agents, spawn_agent, spawn_agents). 'reply' is a verb-only exception, but it's a common pattern for interactive tools and does not cause confusion.

Tool Count5/5

6 tools is well within the optimal 3-15 range, covering the core operations for managing AI agent sessions without being bloated or sparse.

Completeness4/5

The tool surface covers the full agent lifecycle: spawning (solo and parallel), listing, status checking, interactive dialogue (reply), and termination. Minor gaps like retrieving results from completed agents are handled by spawn/reply outputs, so no critical missing functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers