MCP tools
Agents call POST /api/mcp with a bearer token. This page lists every tool in the MCP manifest: name, required scope, what it is for, and the parameters that matter. Scopes are copied from the manifest. A tool runs only when the token includes every required scope.
Empty scopes are written as none. The call still needs a valid token. Dynamic scopes are checked against the table you pass.
Human-only approval types cannot be approved here. See Permissions and API keys. How to connect a runtime is in Connecting agents.
Parameter lists are the fields callers actually send. Optional fields are included when they change behavior. Servers ignore unknown keys.
Search
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
rag_search | rag:read | Hybrid keyword and vector search over indexed chunks. | query, match_count, source_tables, since, until |
entity_match_search | rag:read | Resolve a person, company, or campaign name to candidates. Does not merge. | query, limit, entity_types |
search | rag:read | Scoped hybrid search with an intent router and optional dimension filters. | query, match_count, offset, source_tables, domain_name, deal_name, project_name, skip_router |
entity_search_diag | rag:read | Explain why a name did not resolve. | canonical_name |
entity_context_query | rag:read | Pack one entity's card, scoped chunks, and optional tasks and notes for a question. | question, entity_type, entity_id or entity_name, include_tasks, include_activities, include_notes |
Activities
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
timeline_for_entity | activities:read, mentions:read | Activity timeline for one CRM record. | entity_type, entity_id, limit, occurred_after, occurred_before |
activity_timeline | activities:read | Owner-wide activity feed with keyset pagination. | occurred_after, occurred_before, type, work_type, source, exclude_noise, limit, cursor |
activity_create | activities:write | Create or upsert an activity. | type, summary, content, source, source_id, occurred_at, raw_payload |
mention_add | mentions:write, activities:write | Link an activity to an entity. | activity_id, entity_type, entity_id |
Contacts and accounts
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
contact_intake | contacts:write, accounts:write | Create a contact and account from an intake payload. | email, company_name, full_name, campaign_id, metadata |
scorecard_get | <dynamic: contacts:read|accounts:read|deals:read> | Latest scorecard for a contact, account, or deal. Scope depends on the table. | record_table, record_id |
accounts_due_for_enrichment | accounts:read | Accounts whose enrichment is stale, oldest first. | limit |
entity_get | none | Full entity card by search-entity id. | entity_id |
entity_create | graph:write | Deprecated. Returns deprecated and does not insert. | table, fields (ignored) |
entity_field_write | graph:write | Write one field through the provenance path. | table, id, field, value, confidence, src, actor |
Entity state and notes
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
entity_state_get | none | Read agent_state on a contact, account, deal, or project. | entity_table, entity_id |
entity_state_set | <dynamic: contacts:write|accounts:write|deals:write|projects:write> | Replace agent_state. Scope matches the table. | entity_table, entity_id, agent_state, expected_updated_at |
entity_state_patch | <dynamic: contacts:write|accounts:write|deals:write|projects:write> | Shallow-merge a patch into agent_state. | entity_table, entity_id, patch, expected_updated_at |
entity_note_add | notes:write | Append a note. | entity_table, entity_id, body, author, source_activity_id |
entity_notes_list | notes:read | List recent notes, newest first. Long bodies are truncated. | entity_table, entity_id, limit |
Campaigns
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
campaign_list | campaigns:read | List campaigns. | limit |
campaign_members_list | campaigns:read | List members of one campaign. | campaign_id |
campaign_member_add | campaigns:write | Add a contact or an account to a campaign. | campaign_id, contact_id or account_id |
campaign_member_update | campaigns:write | Update member status and merge SDR metadata. | member_id or campaign plus contact or account, member_status, metadata_sdr |
campaign_product_link | campaigns:write | Link or unlink a product. | campaign_id, product_id, unlink |
campaign_products_list | campaigns:read | Products linked to a campaign. | campaign_id |
campaign_icp_set | campaigns:write | Attach ICP profiles to a campaign. | campaign_id, icp_ids, replace |
Approvals
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
approval_create | approvals:write | Create a pending approval. Entity creates must send on_approve or table and fields. | item_type, title, summary, table, fields, on_approve, metadata |
approval_list | approvals:read | List approvals. | limit, status |
approval_resolve | approvals:write | Resolve as the agent identity. Human-only types are refused. | id, status (approved, rejected, deferred), decision_notes |
Extraction
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
extraction_pending | approvals:read | List pending extraction cards. | action_type, limit, offset |
extraction_review | approvals:write | Approve or reject one extraction card. | approval_id, decision, note |
extraction_review_bulk | approvals:write | Resolve a batch of one action type. | action_type, decision, note, limit |
extraction_threshold_set | approvals:write | Set the auto-pass threshold for an action type. Database write also requires an admin. | action_type, threshold (0 to 1) |
extraction_metrics | approvals:read | Counts by action type. | days |
Deals and products
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
deal_proposals | deals:read | Proposed deal names from ingest that are not deals yet. | limit |
deals_list | deals:read | List deals, including forecast and scorecard fields. | limit, status, closed, id, name |
deal_scorecard_set | deals:write | Write the scorecard JSON and narrative fields. | deal_id, scorecard, deal_summary, deal_details, product_offering, strategic_questions, next_steps |
deal_proposal_resolve | deals:write | Approve or dismiss a proposed deal name. | proposed_deal_name, approve, domain_id |
deal_line_item_set | deals:write | Upsert one deal line item. | deal_id, product_id, name, description, quantity, unit_amount, sort_order, id |
deal_line_items_list | deals:read | Line items on a deal. | deal_id |
product_list | products:read | List catalog products. | status, product_line, q, limit |
product_get | products:read | One product by id or slug. | id |
product_upsert | products:write | Create or update a product. Create and rename file a human-only approval. | id, name, slug, description, product_line, status, list_price, pricing_model, url |
Tasks
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
task_create | tasks:write | Create a backlog task. Set human_approval_to_close on purpose. Default is false. | title, description, project_id, assignee_type, assignee_id, domain, human_approval_to_close, priority, hidden_until |
task_list | tasks:read | List tasks. Hidden tasks stay out unless include_hidden is true. | domain, status, assignee_type, assignee_id, project_id, limit, include_hidden |
task_hide | tasks:write | Set or clear hidden_until. | task_id, hidden_until |
task_claim | tasks:write | Claim todo tasks for a runtime. | assignee_id, claimed_by, limit |
task_claim_work_item | tasks:write | Claim the one task a work item points at. | work_item_id, claimed_by |
task_pickup | tasks:write, comments:read | Claim plus task and project comments. Acks unread handoffs. | work_item_id, claimed_by |
task_reassign | tasks:reassign | Reassign to a runtime or user. Handoff comment required. | task_id, assignee_type, assignee_id, handoff_note |
task_complete | tasks:write | Complete a todo or doing task that is not close-gated. | task_id, result |
task_stuck | tasks:write | Mark a task stuck. | task_id, reason |
task_start | tasks:write | Move todo to doing. | task_id |
task_resume | tasks:write | Move stuck to todo. Refuses unmet dependencies. | task_ids, note |
task_demote | tasks:write | Move todo back to backlog. | task_id, note |
task_reopen | tasks:write | Reopen a done task to an active status. | task_id, to_status, note |
task_cancel | tasks:write | Cancel from an active status. Reason required. | task_id, reason |
task_request_promote | tasks:write | Open a promote approval. | task_ids, note, domain |
task_request_close | tasks:write | Close. Human gate opens a card. Otherwise the task can complete, and a linked green pull request can merge. | task_ids, note, pr_url, work_item_id, work_result |
task_scheduled_create | schedules:write | Create or update a scheduled task. Token only. | project_id, title, schedule_cron, scheduled_workflow_template_id, assignee_type, assignee_id |
task_scheduled_enable | schedules:write | Enable a scheduled task and its job binding. Token only. | task_id |
Comments and notifications
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
comment_create | comments:write | Create a comment and link it to records. | body, domain, assignee_runtime_id, related |
comment_list | comments:read | List comments for a runtime, status, or related record. | assignee_runtime_id, status, domain, related_type, related_id, limit |
comment_ack | comments:write | Acknowledge a comment. | comment_id |
comment_applied | comments:write | Mark a comment applied. | comment_id |
comment_dismiss | comments:write | Dismiss a comment. | comment_id |
cockpit_get | cockpit:read | Aggregate payload: pending approvals, notifications, and summaries. | none |
cockpit_notifications_list | cockpit:read | In-app notifications for the token owner. | status, limit |
cockpit_notification_resolve | cockpit:write | Mark a notification read or dismissed. | id, status |
Work lease
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
work_clock_in | work:write | Claim a work item. A live lease on the same kind and ref conflicts. | kind, ref, agent_id, run_id, lease_ttl_minutes |
work_set_session | work:write | Record the session, repo, and branch on a claimed item. | work_item_id, repo, branch, session_url |
work_heartbeat | work:write | Extend the lease. | work_item_id |
work_log | work:write | Append a log line and bump the heartbeat. | work_item_id, level, message |
work_block | work:write | Mark the item blocked. | work_item_id, gap_type (policy, data, or tool), reason |
work_clock_out | work:write | Release the item. | work_item_id, status (done, failed, skipped), result, error |
work_status | work:read | Read by exactly one selector. | work_item_id, or kind plus ref, or run_id |
Meetings and graph check-in
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
meeting_graph_checkin | graph:write | Write a meeting activity plus entity proposals, links, notes, and flags. | activity, run_id, entities, links, notes, flags |
meeting_brief_checkin | graph:write | Attach a pre-call brief to a calendar activity. Does not change entities. | calendar_activity_id, brief, run_id |
entity_graph_checkin | graph:write | Check in entities for a lane without an activity. | lane, run_id, entities, links, notes, flags |
graph_checkin | graph:write | Deprecated alias of meeting_graph_checkin. | same as meeting_graph_checkin |
graph_checkin_revert | graph:write | Revert a check-in by run id. | run_id |
Files and marketing assets
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
file_reserve | files:write | Reserve a file row and an upload URL, deduped by hash. | sha256, file_name, mime_type, size_bytes, domain |
file_commit | files:write | Mark an upload ready after the bytes land. | file_id |
file_link | files:write | Link a file to a record. | file_id, entity_type, entity_id, link_kind |
file_unlink | files:write | Remove one link. | file_id, entity_type, entity_id, link_kind |
file_share_record | files:write | Record that a file was shared. Does not send it. | file_id, contact_id, account_id, shared_via, note |
files_for_entity | files:read | Files and optional share history for a record. | entity_type, entity_id, limit, include_shares |
file_signed_url | files:read | Short-lived download URL. | file_id, ttl_seconds, download |
marketing_asset_create | files:write | Create a marketing asset identity. Bytes stay on a file row. | title, slug, kind, domain, campaign_id |
marketing_asset_version_add | files:write | Add a version that points at a committed file. | asset_id, file_id, version, set_current |
marketing_asset_list | files:read | List assets. | kind, domain, campaign_id, project_id, limit |
marketing_asset_get | files:read | One asset and its versions. | asset_id |
marketing_asset_set_current | files:write | Point the asset at a version. | asset_id, version |
Workflows
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
workflow_template_create | workflows:write | Create or update a template and its steps. | slug, name, project_id, description, steps, status |
workflow_apply | workflows:write | Instantiate a template into tasks on a desk. | template_id, context_project_id, trigger |
workflow_trigger_describe | workflows:read | Return the trigger input contract. Token must be bound to the workspace. | template |
workflow_trigger | workflows:write | Enqueue a trigger with validated input. | template, input, dedupe_key |
flow_start | workflows:write | Start a registered flow by slug. | slug, input |
flow_run_status | workflows:write | Poll a flow run and its steps. | run_id |
Skills
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
skill_list | approvals:read | List skills. | enabled_only, action_type, family, project_id |
skill_get | approvals:read | One skill by slug. | slug |
skill_metrics | approvals:read | Recommendation agreement rates. | days |
skill_create | skills:write | Create a skill document and queue a collection sync. | slug, title, body_md, summary, family, domain |
skill_update | skills:write | Update a skill and queue a re-sync. | skill_id, title, summary, body_md, status, enabled |
Goals
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
metric_catalog_list | metrics:read | Built-in metric catalog. | owning_role, availability, all_versions |
metric_query | metrics:read | Compute one catalog metric. | key, filters, period |
charter_list | charters:read | List charters. | scope, status, slug |
charter_get | charters:read | One charter with sections and measures. | charter_id or slug, version, include_metric_values |
charter_propose_version | charters:write | Propose a draft charter. Publishing waits on an approval. | slug, scope, title, sections, measures, summary |
ICP
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
icp_list | icp:read | List ICP profile versions. | status, slug, include_criteria, limit |
icp_get | icp:read | One ICP and its version history. | icp_id, version |
icp_propose_version | icp:write | Draft a new ICP version. Activation waits on an approval. | slug, name, criteria, summary |
account_fit_score | icp:write | Score an account against an ICP and write the fit fields. | account_id, icp_id |
accounts_by_tier | icp:read | Accounts in a fit tier. | tier, icp_id, min_score, limit |
Outcomes and cases
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
outcomes_list | engagement_outcomes:read | List engagement outcomes. | status, confirmed_state, deal_id, project_id, account_id, limit |
outcome_create | engagement_outcomes:write | Create an outcome. Cannot set achieved directly. | title, description, type, source, deal_id or project_id, account_id, status |
outcome_update | engagement_outcomes:write | Update outcome fields. Does not confirm or achieve. | outcome_id plus the fields to change |
outcome_confirm | engagement_outcomes:write | Confirm, reject, or propose achieved. Achieved files a human-only card. | outcome_id, action (confirm, reject, achieve) |
cases_list | cases:read | List support cases. | status, account_id, project_id, limit |
case_create | cases:write | Open a case on an account. | title, description, account_id, project_id, status |
case_update | cases:write | Update a case and its outcome links. | case_id, link_outcome_id, unlink_outcome_id |
Agent bus
| Tool | Scope | Purpose | Key parameters |
|---|---|---|---|
agent_bus_subscribe | agent_bus:write | Subscribe a runtime to the bus. | agent_id, session_key, channels |
agent_bus_list_agents | agent_bus:read | List agents and presence. | only_active, only_clocked_in |
agent_bus_broadcast | agent_bus:write | Broadcast a message. | from_agent_id, body, kind, only_clocked_in |
agent_bus_send | agent_bus:write | Send to specific agents. | from_agent_id, to_agent_ids, body, thread_id |
agent_bus_inbox | agent_bus:read | Pull an agent's inbox. | agent_id, status, limit |
agent_bus_reply | agent_bus:write | Reply in a thread. | from_agent_id, body, thread_id, in_reply_to |
agent_bus_ack | agent_bus:write | Acknowledge a message. | agent_id, message_id |