Reference
Agent tools (acc MCP server)
Every run gets the acc MCP server. These are the tools agents use to read their assignment, hand off, ask you, coordinate, read shared context and design.
How agents connect#
Each run gets the acc MCP server over stdio, authenticated with a random per-run token stored in runs/<id>/mcp.json (readable only by you, never on a command line). The token is accepted only for its own run, and every tool is scoped to that run's project and assignment.
- Harnesses pre-approve the tools in the lists below as
mcp__acc__<tool>, so agents can call them without a prompt. Two tools are not pre-approved and go through your approval each time.
- Your own MCP servers are kept out of agent runs: Claude Code runs with
--strict-mcp-config and Codex with --ignore-user-config.
- Everything a tool returns from notes, messages, designs or plugins is untrusted data. Tools that act on the outside world only request an action; you approve it in Decisions.
Assignment and handoff#
| Tool | Arguments | Use |
get_assignment | none | The current assignment: goal, acceptance criteria, scope, allowed paths, required checks, worktree and branch. Always current; prefer it over earlier copies. |
post_handoff | handoff | Record the handoff block. It should also end the final message. |
report_finding | title, description?, labels?, priority? (0–4) | File a new issue for a problem outside the current scope |
submit_review | reviewed_sha, verdict (approve or request_changes), summary, findings? | Review assignments only: the verdict for the exact SHA. Findings have a severity (blocker, major, minor, nit), title, body, path and line. Non-nit findings become follow-up issues; a review with blockers cannot approve. |
ask_human | question, options?, context? | Ask the owner a product, cost, security, deploy or scope question. Blocks until answered. |
Team#
| Tool | Arguments | Use |
get_brief | none | The live brief: each agent's Now/Next, open questions, alerts, work in flight and recent handoffs |
get_team | offset? | Ownership, roles, Now/Next, scopes, statuses and unread message IDs. No peer transcripts. |
read_messages | after?, limit? (1–50), unread?, budget? | The agent's own inbox within a character budget |
send_team_message | recipients, subject, body, kind?, replyTo? | A note, question, reply, blocker or handoff to other agents in the project |
ack_team_message | messageId | Confirm a message was read. Acknowledgement is not approval. |
Shared context#
| Tool | Arguments | Use |
get_project_context | query?, budget? (3,000–16,000) | One compact, cited packet for the assignment. Agents are told to call it first. See What agents receive. |
search_context | query, limit? (1–25) | Cited passages from notes and code, with optional code-graph context |
ask_project | query | One Ask: source excerpts or a local-model interpretation with citations, the exact revision and honest partial-index status |
read_note | path, fromLine?, offset?, budget? | A bounded, redacted page of a note. Only selected folders are readable. |
query_graph | question, budget?, mode? (bfs or dfs) | Ask the Graphify code graph; returns nodes and edges with source locations |
graph_path | from, to | Shortest path between two concepts or symbols |
explain_node | name | One symbol or file and its neighbours |
Skills#
| Tool | Arguments | Use |
list_skills | none | The skills frozen for the assignment: id, version, description and reference names |
get_skill | id, file?, offset?, budget? | SKILL.md or one reference of a frozen skill, in pages |
get_design_skill | id, file?, offset?, budget? | A pinned designer skill or one of its references |
Designer#
| Tool | Arguments | Use |
get_design_document | documentId, section?, screenId?, componentId?, assetId?, offset?, budget? | Read the assigned structured design. Start with summary, then screen, component, tokens or interactions. assetId returns a reference image. |
get_design_components | documentId | Reusable components: variants, states, props, slots, usage and accessibility notes |
validate_design_document | documentId, operations? | Deterministic checks (tokens, contrast, labels, components, prototype links, states), optionally with proposed operations applied first. Checks never approve. |
propose_design_changes | documentId, expectedVersion, operations | One atomic set of typed operations. You see a preview and choose Keep or Discard; the agent cannot apply or approve. No code, HTML, CSS or URLs. |
get_design_system | none | The exact project design contract frozen for the assignment: tokens, DESIGN.md and contrast checks |
HTML mocks#
| Tool | Arguments | Use |
register_design_mock | dir (design/<slug>), title?, handoff? | Capture the folder as an immutable mock revision with a structured handoff. Returns static findings to fix. |
record_mock_evidence | artifactId, kind, summary, executed, status, … | Attach command, screenshot or viewport evidence. Commands are verified against the run's own transcript. |
get_design_mock | artifactId, revision?, path?, offset?, budget? | Read a revision the agent produced or was asked to review |
submit_design_review | artifactId, revision, verdict, summary, checklist | An independent, advisory review with a basis (static or browser) for each checklist item |
Connectors#
| Tool | Arguments | Use |
list_connector_tools | none | Local tool connections you approved for this project, and the tools each allows |
call_connector_tool | connector, tool, arguments? | Request one exact call. Creates a Decision; nothing runs until you approve the exact arguments. |
get_connector_tool_result | requestId | Poll the durable result. Polling never re-runs the call. |
Need your approval each time#
| Tool | Use |
get_release_status | Read the ordered release plan, code-host protection and CI. Agents cannot approve or skip a step. |
get_infra_health | Read Docker, local Postgres, hosting and migration-drift status. Unchecked results are not healthy. Agents cannot change infrastructure. |
Internal#
permission_prompt receives tool-permission requests from the agent's harness, and decides them by your approval policy. Agents never call it directly, and it is never on a harness allowlist.
Register it in packages/daemon/src/mcp/server.ts, add its name to ACC_MCP_AUTO_APPROVED or ACC_MCP_PROMPTED in mcp/tools.ts (a test fails otherwise), and handle it in mcpBridge.ts. See Extending One Connect.
Edit this page on GitHub