Skip to main content
Glama

cc-agent

npm version

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

Set one of:

CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-...   # OAuth token (recommended)
ANTHROPIC_API_KEY=sk-ant-api03-...         # API key

Restart Claude Code. You now have 13 new MCP tools.

Related MCP server: claude-mcp-bridge

MCP Tools

Tool

Description

spawn_agent

Clone a repo, optionally create a branch, run Claude Code on a task

get_job_status

Check status of a specific job

get_job_output

Stream output lines from a job (supports offset for tailing)

list_jobs

List all jobs with status, recent tool calls, and exit info

cancel_job

Kill a running job

send_message

Write a message to a running agent's stdin mid-task

cost_summary

Total USD cost across all jobs, broken down by repo

get_version

Return the running cc-agent version

create_plan

Spawn a dependency graph of agent jobs in one call

generate_workflow

Auto-decompose a natural language goal into ordered stages and spawn all agents with stage-based dependency enforcement

get_workflow_status

Poll the status of a workflow created by generate_workflow, with per-stage and per-step breakdown

get_wiki

Return all wiki pages for a repo — structured knowledge auto-injected into every spawn_agent call

get_wiki_page

Return a single wiki page by name for a repo

update_wiki_page

Create or update a wiki page (markdown) for a repo

delete_wiki_page

Delete a single wiki page for a repo

list_wiki_pages

List all wiki page names for a repo

create_profile

Save a named spawn config for repeated use with {{variable}} templates

list_profiles

List all saved profiles

delete_profile

Delete a named profile

spawn_from_profile

Spawn a job from a saved profile with variable interpolation

spawn_agent parameters

Parameter

Type

Required

Description

repo_url

string

yes

Git repo to clone (HTTPS or SSH)

task

string

yes

Task prompt for Claude Code

branch

string

no

Existing branch to check out after clone

create_branch

string

no

New branch to create (e.g. feat/my-feature)

claude_token

string

no

Per-job token override

continue_session

boolean

no

Pass --continue to resume last Claude session in workdir

max_budget_usd

number

no

Spend cap in USD (default: 20)

session_id

string

no

Session ID from a prior job's sessionIdAfter — resumes that session

depends_on

string[]

no

Job IDs that must be done before this job starts (queued as pending)

effort_level

string

no

Token spend strategy: low | medium | high | xhigh | max | auto. Injects /effort <level> at session start.

fast_mode

boolean

no

If true, inject /fast at session start (faster output, same model). Default: false.

create_plan parameters

Parameter

Type

Required

Description

goal

string

yes

High-level description of what this plan achieves

steps

array

yes

Ordered list of steps to execute

Each step in steps:

Field

Type

Required

Description

id

string

yes

Logical step ID (used for depends_on references within the plan)

repo_url

string

yes

Git repo to clone

task

string

yes

Task prompt for Claude Code

create_branch

string

no

New branch to create before running

depends_on

string[]

no

Step IDs from this plan that must complete first

effort_level

string

no

Token spend strategy for this step (low | medium | high | xhigh | max | auto).

fast_mode

boolean

no

If true, inject /fast at session start for this step.

create_profile parameters

Parameter

Type

Required

Description

name

string

yes

Profile name (alphanumeric, dashes, underscores)

repo_url

string

yes

Git repo to clone

task_template

string

yes

Task template — use {{varName}} for substitution

default_budget_usd

number

no

Default USD budget for jobs from this profile

branch

string

no

Branch to check out after cloning

description

string

no

Human-readable profile description

effort_level

string

no

Default effort level for all jobs spawned from this profile.

fast_mode

boolean

no

If true, enable fast mode by default for jobs from this profile.

spawn_from_profile parameters

Parameter

Type

Required

Description

profile_name

string

yes

Name of the saved profile to use

vars

object

no

Variables to interpolate into the task template

task_override

string

no

Use this task instead of the profile template

branch_override

string

no

Override the profile's branch

budget_override

number

no

Override the profile's default budget

effort_level

string

no

Override the profile's default effort level for this spawn.

fast_mode

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:

  1. Docker — runs docker run -d --name cc-agent-redis -p 6379:6379 --restart=unless-stopped redis:alpine

  2. redis-server — if redis-server is on PATH, spawns it as a daemon

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

