PPactDocs
MCP & AI agents

MCP tool reference

Every tool Pact's MCP server exposes — parameters, output, and required scope.

Pact's MCP server (https://api.pact.place/mcp) exposes nine read/run tools. All reads are consent-filtered; contact PII is BYOK-decrypted per tenant; every call is audited and cost-attributed.

Read tools

query_accounts

Search CRM accounts (companies). Scope: read:accounts.

search?, industry?, owner?, limit? (1–100, default 25), offset?{ items: Account[], returned, total, consent_filtered, limit, offset }.

query_contacts

Search CRM contacts (people); name/email/phone decrypted per tenant. Scope: read:contacts.

search?, company?, limit?, offset?{ items: Contact[], returned, total, consent_filtered, ... }.

query_deals

Search pipeline deals. Scope: read:deals.

search?, stage_name?, forecast_cat? (Pipeline/Commit/Best Case/Won/Lost), owner?, limit?, offset?{ items: Deal[], returned, total, consent_filtered, ... }.

query_pipeline_health

Aggregate pipeline metrics. Scope: read:deals.

pipeline_id?{ open_pipeline_value, weighted_pipeline_value, open_deal_count, win_rate, by_stage[], citations[] }.

get_metric_explanation

Explain why a KPI moved, grounded in the records. Incurs AI cost. Scope: read:deals.

metric, range? (default 30d), value?, previous?, delta_pct?, unit?, label?{ explanation, confidence, citations[], cost_cents, model }.

ask_workspace

Natural-language question across the workspace. Incurs AI cost. Scope: read:accounts.

question, conversation_id?{ answer, citations[], ai_powered, conversation_id, consent_filtered, cost_cents }.

read_briefing

A daily briefing for the calling user. Scope: read:accounts.

focus?{ pipeline, recent_deal_activity[], narrative, narrative_citations[], cost_cents }.

Agent tools

list_agents

List the Pact AI agents runnable via fire_agent. Scope: read:workflows.

{ agents: [{ id, name, description, reads_pii, tier, schedule }] }.

fire_agent

Run a Pact AI agent. Scope: read:workflows.

agent_id, agent_input?, target_type? (account/contact/deal), target_id?{ agent, status, output, confidence, citations[], cost_cents, run_id }, or { blocked: true, reason: "consent_withdrawn", detail } when the agent reads PII about a subject who withdrew consent.

Note

The typed clients (TypeScript, Python) wrap each of these as a method that returns the structured output directly — you rarely call them by raw name.