cc-agent
Allows cloning GitHub repositories, creating branches, and managing workflows with multi-step plans and dependency enforcement.
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., "@cc-agentSpawn agent to add error handling to API endpoints in https://github.com/example/repo"
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.
cc-agent
Distill and delegate.
MCP server for spawning Claude Code agents in GitHub repos. Give Claude Code the ability to branch itself — clone a repo and kick off a sub-agent to work on it autonomously, with persistent state across MCP restarts.
Built by @Gonzih.
Quickstart
claude mcp add cc-agent -- npx @gonzih/cc-agentSet one of:
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-... # OAuth token (recommended)
ANTHROPIC_API_KEY=sk-ant-api03-... # API keyRestart Claude Code. You now have 13 new MCP tools.
Related MCP server: claude-mcp-bridge
MCP Tools
Tool | Description |
| Clone a repo, optionally create a branch, run Claude Code on a task |
| Check status of a specific job |
| Stream output lines from a job (supports offset for tailing) |
| List all jobs with status, recent tool calls, and exit info |
| Kill a running job |
| Write a message to a running agent's stdin mid-task |
| Total USD cost across all jobs, broken down by repo |
| Return the running cc-agent version |
| Spawn a dependency graph of agent jobs in one call |
| Auto-decompose a natural language goal into ordered stages and spawn all agents with stage-based dependency enforcement |
| Poll the status of a workflow created by |
| Return all wiki pages for a repo — structured knowledge auto-injected into every spawn_agent call |
| Return a single wiki page by name for a repo |
| Create or update a wiki page (markdown) for a repo |
| Delete a single wiki page for a repo |
| List all wiki page names for a repo |
| Save a named spawn config for repeated use with |
| List all saved profiles |
| Delete a named profile |
| Spawn a job from a saved profile with variable interpolation |
spawn_agent parameters
Parameter | Type | Required | Description |
| string | yes | Git repo to clone (HTTPS or SSH) |
| string | yes | Task prompt for Claude Code |
| string | no | Existing branch to check out after clone |
| string | no | New branch to create (e.g. |
| string | no | Per-job token override |
| boolean | no | Pass |
| number | no | Spend cap in USD (default: 20) |
| string | no | Session ID from a prior job's |
| string[] | no | Job IDs that must be |
| string | no | Token spend strategy: |
| boolean | no | If |
create_plan parameters
Parameter | Type | Required | Description |
| string | yes | High-level description of what this plan achieves |
| array | yes | Ordered list of steps to execute |
Each step in steps:
Field | Type | Required | Description |
| string | yes | Logical step ID (used for |
| string | yes | Git repo to clone |
| string | yes | Task prompt for Claude Code |
| string | no | New branch to create before running |
| string[] | no | Step IDs from this plan that must complete first |
| string | no | Token spend strategy for this step ( |
| boolean | no | If |
create_profile parameters
Parameter | Type | Required | Description |
| string | yes | Profile name (alphanumeric, dashes, underscores) |
| string | yes | Git repo to clone |
| string | yes | Task template — use |
| number | no | Default USD budget for jobs from this profile |
| string | no | Branch to check out after cloning |
| string | no | Human-readable profile description |
| string | no | Default effort level for all jobs spawned from this profile. |
| boolean | no | If |
spawn_from_profile parameters
Parameter | Type | Required | Description |
| string | yes | Name of the saved profile to use |
| object | no | Variables to interpolate into the task template |
| string | no | Use this task instead of the profile template |
| string | no | Override the profile's branch |
| number | no | Override the profile's default budget |
| string | no | Override the profile's default effort level for this spawn. |
| boolean | no | Override the profile's fast mode setting for this spawn. |
Usage examples
Basic agent
spawn_agent({
repo_url: "https://github.com/yourorg/yourrepo",
task: "Add error handling to all API endpoints. Open a PR when done.",
create_branch: "feat/error-handling",
max_budget_usd: 5
})
// → { job_id: "abc-123", status: "started" }
list_jobs()
// → [{ id: "abc-123", status: "running", recentTools: ["Read", "Edit", "Bash", ...] }]
get_job_output({ job_id: "abc-123", offset: 0 })
// → { lines: ["[cc-agent] Cloning...", "Reading src/api.ts...", ...], done: false }
send_message({ job_id: "abc-123", message: "Also update the tests." })
// → { sent: true }
cost_summary()
// → { totalJobs: 1, totalCostUsd: 1.23, byRepo: { "https://github.com/...": 1.23 } }Multi-step plan with dependencies
create_plan({
goal: "Refactor auth and update docs",
steps: [
{
id: "refactor",
repo_url: "https://github.com/yourorg/app",
task: "Refactor auth middleware to use JWT. Open a PR.",
create_branch: "feat/jwt-auth"
},
{
id: "docs",
repo_url: "https://github.com/yourorg/app",
task: "Update README to document the new JWT auth flow.",
create_branch: "docs/jwt-auth",
depends_on: ["refactor"]
}
]
})
// → { goal: "...", totalSteps: 2, steps: [{ stepId: "refactor", jobId: "abc-1", status: "cloning" }, { stepId: "docs", jobId: "abc-2", status: "pending" }] }Profiles for repeated tasks
// Save once:
create_profile({
name: "fix-issue",
repo_url: "https://github.com/yourorg/app",
task_template: "Fix issue #{{issue}}: {{title}}. Open a PR when done.",
default_budget_usd: 5
})
// Use many times:
spawn_from_profile({
profile_name: "fix-issue",
vars: { issue: "42", title: "Login broken on mobile" }
})Resume a prior session
// Get session ID from a completed job:
get_job_status({ job_id: "abc-123" })
// → { ..., session_id_after: "ses_xyz" }
// Resume it:
spawn_agent({
repo_url: "https://github.com/yourorg/app",
task: "Continue where you left off — finish the tests.",
session_id: "ses_xyz"
})Persistence
cc-agent v0.3.0+ stores all job state in Redis, which is auto-provisioned on startup — zero configuration needed.
Auto-provisioning
On startup, cc-agent tries to connect to Redis at localhost:6379. If unavailable:
Docker — runs
docker run -d --name cc-agent-redis -p 6379:6379 --restart=unless-stopped redis:alpineredis-server — if
redis-serveris on PATH, spawns it as a daemonIn-memory fallback — logs a warning and continues; jobs are not persisted across restarts
Once Redis is available, all job state, output, profiles, and plans survive MCP server restarts and are shared across all Claude Code sessions pointing at the same Redis instance.
Key schema
Key | Type | TTL | Contents |
| String (JSON) | 7 days | Full job record |
| List | — | Job IDs, newest first (capped at 500) |
| List | 7 days | Output lines (one entry per line) |
| String (JSON) | 30 days | Plan record with step→job mapping |
| String (JSON) | permanent | Profile config |
| Set | permanent | All profile names |
Disk fallback
When Redis is unavailable, cc-agent falls back to the original disk-based storage:
.cc-agent/jobs.json— job metadata.cc-agent/jobs/<id>.log— per-job output log~/.cc-agent/profiles.json— profiles
Existing disk profiles are automatically migrated to Redis on first startup with Redis available.
Job statuses
Status | Meaning |
| Waiting for |
| Cloning the repo |
| Claude Code is running |
| Completed successfully |
| Exited with an error (check |
| Cancelled by |
Tool call visibility
list_jobs returns recentTools — the last 10 tool names Claude called per job (e.g. ["Read", "Edit", "Bash", "Glob"]). get_job_output returns the full tool_calls array. This gives insight into what agents are actually doing during silent periods.
Budget control
Set max_budget_usd per job to cap spend. Default is $20. Claude Code is killed with SIGTERM when the budget is exhausted (exit code 143).
spawn_agent({ ..., max_budget_usd: 10 }) // up to $10 for this task
spawn_agent({ ..., max_budget_usd: 2 }) // quick/cheap taskAgent delegation pattern
The recommended mental model: you are the tech lead, agents are your team.
Spawn agents for any task touching a codebase (multiple files, running tests, opening PRs)
Do research, quick edits, and orchestration yourself
Always end agent prompts with the terminal steps:
gh pr create → gh pr merge → npm publish(or whatever ships the work)Monitor with
list_jobs+get_job_output, respawn if budget runs out
# Standard agent task prompt ending:
gh pr create --title "feat: ..." --body "..." --base main
gh pr merge --squash --auto
npm version patch && npm publish # if it's a libraryMCP config (claude.json)
{
"cc-agent": {
"command": "npx",
"args": ["@gonzih/cc-agent"],
"env": {
"CLAUDE_CODE_OAUTH_TOKEN": "sk-ant-oat01-..."
}
}
}How it works
spawn_agentcreates a job record (persisted to disk) and returns immediately with a job IDIn background:
git clone --depth 1 <repo>into a temp dirOptionally checks out an existing branch or creates a new one
Runs
claude --print --output-format stream-json --verbose --dangerously-skip-permissions --max-budget-usd <N> <task>Streams stdout/stderr into the job's output log (in memory + disk)
Tool calls are captured from the stream-JSON and stored in
tool_calls[]On exit: job marked done/failed, workdir cleaned up after 10 minutes
Jobs expire from memory after 1 hour (log file remains on disk)
Pending jobs are promoted automatically every 3 seconds when their dependencies complete
Environment variables
Variable | Description |
| Claude OAuth token or Anthropic API key |
| Claude OAuth token (alternative) |
| Anthropic API key (alternative) |
Requirements
Node.js 18+
claudeCLI:npm install -g @anthropic-ai/claude-codeGit
Related
Available Tools
47 toolsapprove_jobA
Approve a job that is pending approval due to an untrusted repo owner. Transitions the job from pending_approval to running.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID of the pending_approval job to approve |
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 discloses the state transition and the reason for pending approval, but does not mention side effects, authorization needs, or error conditions. For a simple approval action, this is adequate but not comprehensive.
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 short sentences, each conveying essential information. No unnecessary words or repetition. It is front-loaded with the primary action and context.
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), the description is nearly complete. It explains the condition for use and the result. However, it could mention what happens if the job is not in pending_approval state or if the user lacks permission.
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 description need not add much. The description for job_id in the schema is already descriptive, and the tool's description does not add significant new meaning. Baseline score 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 verb 'Approve' and the resource 'a job that is pending approval due to an untrusted repo owner', and specifies the state transition from pending_approval to running. It distinguishes from sibling tools like cancel_job or wait_for_job.
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 the tool should be used when a job is pending approval due to an untrusted repo owner, providing clear context. It does not explicitly mention when not to use it or suggest alternatives, but the context is sufficient for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_jobC
Cancel a running agent job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job 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 full burden of disclosing behavior. It only states the action without mentioning consequences (e.g., job state changes to 'canceled', resources freed), side effects, or whether the cancellation is reversible. For a cancellation operation, this minimal disclosure is insufficient.
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 a single, concise sentence that immediately conveys the core purpose. No extraneous words or structure issues.
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 single parameter, lack of output schema, and no annotations, the description is too sparse. It omits details like expected job state after cancellation, whether the call is synchronous or asynchronous, and error conditions. The simplicity of the tool does not fully excuse the lack of behavioral context.
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% with the single parameter 'job_id' fully described. The description adds no additional meaning beyond 'Job ID to cancel' already present in the schema. Since the schema is complete, a 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 action ('Cancel') and the resource ('running agent job'), making the purpose unambiguous. However, it does not clarify whether it applies only to currently running jobs or also to queued ones, which could cause ambiguity. It distinguishes from sibling tools like 'get_job_status' or 'list_jobs' by specifying cancellation intent.
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?
No guidance is provided on when to use this tool versus alternatives like 'wake_job', 'approve_job', or 'stop_job' (if exists). There is no mention of prerequisites (e.g., job must be running, user must have permissions) or conditions under which cancellation might fail. The description leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_learningsB
Clear all stored learnings for a namespace. Useful when starting fresh on a refactored codebase.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No | Namespace to clear learnings for (defaults to current namespace) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the tool as destructive ('Clear all...') but lacks details on consequences, reversibility, or permissions. With no annotations, the description should provide more transparency about side effects.
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 concise sentences, no redundant information, front-loads the core action.
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 is destructive, lacks context about post-state, confirmation, or constraints. The use case hint is helpful but insufficient for full understanding without annotations or output schema.
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 covers 100% with description for the only parameter. Tool description does not add additional meaning beyond what the schema already provides.
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?
Clearly states the action (clear) and resource (all stored learnings for a namespace). Differentiates from sibling 'get_learnings' by being the inverse operation, though not explicitly contrasted.
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?
Mentions a specific use case ('starting fresh on a refactored codebase'), implying when to use it. No explicit when-not-to-use or alternatives, but the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_issueC
Close a GitHub issue, optionally posting a comment.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | GitHub repo in owner/repo format | |
| comment | No | Comment to post when closing (optional) | |
| issue_number | Yes | Issue number to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool closes an issue and optionally posts a comment, but does not disclose permissions, reversibility, or behavior if the issue is already closed.
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 a single sentence that conveys the essential action without fluff. It earns its place, though it could include more context without being wordy.
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 presence of sibling issue tools, the description minimally distinguishes by verb but lacks details on outcomes, error states, or side effects. No output schema, so return behavior is unexplained.
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 baseline is 3. The description adds no additional meaning beyond the schema; it merely echoes the optional comment parameter.
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 action 'Close a GitHub issue' with an optional comment. It distinguishes from siblings like 'list_project_issues' or 'comment_on_issue' by the specific verb 'close'.
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?
No guidance is provided on when to use this tool versus alternatives like 'comment_on_issue' for only commenting, or 'work_on_issue' for other actions. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comment_on_issueB
Post a comment on a GitHub issue.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment body | |
| repo | Yes | GitHub repo in owner/repo format | |
| issue_number | Yes | Issue number to comment on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the basic action, omitting details like authentication, idempotency, or potential side effects.
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 single-sentence description is concise and front-loaded, but could be more informative without adding much length.
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 3 required parameters and no output schema, the description is adequate but leaves gaps in operational context (e.g., success/failure behavior).
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%, and the description adds no extra meaning beyond the schema's parameter descriptions. 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 clearly states the action ('Post') and the resource ('a comment on a GitHub issue'), distinguishing it from sibling tools like 'close_issue' and 'list_project_issues'.
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?
No guidance on when to use this tool versus alternatives like 'work_on_issue' or 'close_issue'. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cost_summaryB
Returns total USD cost across all jobs, broken down by repo.
| 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 bears full responsibility. It discloses the output format (total cost by repo) but does not reveal important behavioral details such as data freshness, scope (e.g., time range), caching behavior, or authentication requirements. For a read-only aggregation, this is insufficient.
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 a single sentence that conveys the essential purpose without any extraneous words. It is maximally concise.
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 simplicity of the tool (no parameters, no output schema, no annotations), the description still lacks context about filters, date ranges, or cumulative totals. An agent might benefit from knowing whether the cost includes all time or a default period.
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 has zero parameters, so there is no need for additional parameter descriptions. Per the rubric, zero parameters receive a baseline of 4.
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 that the tool returns total USD cost aggregated across all jobs and broken down by repository. This is a specific verb-resource combination that distinguishes it from potential cost-related siblings like get_cost_report.
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 no guidance on when to use this tool versus alternatives such as get_cost_report. It lacks context about prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_cronB
Create a new cron job that fires on a recurring interval and spawns an agent.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Task prompt to pass to the agent on each fire | |
| chat_id | No | Telegram chat ID for notification routing (optional, default 0) | |
| enabled | No | Whether the cron is active (optional, default true) | |
| repo_url | No | Repository URL to run the cron task on (optional) | |
| schedule | Yes | Human-readable schedule label, e.g. 'every 30m' | |
| interval_ms | Yes | Interval in milliseconds between fires |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions firing on interval and spawning an agent, but omits key details such as whether the cron starts immediately, persistence, relationship between interval_ms and schedule, or any authentication requirements.
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 a single sentence, very concise. However, it could be slightly more informative without losing brevity, e.g., including what the return value is.
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 has 6 parameters (3 required) and no output schema. The description does not explain the return value (e.g., cron ID or status), nor does it cover implications of setting interval_ms and schedule together. It feels under-specified for a creation 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?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional semantic meaning beyond the schema; it does not clarify the relationship between interval_ms and schedule or provide any usage tips for parameters.
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 'Create', the resource 'cron job', and defines its behavior: 'fires on a recurring interval and spawns an agent.' This distinguishes it from sibling tools like list_crons, delete_cron, and update_cron.
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?
No guidance is provided on when to use this tool versus alternatives such as update_cron. There is no mention of prerequisites, when not to use it, or the relationship with other cron management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_planB
Spawn a full dependency graph of agent jobs in one call. Each step can declare depends_on referencing other step IDs in this plan. Returns a summary with actual job IDs mapped to step IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | High-level description of what this plan achieves | |
| steps | Yes | Ordered list of steps to execute |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states 'spawns' and 'returns a summary' but does not clarify whether spawning is synchronous or asynchronous, cost implications, error behavior, or job lifecycle. Limited behavioral disclosure.
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 concise sentences front-load the primary action (spawn dependency graph) and add key features (dependencies and return format). No superfluous information.
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 complex tool with nested steps and no output schema, the description is brief. It communicates the core function but lacks detail on asynchronous behavior, result retrieval, and error handling. Adequate but not comprehensive.
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 baseline is 3. Description adds context on depends_on referencing and return mapping, but does not significantly enhance understanding beyond what the schema already provides for most parameters.
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?
Description clearly states it spawns a dependency graph of agent jobs in one call, with steps referencing each other via depends_on. This distinguishes it from sibling tools like spawn_agent (single agent) and generate_workflow (different abstraction).
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?
No explicit guidance on when to use this tool vs alternatives like spawn_agent, spawn_from_profile, or generate_workflow. No mention of prerequisites, limitations, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_profileA
Save a named spawn config (profile) for repeated use. Task templates support {{variable}} substitution.
// Create once: // create_profile('fix-bugs', 'https://github.com/me/app', 'Fix {{issue}}: {{title}}', 5) // Use many times: // spawn_from_profile('fix-bugs', { issue: '42', title: 'Login broken' })
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Profile name (alphanumeric, dash, underscore only) | |
| branch | No | Branch to checkout after cloning (optional) | |
| preamble | No | Custom workflow preamble to inject before every task spawned from this profile. Overrides the default preamble (optional). | |
| repo_url | Yes | Git repository URL to clone | |
| fast_mode | No | If true, enable fast mode by default for jobs spawned from this profile. Can be overridden at spawn time (optional). | |
| description | No | Human-readable description of this profile (optional) | |
| effort_level | No | Default effort level for jobs spawned from this profile. Can be overridden at spawn time (optional). | |
| task_template | Yes | Task description template; use {{varName}} for substitution | |
| default_budget_usd | No | Default USD budget for jobs spawned from this profile (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It describes variable substitution and the save action but does not disclose overwrite behavior, idempotency, or side effects like requiring authentication, 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 front-loaded with purpose, uses only three sentences plus a concise code example, every line adds value with no 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 9 parameters and no output schema, the description covers the main functionality, usage pattern, and template feature, but could mention potential overwrite behavior for full completeness.
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?
With 100% schema coverage, the description adds value beyond schema by illustrating usage with concrete examples and explaining the variable substitution mechanism, though the schema already documents parameters thoroughly.
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 'Save a named spawn config (profile) for repeated use' with a specific verb and resource, and distinguishes from sibling tools like spawn_from_profile and list_profiles by showing the create-then-use pattern.
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 shows the workflow with 'Create once / Use many times' examples, directing the agent to use spawn_from_profile for execution, providing clear context on when to use this tool vs. its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_cronB
Delete a cron job by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| cron_id | Yes | Cron job ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral transparency. It states 'delete' implying a destructive action, but provides no details about side effects (e.g., what happens to running jobs), prerequisites, or permissions.
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?
A single sentence that efficiently conveys the tool's purpose without any waste. 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?
Given the tool's low complexity (one required parameter, no output schema), the description is minimally adequate. However, it lacks details about the result of deletion or any confirmations.
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%, and the schema already describes cron_id. The description adds no additional meaning beyond the schema, so a baseline score 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 action (delete) and the resource (cron job), with the identifier method (by ID). It differentiates well from sibling tools like create_cron, update_cron, and list_crons.
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?
No guidance on when to use this tool or alternatives. For example, it doesn't mention that deletion is irreversible or that users should first list crons to get IDs. Sibling tools are listed but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_profileB
Delete a named job profile.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Profile name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a destructive action but does not disclose side effects (e.g., impact on dependent jobs), error handling, or permission requirements. With no annotations, the description carries the full burden of transparency and falls short.
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 a single, concise sentence with no wasted words. It is front-loaded and immediately communicates the action and target.
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 one-parameter tool, the description provides the minimum necessary information. However, it lacks context on what happens when the profile does not exist, is in use, or other edge cases, which would be helpful for an agent.
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 description coverage is 100% (the 'name' parameter has a description), so the description adds no additional meaning. Baseline score of 3 is appropriate as the schema already documents the parameter adequately.
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 'delete' and the resource 'job profile', making it easy to understand the tool's purpose. However, it does not elaborate on what a 'job profile' is, relying on the tool name and context.
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?
No usage guidelines are provided. The description does not indicate when to use this tool over alternatives (e.g., list_profiles or create_profile), nor does it mention prerequisites or scenarios where deletion is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_wiki_pageB
Delete a single wiki page for a repo.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page name to delete | |
| repo_url | Yes | Repository URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose whether deletion is irreversible, requires special permissions, or has side effects. For a destructive action, this is insufficient.
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?
Description is extremely concise (one sentence) and front-loaded with the action. 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?
Simple tool with only two parameters. Description covers the basic action but lacks behavioral context (e.g., permanence, response). No output schema, but tool is straightforward.
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% and both parameters are described. Tool description adds no extra meaning beyond the schema, so baseline score 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?
Description clearly states the verb 'Delete', resource 'wiki page', and scope 'for a repo'. Distinguishes from sibling tools like get_wiki_page or update_wiki_page.
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?
No guidance on when to use this tool versus alternatives (e.g., update_wiki_page). Does not mention prerequisites or conditions like permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docker_psA
List currently running cc-agent Docker containers. Shows container name, status, and uptime.
| 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 that it lists running containers and shows specific fields (name, status, uptime). This is a simple read operation with no side effects, so no further behavioral disclosure is necessary.
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 extremely concise with two sentences, front-loading the key action and resource. Every word adds value without 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?
Given the tool's simplicity (no parameters, no output schema), the description is complete: it specifies what is listed and what information is shown. No additional context is required.
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 no parameters, so baseline is 4. The description does not need to add parameter information, and the schema coverage is 100% trivially.
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 a specific verb 'List' and clearly identifies the resource as 'currently running cc-agent Docker containers'. It adds detail on what information is shown, and there are no sibling tools with similar purpose, so differentiation is inherent.
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 clearly states when to use the tool: to list running cc-agent Docker containers. It provides no explicit when-not or alternatives, but given the uniqueness of this tool among siblings, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_jobsA
Export all job records as JSONL or JSON for statistical analysis. Each record includes id, status, repo_url, task (truncated to 500 chars), started_at, finished_at, exit_code, output_lines count, score, and duration_seconds. Use this to pull job traces, compute success rates, and study failure modes.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back to export (default: 7) | |
| format | No | Output format: 'jsonl' (one record per line) or 'json' (array). Default: 'jsonl' | |
| status | No | Filter by status: 'done' | 'failed' | 'cancelled' | 'running' (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It specifies output fields but does not disclose potential performance implications, rate limits, authentication needs, or behavior for empty results. The description is moderately transparent but lacks deeper 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action and output formats, and efficiently conveys purpose, output fields, and usage without fluff.
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?
With no output schema and 3 parameters, the description provides adequate context: output formats, fields, and intended use. It does not cover pagination, error handling, or limits, but is sufficient for a straightforward export 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?
Schema coverage is 100%, so the input schema already describes all three parameters. The description adds no additional meaning beyond what is in the schema, merely restating formats and fields. 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 clearly states the tool exports job records as JSONL or JSON for analysis, listing included fields. It distinguishes from siblings like list_jobs and search_jobs by focusing on bulk export for statistical analysis.
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 pull job traces, compute success rates, and study failure modes,' providing clear usage context. However, it does not explicitly exclude alternatives or mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_workflowA
Auto-decompose a high-level goal into an ordered sequence of stages, then spawn all jobs with stage-based dependency enforcement. Returns immediately with workflow_id, job_ids, and the stage breakdown. Use get_workflow_status to poll progress. Each stage only starts after ALL jobs in the prior stage complete — guaranteeing ordered execution even across 100s of agents.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | High-level natural language goal to decompose into workflow stages (e.g. 'build, test, and deploy X') | |
| repo_url | Yes | Git repository URL for all spawned agents (https://github.com/owner/repo) | |
| max_stages | No | Maximum number of sequential stages (default 8, hard cap 20) | |
| agent_model | No | Model override for spawned agents (optional) | |
| agent_driver | No | Driver override for spawned agents (optional, e.g. 'claude', 'aider') | |
| max_agents_per_stage | No | Maximum number of parallel agents per stage (default 3) | |
| max_budget_per_agent | No | Maximum USD budget per spawned agent (default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavioral aspects: it is asynchronous (returns immediately), enforces ordered execution ('Each stage only starts after ALL jobs in the prior stage complete'), and scales to '100s of agents'. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. First sentence states action and return values, second provides polling guidance and execution behavior. All information is front-loaded.
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 no output schema, the description explains return values (workflow_id, job_ids, stage breakdown) and covers how to handle the async result. All 7 parameters are described with additional context on defaults and caps.
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 baseline is 3. The description adds value by specifying default values for max_stages (8), max_agents_per_stage (3), max_budget_per_agent (5), and a hard cap of 20 for max_stages, which are not 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: 'Auto-decompose a high-level goal into an ordered sequence of stages, then spawn all jobs with stage-based dependency enforcement.' It uses specific verbs and resources, and the unique decomposition and ordering differentiates it from siblings like spawn_agent.
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?
Provides explicit usage guidance: 'Returns immediately... Use get_workflow_status to poll progress.' and explains stage execution ordering. However, it does not explicitly state when to use this tool vs alternatives like spawn_agent or swarm_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cost_reportA
Longitudinal cost breakdown for research budget tracking. Returns grouped cost summary with total USD spent, job count, avg cost per job, and avg score. Useful for tracking spending by repo, day, or outcome.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back to include (default: 30) | |
| group_by | No | Group by 'repo' | 'day' | 'status' (default: 'repo') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully conveys it is a read-only report tool (returns grouped cost summary). It does not mention permissions or side effects, but the context makes the behavior clear.
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 with no fluff; the first sentence defines purpose and output, the second adds context. 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?
For a report tool with two optional parameters and no output schema, the description fully covers what it does, what it returns, and when to use it. No gaps remain.
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%, but the description adds value by explaining the output fields (total USD, job count, etc.) and the meaning of grouping options, going beyond the schema's parameter descriptions.
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 it is a 'Longitudinal cost breakdown for research budget tracking' and specifies the exact output (total USD, job count, avg cost per job, avg score). It differentiates from the sibling tool 'cost_summary' by emphasizing longitudinal grouping and specific fields.
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 explains it is 'useful for tracking spending by repo, day, or outcome', which implies usage context. However, it does not explicitly contrast with the sibling 'cost_summary' or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_outputA
Get output lines from a running or finished job. Use offset to paginate.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned by spawn_agent | |
| offset | No | Line offset to start from (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses that the tool works for both running and finished jobs and mentions pagination via offset, which are useful. However, it does not describe the return format, behavior for invalid job IDs, or whether output is truncated.
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 short sentences, front-loaded with the verb and resource. No redundant words, very concise.
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?
There is no output schema, so the description should explain the return value more. It mentions 'output lines' but not format (e.g., array of strings) or pagination limits. Adequate but not complete.
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% with both parameters described. The description adds a brief usage hint ('Use offset to paginate') but does not provide additional meaning beyond the schema descriptions. 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 clearly states the verb 'Get' and resource 'output lines from a running or finished job', and it distinguishes from sibling tools like get_job_status or list_jobs which deal with different aspects of jobs.
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 no guidance on when to use this tool versus alternatives such as get_job_status or list_jobs. It only mentions pagination but does not explain when not to use or give context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusA
Get the current status of a spawned agent job. For waiting until completion, prefer wait_for_job (zero-poll) or subscribe to the Redis pub/sub channel cca:job:done:{job_id} for instant notification.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned by spawn_agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states it returns status but does not explain the nature of the status (e.g., simple string, object, possible values). Minimal but adequate.
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 purpose, no wasted words. Efficient and 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?
For a simple 1-param tool with no output schema, description covers purpose and usage guidelines. Missing details on return format, but sufficient for agent decision.
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 already covers the single parameter (job_id) with description 'Job ID returned by spawn_agent'. Description adds no further semantics beyond that.
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?
Description clearly states 'Get the current status of a spawned agent job' with a specific verb and resource, and distinguishes from siblings like wait_for_job and get_job_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?
Explicitly suggests alternatives for waiting (wait_for_job, Redis pub/sub channel), providing clear when-to-use versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_learningsA
Return accumulated learnings for a repo or namespace. Learnings are written by agents at the end of each job. Use this to understand what prior agents have discovered.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | No | Repo key to query, e.g. 'gonzih/cc-agent'. Takes precedence over namespace when provided. | |
| limit | No | Maximum number of learnings to return (default 10) | |
| namespace | No | Namespace to query (fallback when repo is not provided; defaults to current namespace) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses that learnings are written by agents at end of each job, implying a read-only query. But it lacks details on authorization, rate limits, or data freshness. Adequate but not thorough.
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 with zero wasted words. The purpose and usage hint are front-loaded, making it easy to scan.
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?
No output schema exists, so description should hint at return format. It states 'accumulated learnings' but does not describe structure (e.g., array of objects with fields). Nonetheless, the tool is simple and the description suffices for basic understanding.
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% with parameter descriptions already provided. The description adds no new parameter semantics beyond restating 'repo or namespace'. Baseline score 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?
Description clearly states the verb 'return', resource 'accumulated learnings', and scope 'repo or namespace'. It distinguishes from sibling 'clear_learnings' by indicating this is a retrieval operation.
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 'Use this to understand what prior agents have discovered', giving a clear when-to-use context. However, it does not mention when not to use or exclude alternatives like 'clear_learnings'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logsA
Return the last N lines of the cc-agent log file (~/.cc-agent/logs/cc-agent.log). Default 100, max 500.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Number of log lines to return (default 100, max 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly indicates a read operation (returns log lines) and specifies constraints (default 100, max 500). However, it does not disclose what happens if the log file is missing or if there are fewer lines, nor any side effects. It is adequate for a simple 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 a single sentence containing all essential information: action, resource path, defaults, and limits. No unnecessary words. Front-loaded with the verb and outcome.
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 parameterless read tool, the description covers the core functionality and parameter constraints. It lacks mention of error cases (e.g., missing file) or output format, but given no output schema and the tool's simplicity, it is nearly complete.
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 description coverage is 100%, so the schema already documents the 'lines' parameter thoroughly. The description adds no new information beyond what is in the schema (default and max are repeated). 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 verb 'Return', the resource 'last N lines of the cc-agent log file', and specifies the exact file path. It is specific and distinguishes this tool from siblings, none of which are log-related.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, expected use cases (e.g., debugging), or when not to use it. The description simply states what it does without contextualizing its usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pubsub_statusA
Debug: show all active Redis pub/sub channels and subscriber counts. Use to diagnose chat sync issues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It uses 'Debug' and 'show' to indicate a read-only, non-destructive operation. Could be more explicit about safety, but the phrasing adequately implies no side effects.
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?
Extremely concise: one sentence with the action and use case. The word 'Debug' front-loads the intent. 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?
Given the tool has no parameters and the output is straightforward (channels and subscriber counts), the description provides sufficient context for selection. The lack of output schema is mitigated by the clear description of what the tool shows.
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?
No parameters exist, so schema coverage is 100%. The description adds nothing about parameters, but for zero-parameter tools, a baseline of 4 is appropriate as there are no semantics to clarify.
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?
Clearly states the verb 'show' and the resource 'all active Redis pub/sub channels and subscriber counts'. The purpose is well-distinguished from siblings like 'get_logs' and 'get_version' by focusing on chat sync diagnosis.
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 when to use: 'Use to diagnose chat sync issues'. While it doesn't mention when not to use or alternatives, the single-purpose context is clear enough for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swarm_statusA
Poll the status of a swarm created by swarm_task. Returns goal, status (running_subs | synthesizing | done | failed), sub_job counts, and synthesis_job_id once spawned.
| Name | Required | Description | Default |
|---|---|---|---|
| swarm_id | Yes | Swarm ID returned by swarm_task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses that the tool is a poller (safe to call repeatedly), returns status with enumerated values, sub_job counts, and a synthesis_job_id. It does not mention rate limits or error handling, but as a read-only getter, the behavioral expectations are sufficiently clear.
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 a single sentence that front-loads the primary action and efficiently lists all return fields. There is no redundant or unnecessary information; 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?
For a tool with one parameter and no output schema, the description covers the purpose, input source, and all return fields (goal, status, counts, synthesis_job_id). It could mention potential errors (e.g., invalid swarm_id), but overall it is sufficiently complete for the tool's simplicity.
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 with a clear description for swarm_id. The tool description adds that the ID is 'returned by swarm_task,' which provides helpful context but does not add significant meaning beyond what the schema already offers.
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 action ('Poll the status of a swarm') and the specific resource ('created by swarm_task'). It lists the return fields, including exact status values, which distinguishes it from sibling tools like get_job_status that operate on individual jobs.
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 when to use the tool—after creating a swarm with swarm_task—and the polling context. It does not explicitly state when not to use it or name alternatives, but the reference to the sibling tool swarm_task provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionA
Returns the running cc-agent MCP server version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It correctly indicates a read-only operation ('returns') and no side effects. However, it does not mention potential network calls, caching, or error behavior. Given the tool's simplicity, this is sufficient but leaves a small gap.
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 a single, front-loaded sentence of 8 words. Every word is essential. No wasted verbiage; it is optimally concise for the information conveyed.
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 adequately communicates the tool's purpose. However, with no output schema, it could be improved by specifying the return format (e.g., 'Returns a string with the version number'). As is, it is complete enough for most agents but leaves a minor gap in expectations.
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 no parameters, and the schema coverage is 100%. The description does not need to add parameter information. A baseline of 4 is appropriate as the description is not penalized for missing param details that don't exist.
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 a specific verb ('returns') and resource ('running cc-agent MCP server version'), clearly distinguishing the tool from over 40 siblings. It directly states what the tool does without ambiguity.
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?
While the description implies the tool is for retrieving version information, there is no explicit guidance on when to use it versus alternatives, nor any exclusions or prerequisites. For a simple tool this is minimally viable, but lacks proactive context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wikiA
Return all wiki pages for a repo. Wiki pages are structured knowledge injected automatically into every spawn_agent call for the repo. Use this to inspect what knowledge is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| repo_url | Yes | Repository URL, e.g. 'https://github.com/gonzih/cc-agent' |
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 adds context about wiki pages being 'injected automatically into every spawn_agent call,' which is helpful, but it does not disclose potential side effects, errors, or authorization needs.
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 containing no fluff: the first states the primary function and the second provides additional context and a usage suggestion. It is front-loaded and concise.
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 parameter, no output schema), the description covers the basic purpose and context. However, it omits details about the return format and does not distinguish from sibling list_wiki_pages, leaving some gaps.
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 single parameter (repo_url) has 100% schema description coverage with an example. The description adds no extra meaning beyond that, 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 'Return all wiki pages for a repo,' which is a specific verb+resource. However, it does not differentiate from the sibling tool 'list_wiki_pages,' which likely performs the same function, causing some ambiguity.
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 suggests using the tool to 'inspect what knowledge is stored,' which implies a use case. It does not provide explicit guidance on when not to use it or compare it to alternatives like list_wiki_pages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wiki_pageA
Return a single wiki page by name for a repo.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page name to retrieve | |
| repo_url | Yes | Repository URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It states basic behavior but does not specify return format, error handling, or whether page name is case-sensitive. Minimal but not misleading.
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 a single concise sentence that immediately states the action and resource. No redundant words, perfectly front-loaded.
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?
No output schema exists, and the description does not specify what is returned (page content? metadata?). Given sibling tools and lack of output structure, the description is somewhat incomplete for agent to handle the response.
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 parameters are already documented. The description adds no extra meaning beyond 'by name for a repo'—no details on format, constraints, or examples. Baseline 3, no extra value.
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 specific verb 'Return' and resource 'a single wiki page by name for a repo'. It distinguishes this tool from siblings like list_wiki_pages (multiple pages) and get_wiki (possibly entire wiki).
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 does not provide guidance on when to use this tool vs alternatives (e.g., list_wiki_pages for all pages, get_wiki for full wiki). Usage is implied but no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_statusA
Poll the status of a workflow created by generate_workflow. Returns goal, stage breakdown, per-step job IDs and statuses.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_id | Yes | Workflow ID returned by generate_workflow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description indicates a polling operation but does not disclose side effects, rate limits, or safety beyond the implied read-only nature. It adds minimal behavioral context beyond the basics.
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 delivering the core purpose and return value with no unnecessary 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 simple polling tool with one parameter and no output schema, the description fully covers what the tool does, when to use it (after generate_workflow), and what it returns (goal, stage, per-step details).
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% for the single parameter. The description adds helpful context by specifying the source of workflow_id ('returned by generate_workflow'), linking the tools together.
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 polls workflow status and lists the return fields (goal, stage, per-step job IDs/statuses). It distinguishes from sibling get_job_status by targeting workflows.
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 polling usage via 'Poll the status' and emphasizes it is for workflows from generate_workflow, but does not explicitly state when not to use it or compare with alternatives like wait_for_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_active_reposA
List all active namespaces/repos with job counts and recent activity. Each namespace = one project column in the UI.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the transparency burden. It discloses that the tool returns a list with job counts and recent activity, implying a read-only, non-destructive operation. However, it does not mention pagination, rate limits, or permission requirements.
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 with no wasted words. The first sentence conveys the core action and output, and the second provides useful context about the UI mapping. It is front-loaded and efficient.
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 zero parameters, no output schema, and no annotations, the description is complete for a simple list tool. It tells the agent what it returns (active repos with job counts and recent activity) and how it maps to the UI, leaving no obvious gaps.
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?
There are no parameters, so the baseline is 4. The description adds no parameter information because none exists, and it correctly implies the tool has no inputs.
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 lists active namespaces/repos with job counts and recent activity. It also provides a specific mapping to the UI ('each namespace = one project column'), distinguishing it from sibling tools that focus on jobs, profiles, or other entities.
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?
No guidance is given on when to use this tool versus alternatives. The description only states what the tool does, without mentioning exclusions, prerequisites, or comparison to siblings like list_jobs or get_job_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cronsA
List all scheduled cron jobs for the current namespace.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description indicates a read-only operation via 'list', and the scope 'current namespace' adds context, but lacks details on authorization or results.
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 a single concise sentence, front-loaded with the verb, with no unnecessary 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?
Given zero parameters and no output schema, the description covers the essential purpose and scope, but would benefit from indicating the return type (e.g., a list of cron objects).
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?
With zero parameters and 100% schema coverage, the description adds no parameter-specific info, but the explicit mention of 'current namespace' provides context beyond the empty 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 lists all scheduled cron jobs for the current namespace, using a specific verb and resource, and distinguishes it from sibling tools like create_cron and delete_cron.
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 when listing cron jobs in the current namespace, but does not explicitly mention when not to use it or suggest alternatives, though the resource type is unique.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_driversA
List all available agent drivers and their status (binary found / API key configured). Use this to check which drivers are ready to use before calling spawn_agent with agent_driver.
| 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 describes the output format (binary found / API key configured) but does not mention any side effects, permissions, or rate limits. As a simple list tool, this is adequate but minimal.
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, both front-loaded with purpose and usage. 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?
Given no output schema, the description partially explains return values. It could be more detailed about the exact fields or format, but for a simple list tool it is mostly complete.
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?
With 0 parameters and 100% schema coverage (empty), the description adds value by specifying the returned data fields, which the schema does not.
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 lists all available agent drivers and their status, specifically mentioning 'binary found / API key configured'. It distinguishes from siblings by linking to spawn_agent.
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 to use this before calling spawn_agent, providing clear context and a specific action to take after checking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsA
List all agent jobs (running, done, failed, cancelled). To wait for a specific job, use wait_for_job or subscribe to cca:job:done:{job_id} on Redis.
| Name | Required | Description | Default |
|---|---|---|---|
| min_score | No | Only return jobs with score >= this value (0.0–1.0). Unscored jobs are excluded when this filter is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It states the tool lists jobs but provides no additional behavioral details like permissions, side effects, or pagination. A 3 is adequate for a simple read operation but leaves 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?
Two sentences with no wasted words. First sentence states purpose, second gives usage guidance. Perfectly concise for a simple list tool.
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 single optional parameter and no output schema, the description is mostly complete for basic usage. It could mention return format or pagination, but the guidance on alternatives is helpful.
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% with one parameter already described. The description does not add any information about the min_score parameter, so it does not improve on the schema. 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 uses a specific verb 'List' and resource 'all agent jobs', and enumerates the statuses included (running, done, failed, cancelled). It distinguishes from sibling tools like wait_for_job by suggesting alternatives.
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 when to use this tool (to list jobs) and when to use alternatives (wait_for_job or Redis subscription for waiting). This provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_model_ratingsA
Returns the content of ~/.cc-agent/model-ratings.jsonl as a structured JSON array. Used to monitor which open models (routed via Ollama) are performing well. Rating and notes fields are null until filled in by the operator.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses behavioral traits: it reads a file (non-destructive), returns a JSON array, and notes that rating/notes fields are null until filled by the operator. This informs the agent about the tool's read-only nature and data structure, though it doesn't mention error handling (e.g., if file doesn't exist).
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 with no wasted words. The first sentence front-loads the return value and source, the second adds purpose and data behavior. Highly concise.
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 list tool with no parameters and no output schema, the description covers the return format and purpose. It is complete enough for the agent to understand what the tool does and what it returns, though it doesn't specify if the file could be empty or missing.
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 and schema description coverage is 100% (empty schema). Per guidelines, 0 parameters baseline is 4. The description adds no parameter meaning since none exist, which 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 it returns the content of a specific file as a structured JSON array, used for monitoring model performance. The verb 'returns' and resource 'model-ratings.jsonl' are specific, but the description does not explicitly differentiate from sibling list tools, though they are in different domains.
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 context ('used to monitor which open models are performing well') but lacks explicit guidance on when to use this tool versus alternatives, or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notificationsA
Return the last 20 notification messages sent by the coordinator for the current namespace.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: limit of 20 messages, from coordinator, scoped to current namespace. It could further clarify the content of each message (e.g., fields returned), but it is transparent for a simple read operation.
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?
A single sentence that is front-loaded with the action and succinctly conveys the essential details. No unnecessary words 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 tool with no parameters, no output schema, and no annotations, the description adequately covers purpose, limit, source, and scope. It could optionally mention typical use cases, but it is complete enough for an agent to use 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?
There are zero parameters, and schema coverage is 100% (empty). The description adds context by explaining the namespace scope and what is returned, meeting the baseline of 4 for no-parameter tools.
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 explicitly states the verb 'Return' and the resource 'notification messages', specifying the limit of 20 and the source 'coordinator for the current namespace'. This clearly distinguishes it from other list tools like list_jobs.
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?
No guidance is provided on when to use this tool vs alternatives such as list_jobs or get_pubsub_status. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_profilesA
List all saved named job profiles, including built-in profiles. Call this before spawn_from_profile to discover what profiles are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description explains the tool's scope (all saved named profiles including built-in). It doesn't detail return format or side effects, but for a simple list tool this is adequate.
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 with no fluff. Action and context are front-loaded, and every word is necessary.
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 no parameters and no output schema, the description fully covers the tool's functionality and use case.
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?
No parameters exist, so schema coverage is 100%. The description adds context beyond the schema by explaining the purpose of the list.
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 lists all saved named job profiles, including built-in ones. It uses specific verb 'list' and resource 'profiles', and distinguishes from sibling 'spawn_from_profile'.
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 'Call this before spawn_from_profile to discover what profiles are available', providing clear usage context and directing to an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_issuesC
List GitHub issues for a repository using the gh CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | GitHub repo in owner/repo format | |
| state | No | Issue state filter (default: open) | |
| labels | No | Filter by labels (optional) | |
| assignee | No | Filter by assignee login (optional). Uses gh --assignee flag; the returned JSON field is 'assignees' (plural). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden of disclosing behavioral traits. It only mentions 'using the gh CLI' but omits details like authentication requirements, rate limits, what happens when a repo does not exist, pagination, or output format. This is insufficient for an agent to predict tool behavior accurately.
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 a single, front-loaded sentence that efficiently conveys the core purpose. It contains no fluff or redundant information. However, it is so brief that it omits valuable context, preventing a higher score.
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 has 4 parameters and no output schema, the description should explain return format, pagination, or error handling. It provides none of this. The schema descriptions cover parameter meanings, but overall contextual completeness for agent decision-making is lacking.
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 has 100% description coverage, so the baseline is 3. The tool description adds no additional meaning to the parameters; it merely restates the purpose. Thus, it does not improve parameter understanding beyond what the schema already provides.
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 action (list) and resource (GitHub issues for a repository). It avoids tautology and provides specific context about using gh CLI. However, it could be more precise by indicating the scope (e.g., all issues vs. filtered) to better distinguish from sibling tools.
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 does not provide any guidance on when to use this tool versus alternatives (e.g., other list tools or GitHub issue actions). There is no mention of prerequisites, when not to use it, or how it compares to similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_token_statusA
List the status of all configured OAuth tokens (CLAUDE_TOKENS env var). Shows which token is currently active and how many are configured. Useful for diagnosing token rotation issues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It correctly indicates a read-only listing operation and references the environment variable. Could be improved by noting no side effects, but sufficient as is.
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?
Three concise sentences, front-loaded with purpose, no fluff. Every sentence provides distinct information.
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 parameterless listing tool with no output schema, the description fully explains purpose, usage context, and behavioral details. Sibling tools are diverse but unrelated; no gaps remain.
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?
No parameters (schema coverage 100%), so baseline is 4. Description adds value beyond schema by explaining output semantics (active token, count). No contradiction.
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 lists the status of all configured OAuth tokens, specifying the source (CLAUDE_TOKENS env var) and output details (active token, count). It is distinct from siblings, which are unrelated.
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 useful for diagnosing token rotation issues. No siblings overlap, so no exclusion needed. Lacks explicit when-not-to-use, but context is clear for a simple listing with no parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wiki_pagesB
List all wiki page names for a repo.
| Name | Required | Description | Default |
|---|---|---|---|
| repo_url | Yes | Repository URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states what the tool does without disclosing any behavioral traits. It does not mention whether it's read-only, requires authentication, or has any side effects. For a tool with no annotations, more transparency is needed.
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 a single sentence that is front-loaded and concise. Every word serves the purpose with no waste.
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 simplicity of the tool (lists names), the description is minimally adequate. However, no output schema is provided, and the description does not mention the output format (e.g., list of strings) or potential limitations like pagination. More detail would improve completeness.
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 description coverage is 100% (one parameter with description 'Repository URL'). The tool description adds no additional meaning beyond what the schema already provides, so 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 clearly states the tool lists all wiki page names for a repo. It uses a specific verb (list) and resource (wiki page names), and the scope is explicit. This distinguishes it from siblings like get_wiki_page (retrieves a page) and update_wiki_page (modifies).
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 no guidance on when to use this tool versus alternatives, such as get_wiki or other wiki-related tools. No when/when-not or context is given, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsA
Find jobs by content of task prompt. Returns matching jobs with a task snippet showing match context. Useful for finding all jobs that involved a specific tool, repo, or task type.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back to search (default: 30) | |
| query | Yes | Search term to look for in task prompts (case-insensitive) | |
| status | No | Filter by status: 'done' | 'failed' | 'cancelled' | 'running' (optional) |
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 discloses that the tool returns matching jobs with a task snippet showing match context, which is a key behavioral trait. However, it does not explicitly state that the operation is read-only, non-destructive, or mention any specific permissions or rate limits.
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 consists of two concise sentences. The first sentence states the primary purpose and output. The second provides usage context. Every sentence adds value, and there is no redundancy or fluff.
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 search tool with three parameters and no output schema, the description provides the essential context: what it searches (task prompts), what it returns (matching jobs with snippets), and when to use it (finding jobs by specific tool/repo/type). It lacks mention of result ordering, pagination, or limits, but overall is sufficient for effective use.
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 description coverage is 100%, so baseline is 3. The tool description does not add additional semantic information beyond the schema for the parameters. The schema already provides adequate descriptions for query, days, and status, so the description does not need to elaborate further.
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?
Description clearly states 'Find jobs by content of task prompt' with a specific verb (find) and resource (jobs by task prompt). It implies differentiation from list_jobs by introducing content-based search, and provides concrete usage examples like finding jobs involving a specific tool or repo.
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 clear context for when to use this tool: 'Useful for finding all jobs that involved a specific tool, repo, or task type.' This helps guide the agent toward appropriate use cases. However, it does not explicitly mention when not to use it or refer to alternative tools among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageA
Send a message to a running agent's stdin. Use this to give the agent corrections, new information, or updated instructions mid-task.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID of the running agent | |
| message | Yes | The message to send to the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the tool writes to stdin mid-task, but does not detail behavioral traits like multiple calls, interruption, or return 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: action then purpose. No redundant information. Front-loaded and efficient.
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?
No output schema, but the tool is simple. Description explains input and use case. Missing details on return value or error handling, but acceptable given tool simplicity.
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 covers 100% of parameters. Description adds marginal context ('running agent' vs 'agent') but does not significantly extend beyond the parameter descriptions.
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 specific verbs and resources: 'Send a message to a running agent's stdin'. It clearly distinguishes from siblings, as no other tool sends input to a running agent.
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?
States when to use: 'to give the agent corrections, new information, or updated instructions mid-task'. Does not explicitly list exclusions or alternatives, but the context is clear given sibling tools like cancel_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_job_scoreA
Set a quality score (0.0–1.0) on a completed job. Used by evaluator agents in evolutionary branching plans to record how well each variant performed.
| Name | Required | Description | Default |
|---|---|---|---|
| score | Yes | Score from 0.0 to 1.0 | |
| job_id | Yes | Job ID to score | |
| reason | No | Optional reason or explanation for the score |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It notes the score range (0.0-1.0) and implies the job must be completed, but does not disclose whether the score can be overwritten, what happens if the job is not completed, or other behavioral traits like idempotency.
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 concise sentences that are front-loaded with the core action and context. No unnecessary words 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?
Given the tool's simplicity (3 parameters, no output schema), the description covers purpose, usage context, and parameter range. It could mention error conditions or prerequisites, but overall is complete enough for an agent to use 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?
Schema coverage is 100%, so the schema already describes all parameters adequately. The description adds context about the tool's purpose but does not augment parameter meanings beyond the schema's descriptions. 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 clearly states the action (Set a quality score), resource (completed job), and context (used by evaluator agents in evolutionary branching plans). It distinguishes itself from sibling tools, none of which perform scoring.
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 mentions the intended users (evaluator agents) and scenario (evolutionary branching plans), providing clear context. However, it does not explicitly state when not to use or list alternatives, though no alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spawn_agentA
Spawn a Claude Code agent on a GitHub repository.
WORKFLOW: agent clones repo → creates its own branch → implements → tests → commits → pushes → opens PR → merges PR → publishes.
IMPORTANT: Always set create_branch: false. The agent creates its own branch internally with git checkout -b. Setting create_branch: true will cause a clone failure because the branch doesn't exist on remote yet.
BRANCH PARAM WARNING: Only pass branch for already-existing remote branches (e.g. to resume work on a branch that was previously pushed). For new branches, omit branch entirely — include git checkout -b <name> in the task steps instead. Passing a branch that does not exist on the remote will cause an immediate clone failure ('fatal: Remote branch not found').
Parameters:
repo_url: GitHub repo URL (https://github.com/owner/repo)
task: Full task description. A workflow preamble is auto-injected before your task.
create_branch: ALWAYS false. The agent manages its own branch.
branch: Existing remote branch to checkout (see BRANCH PARAM WARNING above)
claude_token: Optional Claude API token override
| Name | Required | Description | Default |
|---|---|---|---|
| goal | No | LoopJob: verifiable intent — what 'done' looks like. Required when completion_criteria is set. Injected into the quality eval agent prompt. | |
| task | Yes | Task description to pass to Claude Code. A workflow preamble is auto-injected before this task. | |
| model | No | Model override for this job (e.g. 'claude-sonnet-4-5'). Defaults to CC_AGENT_DEFAULT_MODEL env var or 'claude-sonnet-4-5'. | |
| branch | No | Existing remote branch to checkout after cloning. Only pass this for branches that already exist on the remote. DO NOT pass a new branch name here — it will cause clone failure ('fatal: Remote branch not found'). New branches must be created by the agent via git checkout -b inside the task. | |
| chat_id | No | Discord/Telegram chat ID to include in the completion notification payload. When set, cc-discord routes the notification back to the originating channel. | |
| repo_url | Yes | Git repository URL to clone (https or ssh) | |
| fast_mode | No | If true, inject /fast at session start to enable fast mode (faster output, same model). Default: false. | |
| depends_on | No | Job IDs that must be done before this job starts. Job will be queued as pending until all dependencies complete. | |
| session_id | No | Session ID to resume from a previous job (use sessionIdAfter from a prior job). Passes --continue to Claude CLI. | |
| smoke_test | No | Shell command to run as a cheap pre-check before the full task. If it exits non-zero or times out, the job fails immediately. Example: 'npm test -- --testPathPattern=smoke 2>&1 | tail -5' | |
| agent_model | No | Model override for the selected driver (e.g. 'qwen2.5-72b-instruct', 'kimi-k2', 'gpt-4o'). Optional. | |
| no_preamble | No | If true, no preamble is injected — the raw task is passed directly to the agent. Overrides custom_preamble. | |
| ollama_host | No | Ollama host URL (default: 'http://localhost:11434'). Only used when ollama_model is set. | |
| agent_driver | No | Which agent driver to use. One of: claude (default), aider, openai, qwen, kimi, deepseek, pi, gemini, amp, codex. Defaults to 'claude' (Claude Code). gemini requires GEMINI_API_KEY, amp requires AMP_API_KEY, codex requires OPENAI_API_KEY. | |
| claude_token | No | Claude OAuth token or Anthropic API key to use for this job (optional — falls back to server env) | |
| effort_level | No | Token spend strategy. Maps to Claude Code's /effort command injected at session start. 'low' = minimal tokens, fast and cheap. 'high'/'xhigh'/'max' = more thorough, higher cost. 'auto' = let the model decide. Default: unset (Claude Code default). | |
| ollama_model | No | If set, route Claude Code through Ollama using this model name (e.g. 'nemotron-3-nano', 'deepseek-r1:7b'). Sets ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY=ollama, and CLAUDE_MODEL env vars. | |
| create_branch | No | ALWAYS false. The agent creates its own branch with git checkout -b. Setting this to a branch name will cause a clone failure because the branch does not exist on remote yet. | |
| max_budget_usd | No | Maximum USD budget for this Claude Code session (optional, default 20) | |
| max_iterations | No | LoopJob: maximum number of worker iterations before declaring loop_exhausted. Default 3. Hard cap 3. | |
| openai_api_key | No | API key override for OpenAI-compatible drivers. Falls back to OPENAI_API_KEY / driver-specific env var. | |
| quality_rubric | No | LoopJob: rubric injected into the quality eval agent. Describes what good output looks like. If omitted, quality gate is skipped. | |
| custom_preamble | No | Custom workflow preamble to inject before the task. If set, replaces the default cc-agent workflow preamble entirely. Use no_preamble to remove the preamble completely. | |
| openai_base_url | No | Base URL for OpenAI-compatible API endpoint. Only used when agent_driver is openai/qwen/kimi/deepseek/pi. | |
| timeout_minutes | No | Wall-clock timeout in minutes per active run. Job is terminated (SIGTERM then SIGKILL) if it exceeds this limit. Set to 0 to disable. Default: 120 (2 hours). | |
| continue_session | No | Pass --continue to Claude Code to resume the most recent session in the repo directory (optional, default false) | |
| docker_isolation | No | Run agent in Docker container for isolation. Default: false. Requires Docker to be running. On macOS, Docker runs in a VM — use only when isolation is specifically needed. | |
| smoke_test_timeout | No | Timeout for the smoke test in seconds (default 60). Only used when smoke_test is set. | |
| spawning_namespace | No | Namespace of the caller (e.g. 'simorgh-mobile-app'). When set, job completion notifications are routed to cca:notify:{spawning_namespace} instead of the server's default namespace. Use this when spawning from a meta-agent so the completion signal returns to your namespace. | |
| completion_criteria | No | LoopJob: list of shell commands run after the worker finishes. Each command runs in the cloned repo directory. All must exit 0 for the completion gate to pass. Presence of this field opts the job into the loop engine. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the full agent workflow (clone, branch, implement, test, commit, push, PR, merge, publish) and warns about clone failure scenarios for incorrect parameter usage. It explains auto-injected preamble and behavior of various parameters like fast_mode and effort_level.
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 long but well-structured with a clear workflow overview, bolded warnings, and a parameter list. Every section adds value, though the parameter list largely duplicates the schema. Given the tool's complexity, the length is justified, and the structure aids readability.
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 30 parameters and no output schema or annotations, the description covers the core workflow, critical parameter pitfalls, and session management. It explains the auto-injected preamble and loop job basics (completion_criteria, goal) adequately. Missing details about return values are compensated by sibling tools (get_job_status).
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%, providing baseline 3. The description adds meaningful context beyond the schema, especially the BRANCH PARAM WARNING and important notes on create_branch and branch parameters, which are critical for correct usage. Without these additions, agents could easily cause failures.
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?
Description starts with a specific verb ('Spawn') and resource ('Claude Code agent on a GitHub repository'). It clearly distinguishes from all sibling tools, which deal with jobs, costs, profiles, etc. No sibling performs agent spawning.
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?
Explicit warnings are provided for critical parameters (create_branch, branch) with clear instructions on when to set false or omit. The workflow is outlined. However, it does not explicitly state when NOT to use this tool or list alternatives, though no direct alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spawn_from_profileA
Spawn an agent job from a saved profile. Supports variable interpolation and per-call overrides. Call list_profiles first to see available profiles. Built-in profiles: coder, fix-issue, implement-feature, write-tests, security-audit, refactor, review-pr, bump-deps. Use the 'coder' profile for general coding tasks — it injects Karpathy discipline guidelines.
| Name | Required | Description | Default |
|---|---|---|---|
| vars | No | Variables to interpolate into the task template (e.g. { issue: '42', title: 'Login broken' }) | |
| fast_mode | No | Override the profile's fast mode setting for this spawn (optional). | |
| effort_level | No | Override the profile's default effort level for this spawn (optional). | |
| profile_name | Yes | Name of the profile to use | |
| task_override | No | Use this task instead of the profile's template (optional) | |
| branch_override | No | Override the profile's branch (optional) | |
| budget_override | No | Override the profile's default budget (optional) | |
| spawning_namespace | No | Namespace of the caller. When set, job completion notifications are routed to cca:notify:{spawning_namespace}. Defaults to the current namespace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions variable interpolation and per-call overrides, and that the 'coder' profile injects Karpathy discipline guidelines. However, it does not fully describe side effects (e.g., job creation, notification routing) or permissions needed. This is adequate but not comprehensive.
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 with four sentences. It front-loads the main purpose, then adds relevant usage tips and profile list. No redundant information, though the list of profiles could be formatted slightly better.
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 8 parameters, no output schema, and no annotations, the description provides sufficient context: purpose, prerequisite (list_profiles), key features (interpolation, overrides), and profile examples. It omits details about return values, but the agent can infer it returns a job identifier. Overall, it is complete enough for correct invocation.
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 baseline is 3. The description adds value by listing built-in profiles (aiding profile_name choice) and clarifying that override parameters allow per-call changes. This goes beyond the schema's basic descriptions.
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 'Spawn an agent job from a saved profile,' specifying the verb (spawn) and resource (agent job from profile). It distinguishes from siblings like 'spawn_agent' by emphasizing the use of predefined profiles. Mentioning variable interpolation and per-call overrides adds specificity.
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 guides the agent to call 'list_profiles' first to see available profiles, lists built-in profiles, and recommends the 'coder' profile for general coding tasks. It provides clear context but does not explicitly state when not to use this tool versus alternatives like 'spawn_agent'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_taskA
Auto-decompose a high-level goal into N parallel sub-tasks, fan out agents across all of them, then run a synthesis agent that produces one unified deliverable. Returns immediately with swarm_id and sub_job_ids. Use get_swarm_status to poll progress.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | High-level goal to decompose and execute across parallel agents | |
| repo_url | Yes | GitHub repo URL for all sub-agents and the synthesis agent | |
| max_agents | No | Maximum number of parallel sub-agents (default 10, hard cap 50) | |
| agent_model | No | Model override for all spawned agents (optional) | |
| agent_driver | No | Driver for all spawned agents (optional, default: claude) | |
| synthesis_output | No | Path in the repo where the synthesis agent writes its deliverable (default: swarm-synthesis.md) | |
| synthesis_prompt | No | Custom instruction for the synthesis agent. Defaults to: review all outputs and write a unified deliverable. | |
| max_budget_per_agent | No | Max USD budget per agent (sub-agents and synthesis). Default 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes the process (decomposition, parallel execution, synthesis) and return values. Lacks details on side effects, error handling, or authorization needs, which would improve transparency.
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 with no wasted words. First sentence covers the core workflow, second tells what is returned and next steps. Well front-loaded.
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 8 parameters and no output schema, description adequately explains the overall process, return values, and polling. Could mention expected output format or error scenarios, but sufficient for an AI agent to understand usage.
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 baseline is 3. Description adds no new semantics beyond schema descriptions for parameters like goal or synthesis_prompt. It mentions the synthesis agent writes to a path, but that is covered in 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?
Description clearly states verb 'auto-decompose' and resource 'high-level goal'. Distinguishes from siblings like spawn_agent by describing parallel decomposition and synthesis. Mentions immediate return of swarm_id and sub_job_ids.
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 tells when to use (decomposing high-level goals) and points to get_swarm_status for polling. Does not explicitly mention when not to use or alternatives, but context with siblings implies distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_cronB
Update fields on an existing cron job.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | No | New prompt (optional) | |
| cron_id | Yes | Cron job ID to update | |
| enabled | No | Enable or disable the cron (optional) | |
| schedule | No | New schedule label (optional) | |
| interval_ms | No | New interval in milliseconds (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It does not disclose side effects, required permissions, or behavior when the cron does not exist.
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?
Single sentence is efficient and to the point, with no wasted words. Slightly too minimal for full context, but appropriate for a simple tool.
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 no output schema and many optional parameters, the description lacks completeness. It does not explain that only provided fields are updated, nor hint at return values or error conditions.
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 already describes all parameters at 100% coverage, so the description adds no new meaning. Baseline score 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 'Update fields on an existing cron job,' specifying the verb (update) and resource (cron job), and distinguishes from sibling tools like create_cron and delete_cron.
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 no guidance on when to use this tool versus alternatives, no prerequisites, and no context on when updating is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_wiki_pageA
Create or update a wiki page for a repo. Content is markdown. Pages are auto-injected into spawn_agent calls for this repo.
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | Page name (human-readable, e.g. 'Architecture', 'Gotchas') | |
| content | Yes | Markdown content for the page | |
| repo_url | Yes | Repository URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that content is markdown and that pages are automatically injected into spawn_agent calls for the repo, which is a key behavioral trait beyond mere storage. With no annotations, this adds significant value, though it could mention overwrite behavior or permission requirements.
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 extraneous information. Front-loaded with the main action, then provides critical context about markdown and injection. Every sentence 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?
Given no output schema and no annotations, the description covers the core purpose, input format, and a notable side effect (auto-injection). It is sufficient for an agent to understand the tool's role, though it could mention idempotency or response format.
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% with good descriptions for all three parameters. The description adds minimal extra value, only confirming that content is markdown. The page name and repo_url are already well-described 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?
Description clearly states the action ('Create or update') and the resource ('wiki page for a repo'). Differentiates from siblings like get_wiki_page, delete_wiki_page, and list_wiki_pages by including both create and update in one tool.
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?
Provides context that pages are auto-injected into spawn_agent calls, indicating when this tool is useful. However, it lacks explicit guidance on when to prefer this over alternative methods (e.g., direct API calls) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_jobA
Block until a job reaches a terminal state (done/failed/cancelled/rejected/interrupted) or the timeout expires. Returns the final status and score. Preferred over polling get_job_status in a loop. For non-MCP coordinators: subscribe to Redis pub/sub channel cca:job:done:{job_id} for instant zero-copy notification — the payload is JSON with fields: job_id, status, score, score_source, finished_at, exit_code.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID to wait for | |
| timeout_seconds | No | Maximum seconds to wait (default 300) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains blocking behavior, terminal states, timeout, and return values. Could be more explicit about what happens on timeout (e.g., returns status 'timeout'), but still 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?
Three concise sentences: purpose, return value, and alternative for non-MCP coordinators. No unnecessary words; every sentence adds value.
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 tool's simplicity, description covers all needed context: behavior, return, usage guidance, and alternative. No output schema needed as return is described verbally.
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%, baseline 3. Description adds context by explaining how the parameters are used (blocking behavior, timeout expiration), enhancing understanding beyond 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?
Description clearly states it blocks until job reaches terminal state or timeout, and returns final status and score. It distinguishes from sibling get_job_status by explicitly stating it's preferred over polling in a loop.
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 'Preferred over polling get_job_status in a loop', providing clear when-to-use guidance. Also suggests an alternative for non-MCP coordinators via Redis pub/sub.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wake_jobA
Manually wake a sleeping job immediately, bypassing its scheduled wake time.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID of a sleeping job to wake |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It indicates state change (wake) but lacks details on permissions, idempotency, or effects if job is not sleeping. Adequate for a simple operation.
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?
Single sentence, no fluff, every word contributes to purpose and behavior.
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?
Simple tool with one parameter and no output schema; description sufficiently explains purpose and parameter. No significant gaps identified.
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 covers parameter fully with description of 'Job ID of a sleeping job to wake'. Description adds no extra semantics, meeting baseline for 100% coverage.
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?
Description clearly states the action ('wake'), resource ('sleeping job'), and distinguishes it from sibling tools like list_jobs or cancel_job by specifying the immediate bypassing of scheduled wake time.
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?
Description implies usage for waking a sleeping job before its scheduled time, but does not explicitly provide when-not-to-use or alternative tools, though context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_on_issueB
Fetch a GitHub issue, post a pickup comment, and spawn a cc-agent to work on it.
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | GitHub repo in owner/repo format | |
| issue_number | Yes | Issue number to work on | |
| extra_context | No | Additional context to pass to the agent (optional) | |
| max_budget_usd | No | Max USD budget for the agent (optional, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description outlines the three-step behavior, but with no annotations, it fails to disclose side effects (e.g., whether it claims the issue) or required permissions. The behavioral sequence is clear but not comprehensive.
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?
Single sentence with 14 words, front-loaded with the main action 'Fetch'. Every phrase is necessary and concise.
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?
Despite clear actions, the description omits important context like return type (e.g., job ID), error conditions, and prerequisites. For a tool that spawns an agent, this is insufficient for an agent to anticipate outcomes.
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 baseline 3. The description adds no extra meaning beyond the schema's parameter descriptions.
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 fetches a GitHub issue, posts a pickup comment, and spawns a cc-agent. This distinguishes it from sibling tools like comment_on_issue (only comments) and spawn_agent (only spawns).
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?
No guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only lists actions without context.
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. Dates show when Glama detected each change.
47 tool updates
v0.16.15- First observed
approve_job - First observed
cancel_job - First observed
clear_learnings - First observed
close_issue - First observed
comment_on_issue - First observed
cost_summary - First observed
create_cron - First observed
create_plan - First observed
create_profile - First observed
delete_cron - First observed
delete_profile - First observed
delete_wiki_page - First observed
docker_ps - First observed
export_jobs - First observed
generate_workflow - First observed
get_cost_report - First observed
get_job_output - First observed
get_job_status - First observed
get_learnings - First observed
get_logs - First observed
get_pubsub_status - First observed
get_swarm_status - First observed
get_version - First observed
get_wiki - First observed
get_wiki_page - First observed
get_workflow_status - First observed
list_active_repos - First observed
list_crons - First observed
list_drivers - First observed
list_jobs - First observed
list_model_ratings - First observed
list_notifications - First observed
list_profiles - First observed
list_project_issues - First observed
list_token_status - First observed
list_wiki_pages - First observed
search_jobs - First observed
send_message - First observed
set_job_score - First observed
spawn_agent - First observed
spawn_from_profile - First observed
swarm_task - First observed
update_cron - First observed
update_wiki_page - First observed
wait_for_job - First observed
wake_job - First observed
work_on_issue
TDQS
Most tools have clearly distinct purposes (e.g., cost_summary vs. list_model_ratings vs. spawn_agent). However, some overlap exists between spawn_agent and spawn_from_profile, and between get_job_status, wait_for_job, and list_jobs, which could cause mild confusion.
Naming uses a mix of verb_noun (e.g., spawn_agent, cancel_job), get_* (get_job_status, get_version), list_* (list_jobs, list_profiles), and a few irregular forms (comment_on_issue, close_issue). While mostly readable, the pattern is not fully consistent.
With 47 tools, the server is feature-rich but somewhat excessive for typical use. Many tools support auxiliary features (crons, profiles, wiki, etc.), justifying the count, but it exceeds the ideal 3-15 range and feels heavy.
The tool surface covers the full lifecycle: spawning, monitoring, canceling, profiles, cron scheduling, wiki management, cost tracking, log inspection, job search/export, swarms, and workflows. No obvious gaps for the intended domain of agent orchestration.
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
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Create, deploy, and operate MCP servers directly from your GitHub repositories.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that enables Claude Code to communicate with other Claude Code agents over HTTP, allowing users to ask questions about remote codebases or delegate coding tasks.MIT
- AlicenseAqualityCmaintenanceMCP server that lets any agent or MCP host delegate tasks to Claude Code running headless, with tools for review, validation, analysis, and autonomous work.41012MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables Claude to orchestrate multiple autonomous Claude Code agents working in parallel across different projects, with tools to dispatch, monitor, and manage their progress.6481MIT
- 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.255MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Gonzih/cc-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server