cca:job:<id>

String (JSON)

7 days

Full job record

cca:jobs:index

List

Job IDs, newest first (capped at 500)

cca:job:<id>:output

List

7 days

Output lines (one entry per line)

cca:plan:<id>

String (JSON)

30 days

Plan record with step→job mapping

cca:profile:<name>

String (JSON)

permanent

Profile config

cca:profiles:index

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

pending

Waiting for depends_on jobs to complete

cloning

Cloning the repo

running

Claude Code is running

done

Completed successfully

failed

Exited with an error (check error field)

cancelled

Cancelled by cancel_job

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 task

Agent 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 library

MCP config (claude.json)

{
  "cc-agent": {
    "command": "npx",
    "args": ["@gonzih/cc-agent"],
    "env": {
      "CLAUDE_CODE_OAUTH_TOKEN": "sk-ant-oat01-..."
    }
  }
}

How it works

  1. spawn_agent creates a job record (persisted to disk) and returns immediately with a job ID

  2. In background: git clone --depth 1 <repo> into a temp dir

  3. Optionally checks out an existing branch or creates a new one

  4. Runs claude --print --output-format stream-json --verbose --dangerously-skip-permissions --max-budget-usd <N> <task>

  5. Streams stdout/stderr into the job's output log (in memory + disk)

  6. Tool calls are captured from the stream-JSON and stored in tool_calls[]

  7. On exit: job marked done/failed, workdir cleaned up after 10 minutes

  8. Jobs expire from memory after 1 hour (log file remains on disk)

  9. Pending jobs are promoted automatically every 3 seconds when their dependencies complete

Environment variables

Variable

Description

CLAUDE_CODE_TOKEN

Claude OAuth token or Anthropic API key

CLAUDE_CODE_OAUTH_TOKEN

Claude OAuth token (alternative)

ANTHROPIC_API_KEY

Anthropic API key (alternative)

Requirements

  • Node.js 18+

  • claude CLI: npm install -g @anthropic-ai/claude-code

  • Git

Available Tools

47 tools
approve_jobA

Approve a job that is pending approval due to an untrusted repo owner. Transitions the job from pending_approval to running.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID of the pending_approval job to approve

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID to cancel

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceNoNamespace to clear learnings for (defaults to current namespace)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesGitHub repo in owner/repo format
commentNoComment to post when closing (optional)
issue_numberYesIssue number to close

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesComment body
repoYesGitHub repo in owner/repo format
issue_numberYesIssue number to comment on

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesTask prompt to pass to the agent on each fire
chat_idNoTelegram chat ID for notification routing (optional, default 0)
enabledNoWhether the cron is active (optional, default true)
repo_urlNoRepository URL to run the cron task on (optional)
scheduleYesHuman-readable schedule label, e.g. 'every 30m'
interval_msYesInterval in milliseconds between fires

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesHigh-level description of what this plan achieves
stepsYesOrdered list of steps to execute

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. 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.

Purpose5/5

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.

