The MCP server exposes 47 tools to MCP clients. Tools are grouped here by domain. Each entry shows the tool name, a one-line description, key required parameters, and the MCP annotations (readOnly, destructive, idempotent).
For full parameter shapes including optional fields, the MCP server publishes a schema via the standard MCP tools/list method — most clients (including Claude.ai) display this inline.
| Tool | Description | Key params | Annotations |
|---|
list_contacts | List/filter contacts. Supports count_only, fields=summary. | (filters) | read-only |
get_contact | Fetch a contact with bounded events (20) and actions (10). | contact_id | read-only |
create_contact | Create a contact. Min: email. | email | write |
update_contact | Update properties on a contact. | contact_id | write, idempotent |
get_contact_timeline | Chronological events for a contact across all sources. | contact_id | read-only |
get_contact_conversations | Gmail + Intercom thread history. Pass include_messages=true for bodies. | contact_id | read-only |
list_contact_email_threads | Compact thread list — thread_id, last_message_id, subject. | contact_id | read-only |
list_contact_notes | All notes on a contact. | contact_id | read-only |
create_contact_note | Add a freeform note (direct, no approval). | contact_id, content | write |
update_contact_note | Edit an existing note. | contact_id, note_id, content | write, idempotent |
delete_contact_note | Delete a note. Irreversible. | contact_id, note_id | destructive, idempotent |
| Tool | Description | Key params | Annotations |
|---|
list_companies | List/filter companies (search domain, name, industry). | (filters) | read-only |
get_company | Fetch a company with up to 25 associated contacts. | company_id | read-only |
create_company | Create a company. Min: domain. | domain | write |
update_company | Update properties on a company. | company_id | write, idempotent |
list_company_notes | All notes on a company. | company_id | read-only |
create_company_note | Add a freeform note. | company_id, content | write |
update_company_note | Edit an existing note. | company_id, note_id, content | write, idempotent |
delete_company_note | Delete a note. Irreversible. | company_id, note_id | destructive, idempotent |
| Tool | Description | Key params | Annotations |
|---|
list_identities | Configured senders (email + LinkedIn). No credentials returned. | — | read-only |
Creating, updating, and deleting identities — and the LinkedIn auth flow — is REST-only (identities:write). MCP can read identities to pick a sender, but cannot manage them.
| Tool | Description | Key params | Annotations |
|---|
list_agents | List configured agents. | — | read-only |
get_agent | Full agent config (playbook, capabilities, schedule, LLM). | agent_id | read-only |
update_agent | Modify playbook, capabilities, or enabled state. | agent_id | write, idempotent |
trigger_agent | Manual run, optionally for specific contacts. | agent_id | write |
list_agent_runs | Execution history with status filter. | agent_id | read-only |
get_agent_run | Run details. mode=summary for counts only; mode=full caps at 25 contacts. | run_id | read-only |
| Tool | Description | Key params | Annotations |
|---|
list_actions | List actions, filterable by status, type, contact, company, agent, dates. | (filters) | read-only |
get_action | Single action detail. | action_id | read-only |
create_action | Draft an action. Defaults to require_approval: true. | type, params, identity_id | destructive |
update_action | Edit params, scheduled_time, etc. on a pending/scheduled action. | action_id | write, idempotent |
approve_action | Approve an agent-proposed action by (run_id, contact_id, action_index). | run_id, contact_id, action_index | destructive |
reject_action | Reject an agent-proposed action. | run_id, contact_id, action_index | destructive, idempotent |
create_action accepts the same type values documented in the Actions API — email_message, linkedin_connection, create_note, create_task, update_contact, update_company, update_lifecycle_stage, escalate_to_human, sync_to_crm, send_slack_message, resend_*. The params field is a JSON string in MCP (parsed server-side) so it can be dropped into the tool call as a single string.
| Tool | Description | Key params | Annotations |
|---|
list_events | List events with rich filters. Supports count_only, fields=summary. | (filters) | read-only |
get_event | Single event with associated contact/company. | event_id | read-only |
get_event_types | Distinct event names recorded for the tenant. | — | read-only |
get_event_stats | Total + breakdown by type, domain, day. | (filters) | read-only |
| Tool | Description | Key params | Annotations |
|---|
list_segments | List all segments. | — | read-only |
get_segment_contacts | Paginated members of a segment. | segment_id | read-only |
| Tool | Description | Key params | Annotations |
|---|
batch_get_details | Up to 25 contacts or companies in one call. | entity_type, ids | read-only |
batch_get_activity | Recent events for up to 25 contacts in one call. | contact_ids | read-only |
aggregate_data | Server-side group-by on contacts/companies/events. 50+ dimensions. | entity, group_by | read-only |
aggregate_data is the right tool for any “by X, count Y” question. Always prefer it over paginating list tools.
| Tool | Description | Key params | Annotations |
|---|
review_pending_actions | Consolidated view of pending actions grouped by agent and run. | — | read-only |
This is the queue view a human (or Claude) walks through when approving agent output. Filter by agent_id, contact_id, or type to focus the review.
The Pathbound MCP server is built on the @modelcontextprotocol/sdk. The same tool list above is exposed via the standard tools/list method — any compliant MCP client can connect via OAuth and call them. See the MCP authentication flow for the OAuth handshake.
For the source of truth on each tool’s parameter schema and behaviour, see packages/mcp/src/tools.ts in the Pathbound repo.