mcp-swarm-router
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-swarm-routerPlan a full-stack app and delegate subtasks to codex and claude-code."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-Swarm-Router
An MCP server that lets an LLM host (e.g. Claude Code) plan a large task, then delegate subtasks to local CLI agents based on their specialization — a "swarm router" for tools already installed on your machine.
Roster
id | specialization | CLI assumed | non-interactive invocation |
| Image generation & heavy tools |
| |
| UI/UX design & creative | Google Antigravity CLI ( |
|
| Hard coding & logic |
|
--sandbox workspace-write / acceptEdits / --dangerously-skip-permissions are there so
each CLI can actually write files without blocking on an approval prompt — none of these
processes have a TTY, so an unhandled prompt would hang until timeout_ms.
Edit src/registry.ts to add/remove agents or change how
each one is invoked.
Related MCP server: delegations-mcp
Tools
get_agent_roster— returns the roster above as JSON (id, specialization, description, resolved CLI command). Call this first to decide whichagent_namefits a subtask.delegate_task— spawnsagent_name's CLI inworkspace_pathwithprompt, waits for it to exit (or hittimeout_ms, default 15 min, max 1 hour), and returns{ exitCode, signal, stdout, stderr, timedOut, durationMs }. Output per stream is capped at ~5MB (further output is dropped andtruncatedis set).
There's also a plan-and-delegate MCP prompt that spells out the intended
workflow: call get_agent_roster → break the task into subtasks → confirm
the plan for anything large → run delegate_task per subtask → summarize
results.
Setup
npm install
npm run buildEach agent's CLI must be installed and reachable on PATH under the name in
src/registry.ts (codex, agy, claude). If your local install differs,
copy .env.example to .env (or set the vars in your shell / MCP client
config) to point at the real binary:
MCP_SWARM_CODEX_CMD=
MCP_SWARM_AGY_CMD=
MCP_SWARM_CLAUDE_CMD=Spawning goes through cross-spawn
rather than a shell, so Windows .cmd/.bat shims (npm global installs)
resolve correctly and the prompt text can't be interpreted as shell
metacharacters.
Register with an MCP client
{
"mcpServers": {
"swarm-router": {
"command": "node",
"args": ["C:/KERJAAN/mcp-swarm-router/dist/index.js"]
}
}
}Development
npm run dev # run src/index.ts directly via tsx
npm run build # compile to dist/
npm start # run the compiled serverAvailable Tools
2 toolsdelegate_taskDelegate TaskA
Spawns the named agent's CLI in workspace_path with the given prompt, waits for it to finish, and returns its stdout/stderr/exit code. Use get_agent_roster first to pick the right agent_name.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The task/instructions to hand to the agent's CLI. | |
| agent_name | Yes | Which agent to delegate to. One of: codex, agy, claude-code. See get_agent_roster for specializations. | |
| timeout_ms | No | Max time to wait for the agent process, in ms. Defaults to 15 minutes, capped at 1 hour. | |
| workspace_path | Yes | Absolute path to the working directory the agent CLI should run in. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the spawn-wait-return mechanism and the return payload (stdout/stderr/exit code), adding real behavioral detail beyond the tool name. However, it does not warn about potential side effects of running an arbitrary agent CLI in the workspace, which is an important unmentioned behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the definitive action and outcome, with the follow-up usage hint. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and moderate complexity, the description sufficiently covers purpose, return values, and prerequisite usage. It omits timeout failure behavior, but the timeout parameter's schema description partially addresses it. Overall, the context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description paraphrases how workspace_path and prompt are used but does not add semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('spawns') and resource ('agent's CLI'), and clearly distinguishes the tool from the sibling by describing execution rather than roster lookup. It explains the full lifecycle: spawn, wait, and return output/exit code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs the user to call get_agent_roster first to choose the correct agent_name, which provides clear usage context. It does not explicitly state when not to use this tool, but the sequencing guidance is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_rosterGet Agent RosterA
Returns the list of local agents available for delegation, each with its id and specialization. Call this before delegate_task to decide which agent_name fits a given subtask.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states the output (list with id and specialization) and implies a read-only operation via 'Returns'. It does not mention edge cases like empty roster or authentication, but for a simple getter the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, followed by usage guidance. Every word earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter list getter with no output schema, the description covers the return fields and the use case. It could briefly mention what happens if no agents are available, but the provided context is sufficient for most scenarios. The sibling relationship is clearly defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema coverage is trivially 100%. Per the rubric, 0 params gives a baseline of 4, and the description does not need to explain parameters. No additional info is necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Returns the list of local agents available for delegation', which is a specific verb and resource. It also mentions the returned fields (id and specialization), clearly distinguishing it from the sibling tool delegate_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Call this before delegate_task to decide which agent_name fits a given subtask.' This gives a clear when-to-use directive and names the alternative tool, providing unambiguous usage guidance.
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.
2 tool updates
v0.1.0- First observed
delegate_task - First observed
get_agent_roster
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one provides an inventory of available agents, the other executes a task with a specified agent. There is no overlap or ambiguity between them.
Both tool names follow a consistent verb_noun pattern (get_agent_roster, delegate_task), using snake_case and clear action verbs. The naming is uniform and predictable.
With only 2 tools, the set is on the thin side but still covers the core workflow of a router: discovering agents and delegating to them. It feels slightly sparse for a 'swarm' concept, but each tool is essential.
The tool pair covers the full delegation lifecycle needed: learn who is available, then execute a task. Missing features like parallel delegation or cancellation are minor gaps for a simple router implementation, and agents can work around them by calling delegate_task repeatedly.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
MCP server for agentverse documentation, generated by doc2mcp.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA lightweight MCP server that enhances AI agents with tools for codebase analysis, task delegation to sub-agents, multi-agent coordination through chatrooms, and project todo management.-
- FlicenseBqualityDmaintenanceAn MCP server that exposes a library of delegation prompts to orchestrate tasks between a primary LLM and specialized sub-agents. It enables the execution of self-contained, bounded tasks with built-in support for configuration discovery and project-specific delegation libraries.3-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that allows a planning agent to delegate tasks to executor agents (e.g., Claude Code, Aider) with bi-directional communication and real-time log streaming.1115AGPL 3.0
- AlicenseAqualityBmaintenanceLocal MCP server that exposes delegation tools for Codex, Claude, and Antigravity CLI, enabling an orchestrator agent to assign tasks to these sub-agents via non-interactive CLI commands.3MIT