Usage Guidelines2/5

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' })

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProfile name (alphanumeric, dash, underscore only)
branchNoBranch to checkout after cloning (optional)
preambleNoCustom workflow preamble to inject before every task spawned from this profile. Overrides the default preamble (optional).
repo_urlYesGit repository URL to clone
fast_modeNoIf true, enable fast mode by default for jobs spawned from this profile. Can be overridden at spawn time (optional).
descriptionNoHuman-readable description of this profile (optional)
effort_levelNoDefault effort level for jobs spawned from this profile. Can be overridden at spawn time (optional).
task_templateYesTask description template; use {{varName}} for substitution
default_budget_usdNoDefault USD budget for jobs spawned from this profile (optional)

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cron_idYesCron job ID to delete

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProfile name to delete

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage name to delete
repo_urlYesRepository URL

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days back to export (default: 7)
formatNoOutput format: 'jsonl' (one record per line) or 'json' (array). Default: 'jsonl'
statusNoFilter by status: 'done' | 'failed' | 'cancelled' | 'running' (optional)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesHigh-level natural language goal to decompose into workflow stages (e.g. 'build, test, and deploy X')
repo_urlYesGit repository URL for all spawned agents (https://github.com/owner/repo)
max_stagesNoMaximum number of sequential stages (default 8, hard cap 20)
agent_modelNoModel override for spawned agents (optional)
agent_driverNoDriver override for spawned agents (optional, e.g. 'claude', 'aider')
max_agents_per_stageNoMaximum number of parallel agents per stage (default 3)
max_budget_per_agentNoMaximum USD budget per spawned agent (default 5)

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days back to include (default: 30)
group_byNoGroup by 'repo' | 'day' | 'status' (default: 'repo')

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID returned by spawn_agent
offsetNoLine offset to start from (default 0)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID returned by spawn_agent

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepo key to query, e.g. 'gonzih/cc-agent'. Takes precedence over namespace when provided.
limitNoMaximum number of learnings to return (default 10)
namespaceNoNamespace to query (fallback when repo is not provided; defaults to current namespace)

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoNumber of log lines to return (default 100, max 500)

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
swarm_idYesSwarm ID returned by swarm_task

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_urlYesRepository URL, e.g. 'https://github.com/gonzih/cc-agent'

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

Given the tool's simplicity (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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage name to retrieve
repo_urlYesRepository URL

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflow_idYesWorkflow ID returned by generate_workflow

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_scoreNoOnly return jobs with score >= this value (0.0–1.0). Unscored jobs are excluded when this filter is set.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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

Given no parameters and no output schema, the description 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesGitHub repo in owner/repo format
stateNoIssue state filter (default: open)
labelsNoFilter by labels (optional)
assigneeNoFilter by assignee login (optional). Uses gh --assignee flag; the returned JSON field is 'assignees' (plural).

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_urlYesRepository URL

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days back to search (default: 30)
queryYesSearch term to look for in task prompts (case-insensitive)
statusNoFilter by status: 'done' | 'failed' | 'cancelled' | 'running' (optional)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job ID of the running agent
messageYesThe message to send to the agent

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scoreYesScore from 0.0 to 1.0
job_idYesJob ID to score
reasonNoOptional reason or explanation for the score

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

Given the tool's simplicity (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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoLoopJob: verifiable intent — what 'done' looks like. Required when completion_criteria is set. Injected into the quality eval agent prompt.
taskYesTask description to pass to Claude Code. A workflow preamble is auto-injected before this task.
modelNoModel override for this job (e.g. 'claude-sonnet-4-5'). Defaults to CC_AGENT_DEFAULT_MODEL env var or 'claude-sonnet-4-5'.
branchNoExisting 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_idNoDiscord/Telegram chat ID to include in the completion notification payload. When set, cc-discord routes the notification back to the originating channel.
repo_urlYesGit repository URL to clone (https or ssh)
fast_modeNoIf true, inject /fast at session start to enable fast mode (faster output, same model). Default: false.
depends_onNoJob IDs that must be done before this job starts. Job will be queued as pending until all dependencies complete.
session_idNoSession ID to resume from a previous job (use sessionIdAfter from a prior job). Passes --continue to Claude CLI.
smoke_testNoShell 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_modelNoModel override for the selected driver (e.g. 'qwen2.5-72b-instruct', 'kimi-k2', 'gpt-4o'). Optional.
no_preambleNoIf true, no preamble is injected — the raw task is passed directly to the agent. Overrides custom_preamble.
ollama_hostNoOllama host URL (default: 'http://localhost:11434'). Only used when ollama_model is set.
agent_driverNoWhich 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_tokenNoClaude OAuth token or Anthropic API key to use for this job (optional — falls back to server env)
effort_levelNoToken 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_modelNoIf 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_branchNoALWAYS 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_usdNoMaximum USD budget for this Claude Code session (optional, default 20)
max_iterationsNoLoopJob: maximum number of worker iterations before declaring loop_exhausted. Default 3. Hard cap 3.
openai_api_keyNoAPI key override for OpenAI-compatible drivers. Falls back to OPENAI_API_KEY / driver-specific env var.
quality_rubricNoLoopJob: rubric injected into the quality eval agent. Describes what good output looks like. If omitted, quality gate is skipped.
custom_preambleNoCustom 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_urlNoBase URL for OpenAI-compatible API endpoint. Only used when agent_driver is openai/qwen/kimi/deepseek/pi.
timeout_minutesNoWall-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_sessionNoPass --continue to Claude Code to resume the most recent session in the repo directory (optional, default false)
docker_isolationNoRun 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_timeoutNoTimeout for the smoke test in seconds (default 60). Only used when smoke_test is set.
spawning_namespaceNoNamespace 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_criteriaNoLoopJob: 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

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
varsNoVariables to interpolate into the task template (e.g. { issue: '42', title: 'Login broken' })
fast_modeNoOverride the profile's fast mode setting for this spawn (optional).
effort_levelNoOverride the profile's default effort level for this spawn (optional).
profile_nameYesName of the profile to use
task_overrideNoUse this task instead of the profile's template (optional)
branch_overrideNoOverride the profile's branch (optional)
budget_overrideNoOverride the profile's default budget (optional)
spawning_namespaceNoNamespace of the caller. When set, job completion notifications are routed to cca:notify:{spawning_namespace}. Defaults to the current namespace.

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesHigh-level goal to decompose and execute across parallel agents
repo_urlYesGitHub repo URL for all sub-agents and the synthesis agent
max_agentsNoMaximum number of parallel sub-agents (default 10, hard cap 50)
agent_modelNoModel override for all spawned agents (optional)
agent_driverNoDriver for all spawned agents (optional, default: claude)
synthesis_outputNoPath in the repo where the synthesis agent writes its deliverable (default: swarm-synthesis.md)
synthesis_promptNoCustom instruction for the synthesis agent. Defaults to: review all outputs and write a unified deliverable.
max_budget_per_agentNoMax USD budget per agent (sub-agents and synthesis). Default 5.

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoNew prompt (optional)
cron_idYesCron job ID to update
enabledNoEnable or disable the cron (optional)
scheduleNoNew schedule label (optional)
interval_msNoNew interval in milliseconds (optional)

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage name (human-readable, e.g. 'Architecture', 'Gotchas')
contentYesMarkdown content for the page
repo_urlYesRepository URL

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID to wait for
timeout_secondsNoMaximum seconds to wait (default 300)

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID of a sleeping job to wake

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesGitHub repo in owner/repo format
issue_numberYesIssue number to work on
extra_contextNoAdditional context to pass to the agent (optional)
max_budget_usdNoMax USD budget for the agent (optional, default 20)

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, 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.

  1. 47 tool updatesv0.16.15
    • First observedapprove_job
    • First observedcancel_job
    • First observedclear_learnings
    • First observedclose_issue
    • First observedcomment_on_issue
    • First observedcost_summary
    • First observedcreate_cron
    • First observedcreate_plan
    • First observedcreate_profile
    • First observeddelete_cron
    • First observeddelete_profile
    • First observeddelete_wiki_page
    • First observeddocker_ps
    • First observedexport_jobs
    • First observedgenerate_workflow
    • First observedget_cost_report
    • First observedget_job_output
    • First observedget_job_status
    • First observedget_learnings
    • First observedget_logs
    • First observedget_pubsub_status
    • First observedget_swarm_status
    • First observedget_version
    • First observedget_wiki
    • First observedget_wiki_page
    • First observedget_workflow_status
    • First observedlist_active_repos
    • First observedlist_crons
    • First observedlist_drivers
    • First observedlist_jobs
    • First observedlist_model_ratings
    • First observedlist_notifications
    • First observedlist_profiles
    • First observedlist_project_issues
    • First observedlist_token_status
    • First observedlist_wiki_pages
    • First observedsearch_jobs
    • First observedsend_message
    • First observedset_job_score
    • First observedspawn_agent
    • First observedspawn_from_profile
    • First observedswarm_task
    • First observedupdate_cron
    • First observedupdate_wiki_page
    • First observedwait_for_job
    • First observedwake_job
    • First observedwork_on_issue

TDQS

A3.6/5.0
Disambiguation4/5

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 Consistency3/5

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.

Tool Count3/5

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.

Completeness5/5

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

ActivityStale
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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