Agent door · Reference
Tools reference
The 14 tools the agent door exposes today. Generated from the server's tool registry and drift-checked in CI on every change, so this table stays in lockstep with what the door serves.
Each tool gates on a capability the calling
grant must hold. A parameter marked * is required. Write tools are held for
human approval by default — see Write
approvals.
| Tool | Capability | Kind | Parameters | Description |
|---|---|---|---|---|
list_diagnostics | diagnostic.list | read | client_idsincelimitcursor | List diagnostic reports in this workspace (newest first), with cursor pagination. Each item carries its derived status. Optional filters: client_id, since (created-at floor, RFC 3339). |
get_diagnostic | diagnostic.read | read | id* | Fetch a single diagnostic report by id, including its derived status and report_id when complete. |
get_report | report.read | read | id* | Fetch the forensic report payload for a completed diagnostic by id. raw_signals and internal columns are never exposed. Returns report_not_ready until the diagnostic completes. |
list_action_items | action_item.list | read | client_idsource_idstatuslimitcursor | List action items in this workspace (newest first), with cursor pagination. Optional filters: client_id, source_id, status. |
get_action_item | action_item.read | read | id* | Fetch a single action item by id. |
get_usage | usage.read | read | client_id | Read this workspace's monthly diagnostic quota + consumption (optionally for one client). Mirrors GET /v1/usage. |
list_strategic_assessments | strategic_assessment.list | read | client_iddiagnostic_report_idlimitcursor | List PUBLISHED strategic assessment deliverables in this workspace (newest first), with cursor pagination. Optional filters: client_id, diagnostic_report_id. |
get_strategic_assessment | strategic_assessment.read | read | id* | Fetch a single PUBLISHED strategic assessment deliverable by id. |
list_infrastructure_audits | infrastructure_audit.list | read | client_iddiagnostic_report_idlimitcursor | List PUBLISHED infrastructure audit deliverables in this workspace (newest first), with cursor pagination. Optional filters: client_id, diagnostic_report_id. |
get_infrastructure_audit | infrastructure_audit.read | read | id* | Fetch a single PUBLISHED infrastructure audit deliverable by id. |
get_approval_status | action_item.update | read | approval_id* | Poll a held write by approval_id (returned by a write tool). Status is one of: pending_approval, applying, applied, denied, expired, failed. |
update_action_item | action_item.update | write | id*statusassigned_todue_dateresolution_notes | Request an update to an action item's lifecycle fields (status, assigned_to, due_date, resolution_notes). By default the write is HELD for human approval: the call returns {status: 'pending_approval', approval_id} and nothing is changed until an org admin approves it (poll with get_approval_status). Grants with auto-approve enabled apply directly. Status transitions follow the same rules as the dashboard; suggested/verified are system-set and not settable. |
add_action_item_comment | action_item.comment | write | id*body* | Add a comment to an action item's activity timeline — what you did, what you found, what you need from a human. By default the comment is HELD for human approval: the call returns {status: 'pending_approval', approval_id} and nothing is posted until an org admin approves it (poll with get_approval_status). Grants with auto-approve enabled post directly. Comments are append-only — this tool cannot edit or delete anything, and cannot change the item's status. |
run_diagnostic | diagnostic.run | write | prior_diagnostic_id*side_a_scoresbudgetadvertising_budgetadvertising_budget_digitaladvertising_platform_feesdigital_share_pct | Request a fresh Diagnostic run against the same target as an earlier one, replaying that run's stored intake. Required argument: the prior diagnostic's id. The TARGET IS FIXED — the business, website URL and account are always the prior run's and cannot be supplied or changed here. You may optionally override the run's numeric inputs: side_a_scores (per-pillar self-assessment, 1–10) and the spend figures budget, advertising_budget, advertising_budget_digital, advertising_platform_fees, digital_share_pct. Overrides merge over the replayed intake — a field or pillar you omit keeps the prior run's value, and any override you send is shown to the approver alongside that prior value. This run is BILLED, so it is ALWAYS held for human approval regardless of any auto-approve setting. It is billed exactly as a person's run would be: it uses one of the organization's included monthly Diagnostics if any remain, and only if that monthly allowance is already used up does it cost the organization's wallet a per-run overage fee. Which of the two applies is decided when you request the run, shown to the approver, and checked again when they approve — if the allowance ran out in between, the run is refused rather than silently charged, and you may request it again. The new diagnostic then takes roughly 5–10 minutes to complete. The call returns {status: 'pending_approval', approval_id}; poll get_approval_status, then poll get_diagnostic on the id the approval returns. Availability is limited to organizations explicitly enabled for agent-initiated runs; other grants cannot hold this capability. |
Tools are advertised over MCP via tools/list and invoked via
tools/call. The advertised set is static per deployment; authority is checked
at call time, so a grant with fewer capabilities simply cannot invoke the tools it does not
hold.