ClaudeArmy
Click on "Deploy 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., "@ClaudeArmyRefactor GarbageFire to be more modular, and add a Salesforce adapter to my Reporting Tool"
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.
🪖 ClaudeArmy
An MCP server that lets Claude orchestrate multiple Claude Code agents working autonomously across different projects.

What It Does
ClaudeArmy gives Claude (in the chat interface) the ability to spawn background Claude Code processes that work independently on coding tasks. Think of it as a chain of command:
You → give strategic direction
Claude (chat) → breaks it down and dispatches agents
Claude Code agents → execute autonomously, spawning their own sub-agents as needed
This means you can kick off work across multiple projects simultaneously, keep chatting normally, and check in on progress whenever you want.
Related MCP server: cc-agent
Tools
Tool | Description |
| Deploy a Claude Code agent to a project directory. Supports |
| Monitor status of all running/completed agents |
| Retrieve what an agent did and its full output |
| Detailed view of a lead agent and all its sub-agents |
| Stop a running agent gracefully |
| Clean up completed/failed tasks |
Setup
Clone this repo
npm installAdd to your Claude Desktop config:
Linux:
~/.config/Claude/claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
"claude-army": {
"command": "node",
"args": ["/path/to/claude-army/src/index.js"]
}Windows note: Use forward slashes in the path value (e.g.
"C:/Users/you/claude-army/src/index.js").
Restart Claude Desktop
Usage Examples
Single project task:
"Refactor GarbageFire's app.py into modular components"
Multi-project parallel work:
"Refactor GarbageFire to be more modular, and add a Salesforce adapter to my Reporting Tool"
Claude will dispatch separate agents to each project directory and let them work autonomously.
Check progress:
"How are the agents doing?"
Agent Teams
Use mode: "team" on dispatch_task to have the lead agent automatically decompose work and spawn specialized sub-agents that run in parallel.
How it works:
The lead agent analyzes the task and breaks it into focused subtasks
Each subtask is delegated to a sub-agent via Claude Code's
TasktoolSub-agents work in parallel, each with a well-defined scope
The lead agent synthesizes results once all sub-agents complete
Monitoring teams:
check_tasksshows a sub-agent summary (e.g. "3 sub-agents: 1 running, 2 completed")get_agent_teamgives a detailed tree view of the lead agent and every sub-agent, including status, runtime, and output previews
Configuration
Edit the constants at the top of src/index.js:
CLAUDE_BINARY- Path to your Claude Code binaryMAX_CONCURRENT_TASKS- Max simultaneous agents (default: 5)
Requirements
Claude Code installed and authenticated
Node.js 18+
Claude Desktop or any MCP-compatible client
Changelog
v0.4.1
Bump
@modelcontextprotocol/sdkto ^1.26.0, resolving 3 high severity supply chain vulnerabilitiesAdd
repositoryfield to package.json
v0.4.0
Agent team support: track sub-agents spawned via Claude Code Task tool
New
get_agent_teamtool: tree view of lead + all sub-agentscheck_tasksnow shows sub-agent summary for team operationsdispatch_taskgainsmodeparameter:solo(default) orteamCross-platform: fixed Windows binary (
claude.cmd) and signal handlingError messages now show platform-appropriate diagnostic commands
README: added setup paths for Linux, macOS, and Windows
v0.3.0
Fixed stream-json parsing to correctly handle assistant message content arrays
Staleness indicator:
check_tasksnow shows time since last agent activityBetter error surfacing: actionable messages for CLI not found, permission denied, and mid-run failures
Fixed output duplication in
get_task_outputDemo GIF added to README
v0.2.0
Real-time progress tracking via Claude Code's stream-json output
check_tasksnow shows recent agent activity (file reads, edits, bash commands) instead of just runtimeget_task_outputincludes a full progress timeline with timestampsStructured event parsing for tool use, assistant messages, and results
v0.1.0
Initial release
Core tools: dispatch_task, check_tasks, get_task_output, cancel_task, purge_tasks
Fire-and-forget architecture with background process management
Max 5 concurrent agents
stdio transport for MCP communication
License
MIT
Available Tools
6 toolscancel_taskA
Cancel a running Claude Code agent task. Sends SIGTERM to gracefully stop the agent.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses that SIGTERM is sent for graceful termination, which is useful, but it doesn't mention potential side effects, irreversibility, or the state of the task afterward.
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?
The description is two concise sentences with no filler. The verb and resource are front-loaded, making it immediately clear.
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?
Given the tool's simplicity (one required parameter, no output schema, no annotations), the description is adequately complete. It explains both the action and the mechanism. It could mention edge cases like 'task not found', but overall it's sufficient.
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 schema fully documents the task_id parameter with a description, and schema coverage is 100%. The tool description adds no additional parameter semantics, so the baseline of 3 is appropriate.
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 clearly states the tool cancels a running Claude Code agent task, with a specific verb and resource. It also notes the SIGTERM mechanism, distinguishing it from sibling tools like check_tasks, dispatch_task, and purge_tasks.
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?
The usage is implied: use this when a running task needs to be stopped. However, there is no explicit guidance about when not to use it or alternatives (e.g., purge_tasks for completed tasks), so it relies on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_tasksA
Check the status of all deployed Claude Code agents. Shows which tasks are running, completed, or failed. Use this to monitor progress of background agents.
| Name | Required | Description | Default |
|---|---|---|---|
| status_filter | No | Filter tasks by status (default: all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It mentions what statuses are shown (running, completed, failed), which is useful. However, it does not explicitly state that the operation is read-only/non-destructive, nor does it disclose any potential side effects, rate limits, or staleness considerations. This is a moderate gap for a monitoring tool.
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?
The description is concise at two sentences, front-loaded with the core purpose, then what it shows, then when to use it. No wasted words or redundant detail.
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?
This is a simple tool with one optional parameter and no output schema. The description covers the purpose, the content returned (statuses), and the intended use case. It is fully sufficient for an agent to understand and invoke the tool.
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 sole parameter status_filter is fully documented in the input schema, including its enum values and default. The tool description adds no extra meaning beyond what the schema already provides, so the baseline 3 applies.
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 clearly states the tool checks the status of all deployed Claude Code agents, which is a specific verb+resource combination. It distinguishes itself from siblings like get_task_output, cancel_task, and dispatch_task by focusing on status monitoring rather than output retrieval, mutation, or creation.
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?
The description explicitly says 'Use this to monitor progress of background agents,' providing a clear when-to-use scenario. It does not mention when not to use it or name alternative tools explicitly, but the sibling context makes the usage boundaries reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispatch_taskA
Deploy a Claude Code agent to work on a task in a specific project directory. The agent runs autonomously with full Claude Code capabilities including sub-agent spawning, file editing, bash execution, etc. Use this to delegate coding tasks to background agents. IMPORTANT: After dispatching, return to the conversation immediately. Do NOT call check_tasks or get_task_output unless the user explicitly asks for a status update.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'solo' (default) runs a single agent. 'team' instructs the lead agent to decompose the task and spawn specialized sub-agents that work in parallel, then synthesize results. | |
| task | Yes | Clear description of the task for the Claude Code agent to perform | |
| model | No | Optional model override (e.g. 'opus', 'sonnet'). Defaults to Claude Code's configured model. | |
| permission_mode | No | Permission mode for the agent. 'acceptEdits' auto-approves file edits. 'bypassPermissions' skips all checks (use carefully). | |
| working_directory | Yes | Absolute path to the project directory (e.g. /home/robbhimself/GarbageFire) |
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 that the agent runs autonomously, has capabilities like sub-agent spawning, file editing, and bash execution, and operates in the background. It also warns the caller to return immediately rather than poll for status. However, it does not detail the return value or potential side effects of bash execution.
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?
The description is compact and front-loaded, with four sentences that each add value. The important behavioral warning is clearly highlighted with 'IMPORTANT:'. No wasted words.
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?
The description provides strong context for a 5-parameter tool with no annotations and no output schema. It covers purpose, usage, capabilities, and async behavior. However, it omits what the dispatch call returns (e.g., task ID), which would be useful since there is no output schema and the user may need to reference the task later.
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?
Schema coverage is 100%, so the baseline is 3. The description does not add much parameter-specific semantics beyond the schema; it mentions 'specific project directory' and 'task' but the schema already describes these clearly. The 'mode' and 'permission_mode' enums are only covered in 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 clearly states the tool's purpose: 'Deploy a Claude Code agent to work on a task in a specific project directory' and 'Use this to delegate coding tasks to background agents.' It distinguishes this tool from sibling status/management tools by focusing on delegation, not checking or modifying tasks.
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 says when to use it ('Use this to delegate coding tasks to background agents') and gives clear when-not guidance: 'After dispatching, return to the conversation immediately. Do NOT call check_tasks or get_task_output unless the user explicitly asks for a status update.' This also indirectly names sibling alternatives check_tasks and get_task_output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_teamA
Get a detailed view of a lead agent and all sub-agents it has spawned. Use this when a task is using Claude Code agent teams to see the full picture of what each sub-agent is doing, their status, and output previews. More detailed than check_tasks for multi-agent operations.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID of the lead agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses that the tool provides 'status' and 'output previews' for each sub-agent, and promises a 'full picture.' However, it does not explicitly state that it is read-only or describe any side effects, error conditions, or limitations, leaving some gaps.
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?
The description is three sentences long, each with a distinct purpose: stating the action, providing usage context, and comparing to a sibling. No wasted words.
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 single-parameter getter with no output schema, the description provides sufficient orientation: it states the purpose, when to use, and what information is visible (status, output previews). It does not describe return format exactly, but the absence of an output schema is mitigated by this preview mention.
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 schema already provides a complete description for the single parameter (task_id as 'The task ID of the lead agent'), so the baseline is 3. The description adds little new semantic detail beyond reaffirming the lead agent context, which matches the schema exactly.
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 uses the specific verb 'Get' and clearly identifies the resource: 'a lead agent and all sub-agents it has spawned.' It also differentiates from sibling tool check_tasks by noting it is 'More detailed than check_tasks for multi-agent operations.'
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?
The description explicitly states when to use: 'Use this when a task is using Claude Code agent teams.' It also provides an alternative comparison: 'More detailed than check_tasks for multi-agent operations,' giving clear guidance on when to prefer this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_outputA
Retrieve the full output from a Claude Code agent task. Use this to see what the agent did, including its reasoning and actions taken.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID to retrieve output for | |
| tail_lines | No | Only return the last N lines of output (useful for long outputs). Default: all output. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It appropriately implies a read-only operation and adds value by explaining the output contents (reasoning, actions). However, it does not disclose any potential limitations, such as whether the output is truncated by default, whether it reflects only completed tasks, or any auth/rate-limit considerations. For a simple read-only tool, this is adequate but not exceptional.
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, no filler. The first sentence states the core purpose; the second gives a practical usage scenario. Every word earns its place.
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?
The tool is simple (2 params, no output schema, no nested objects). The description explains what the output contains (reasoning and actions) and when to use the tool, which is sufficient for an agent to decide and invoke correctly. It does not enumerate return types, but that is not essential given the description's clarity.
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 schema already provides 100% coverage for both parameters (task_id and tail_lines), including the default behavior for tail_lines. The description adds no additional parameter-specific context beyond reinforcing that the output is 'full,' which aligns with the schema's 'Default: all output.' Since the schema handles parameter semantics fully, baseline 3 is appropriate.
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 'Retrieve the full output from a Claude Code agent task' which clearly identifies the action (retrieve) and resource (task output). It distinguishes the tool from siblings like check_tasks (status) and dispatch_task (create) by focusing on output retrieval. The phrase 'including its reasoning and actions taken' further clarifies the scope of the output.
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?
The description provides a clear use case: 'Use this to see what the agent did.' This tells the agent when to employ this tool. It does not explicitly mention alternatives or exclusions, but the context is sufficient for a straightforward retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purge_tasksA
Clear completed/failed tasks from the task list. Optionally clear all tasks (cancels running ones).
| Name | Required | Description | Default |
|---|---|---|---|
| include_running | No | Also cancel and purge running tasks (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It explicitly reveals a key side effect: clearing all tasks cancels running ones. It also defines the default behavior (completed/failed only) and the optional behavior (all tasks). It does not mention reversibility or return values, but for a straightforward 'clear' operation this is reasonable. The disclosure of cancellation is a substantive behavioral detail beyond the name.
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?
The description is two sentences, front-loaded with the core purpose, and then the optional behavior. Every word contributes value; no filler or repetition of the tool name. It is concise yet complete for the tool's scope.
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 tool with one optional boolean parameter and no output schema or annotations, the description covers the essential context: what is cleared, under what conditions, and the cancellation side effect. It lacks explicit statements about irreversibility or return values, but these are not critical for a clear operation. It is adequately complete for an agent to invoke correctly.
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 schema has 100% coverage for the single parameter ('include_running' with its description). The tool description's mention of 'optionally clear all tasks (cancels running ones)' essentially restates the parameter description ('Also cancel and purge running tasks') without adding new information (e.g., default value, format, or edge cases). With high schema coverage, the baseline is 3, and the description does not elevate it.
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 clearly states the verb 'Clear' and the resource 'tasks from the task list', and specifies the default scope ('completed/failed') and the optional scope ('all tasks'). This distinguishes it from sibling tools like 'cancel_task' (which cancels a single running task) and 'check_tasks' (which presumably lists tasks). It is specific and unambiguous.
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?
The description implies usage: use this tool to purge completed/failed tasks, and optionally all tasks (canceling running ones). However, it does not explicitly contrast with alternatives (e.g., 'use cancel_task for individual running tasks') or state when not to use this tool. The usage context is implied but not explicit, so it falls short of a 4 but is above 'no 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.
6 tool updates
v0.4.1- First observed
cancel_task - First observed
check_tasks - First observed
dispatch_task - First observed
get_agent_team - First observed
get_task_output - First observed
purge_tasks
TDQS
Scored across 6 tools
The tools are mostly distinct: dispatch_task creates, check_tasks monitors overall status, get_task_output retrieves output, cancel_task stops, purge_tasks cleans up, and get_agent_team drills into team hierarchy. However, check_tasks and get_agent_team both report status, with get_agent_team being more detailed, so there is minor potential for misselection.
All tool names follow a consistent verb_noun pattern with underscores, such as check_tasks, get_task_output, and dispatch_task. The verbs are clear and related to task management, and the minor pluralization difference (task vs tasks) does not affect readability.
Six tools is well within the ideal range for a focused task-management server. Each tool corresponds to a distinct action in the agent lifecycle—dispatch, monitor, retrieve, cancel, purge, and team inspection—so none feel redundant or missing.
The server covers the core lifecycle of Claude Code agents: creation (dispatch_task), status monitoring (check_tasks, get_agent_team), output retrieval (get_task_output), cancellation (cancel_task), and cleanup (purge_tasks). Minor gaps include no explicit retry or update mechanism, and get_agent_team only applies to team-based tasks, but the primary workflows are covered.
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables multiple Claude Code agents to communicate, share messages, specs, and statuses, solving coordination problems across different workspaces.2MIT
- AlicenseAqualityDmaintenanceMCP server that spawns autonomous Claude Code agents in GitHub repos, enabling task delegation with persistent state, multi-step workflows, and job monitoring.47187 npm2Apache 2.0
- FlicenseAqualityFmaintenanceAn MCP server for coordinating multiple Claude Code sessions across related projects.11-
- AlicenseNot gradedqualityCmaintenanceAn MCP server that lets any MCP-capable agent spawn and drive Claude Code sessions — effectively turning Claude Code into an orchestratable sub-agent fleet.49 npmMIT