MCP tools (mcp__coro__)
The runner builds an in-process MCP server named coro. The Agent SDK prefixes every tool with mcp__coro__, for example mcp__coro__scm_create_pr. Workflow Markdown, agent tables, and evaluator prompts should consistently use that prefix.
Extension plugins may register additional mcp__<pluginId>__* tools for provider-specific operations (@coro-ai/plugin-gitlab attaches the upstream GitLab MCP surface). This page lists only the canonical Coro toolpack emitted by createCoroMcpServer().
SCM (generic shim)
Nine high-traffic operations stay stable regardless of Bitbucket, GitHub, or GitLab. Each accepts an optional pluginId when a job resolves more than one SCM plugin.
| Tool | Purpose |
|---|---|
scm_create_pr | Open a PR/MR with reviewers and a substantive body |
scm_get_pr_status | PR state plus approval totals (readOnlyHint) |
scm_list_pr_comments | Review / inline threads |
scm_post_pr_comment | Top-level PR/MR comment |
scm_add_pr_reviewers | Merge reviewers (usernames or UUIDs — never display names) |
scm_resolve_user | Map free-text identities to canonical SCM accounts |
scm_merge_pr | Merge with optional strategy (merge | squash | rebase) |
scm_get_clone_info | Credentialed clone URL + git env for advanced flows |
scm_clone_repo | Clone into the per-job working directory |
Native plugins call REST directly; MCP-first plugins may answer with a redirect instructing the model to use the upstream namespace (mcp__github__*, …).
Tracker (generic shim)
| Tool | Purpose |
|---|---|
tracker_get_issue | Fetch one issue by key (readOnlyHint) |
tracker_transition_issue | Transition using a status name the plugin understands |
tracker_comment_issue | Append a plain-text note |
Broader tracker automation flows through the plugin’s MCP allowlist.
Observability
Requires Loki / Tempo endpoints configured in the runner Settings object.
| Tool | Role |
|---|---|
loki_query | Execute LogQL over a time window (readOnlyHint) |
tempo_get_trace | Retrieve a trace by id |
tempo_search | TraceQL search |
Work items and parameters
| Tool | Role |
|---|---|
set_work_items | Register ordered backlog after planning |
update_work_item | Status transitions + evaluation loop accounting |
get_work_items | Inspect board (readOnlyHint) |
request_new_session | Drop sessionId so the next phase starts clean context |
set_job_params | Merge language, lane, scm, tracker, build hints, … |
Job control
| Tool | Role |
|---|---|
goto_phase | Explicit phase transition (ends the current executor turn) |
await_event | Park until SCM signals, manual resume, or developer-input: |
escalate | Hard stop with human-readable reason |
log | Lines streamed to coro logs and the dashboard |
Artefacts
| Tool | Role |
|---|---|
post_artifact | Register dashboard-visible outputs (spec-md, plan-md, implementation-plan-md, pr-link, test-results, …) |
get_artifacts | List previously posted artefacts (readOnlyHint) |
Common markdown artefact kinds include spec-md (feature spec from spec-writing), implementation-plan-md (planner output), and evaluation-md (evaluator reports). Any kind whose data.path ends in .md or whose kind ends in -md renders in the dashboard modal viewer.
Self-improvement
| Tool | Role |
|---|---|
add_insight | Capture findings for evaluator grooming |
propose_change | Single PR per (jobId, writableLayer) for agents/skills/memory |
list_proposals | Historical proposal query (readOnlyHint) |
read_memory | Pull memory index + files + pending on-disk proposals (readOnlyHint) |
Runner guardrails may refuse scm_create_pr, scm_merge_pr, or propose_change — see Guardrails.
Campaign coordination
| Tool | Role |
|---|---|
convert_to_campaign | Promote oversized plans into workflows/campaign/workflow.md |
switch_workflow | Move between job, job-fast, and job-deep lanes in place |
campaign_register_child | Record each child spec + dependencies |
campaign_finalize | Validate DAG and hand off to the coordinator |
campaign_status | Summaries for evaluator / UI (readOnlyHint) |
campaign_skip_child | Mark child skipped, satisfy dependents |
campaign_rerun_child | Reset terminal child for another dispatch |
campaign_cancel_child | Cancel child + unblock downstream work |
File operations and subagents (fallback)
When the executor lacks native Read/Write/Bash/Agent tooling, the runner registers:
| Tool | Role |
|---|---|
file_read | UTF-8 reads scoped to the job cwd |
file_write | Create or overwrite files |
file_edit | Exact single replacement |
file_glob | Workspace glob |
file_grep | Literal or regex search |
read_skill | Load SKILL.md files from the materialised intelligence overlay |
shell | sh -c with working-directory guards and timeouts |
run_subagent | Execute workflow-declared subagents when supportsNativeSubagents is false |
run_subagent arguments are exactly { name, task } matching the YAML subagents entry.