Federation
How Pact federates external systems under governance — the MCP federation gateway (install third-party MCP servers with consent, PII redaction, cost caps, and audit) and cloud video-meeting federation with recording-consent enforcement.
Federation is how Pact reaches out to systems you own or subscribe to and pulls their capability in under a single governance boundary — consent, PII policy, rate limits, cost, and an audit trail. Two federation surfaces are live today: the MCP federation gateway (agent tools) and cloud video-meeting federation (Zoom, Google Meet, Microsoft Teams).
MCP federation gateway
The gateway lets a workspace install external MCP servers and call their tools through Pact rather than directly, so every call inherits Pact's governance. It's administered under /v1/admin/mcp and backed by core.mcp_federation.
Install and manage servers:
| Method & path | What it does |
|---|---|
GET /v1/admin/mcp/catalog | Marketplace catalogue of installable servers |
POST /v1/admin/mcp/servers | Install a catalogue server or a custom endpoint |
GET /v1/admin/mcp/servers | List installed servers |
POST /v1/admin/mcp/servers/{ref}/discover | Discover the server's tool list |
POST /v1/admin/mcp/servers/{ref}/health | Health-probe the endpoint |
PATCH /v1/admin/mcp/tools/{tool_ref} | Per-tool governance (see below) |
POST /v1/admin/mcp/servers/{ref}/rotate-secret | Re-seal the auth token |
GET /v1/admin/mcp/cost | Federated-spend rollup |
GET /v1/admin/mcp/calls | Recent call audit across the mesh |
Auth material (bearer tokens, header secrets, OAuth) is sealed in tenant_integration_credentials and never round-trips through a response. Routes are owner/admin-only and derive tenant_id from the auth context.
What the gateway enforces on every call
A call routed through the gateway is not a raw proxy. It applies, in order:
- Consent — if the call carries a data subject (a contact or account), the gateway honors that subject's consent state before any data leaves Pact, using the same legitimate-interests gate as outbound email.
- PII redaction at the boundary — arguments are scrubbed per the tool's
pii_policy(allow/redact/block) before they leave the platform. - Per-tool governance —
PATCH /v1/admin/mcp/tools/{tool_ref}setsenabled,allowed_roles,rate_limit_per_min,cost_cap_cents, andpii_policyper tool. - Circuit breaker + retry — a failing upstream trips a breaker (
/servers/{ref}/circuit, reset at/servers/{ref}/circuit/reset) instead of cascading. - Audit mesh — exactly one
mcp_federation_callsrow per call, capturing cost, latency, and redaction count.
Try it against a real server
A public, unauthenticated demo MCP server ships at /mcp/demo-federated/. Install it from the federation wizard to exercise the full gateway — discovery, governed calls, cost, and audit — without standing up your own server first. It exposes two deterministic, in-process tools (a synthetic stock quote and a press-release search), so there's no outbound network and no surprise spend.
Installing from the third-party marketplace (POST /v1/marketplace/third-party/bundles/{slug}/install) creates exactly one mcp_servers row per (tenant_id, slug), naturally capped by a unique constraint. Only the catalogue slug and the federation-side public_id (UUID) appear in responses — never an internal integer id.
Video-meeting federation
Pact federates cloud recordings from Zoom, Google Meet, and Microsoft Teams: connect a provider by host OAuth, and recording-ready / transcript-ready webhooks flow into Pact's meeting-intelligence pipeline (summary, action items, decisions, CRM linking).
- Connect / manage —
/v1/integrations/{zoom,google-meet,microsoft-teams}/*OAuth wizard endpoints (start,callback,status,disconnect). - Ingest —
/v1/integrations/{provider}/webhookreceivers, signature-verified against the tenant-storedwebhook_secret; a valid recording-ready event runs throughprocess_recording_ready. - Read —
/v1/meetings/{meeting_public_id}/intelligenceexposes summary, action items, decisions, speakers, and a searchable timestamped transcript. - Configure —
PUT /v1/integrations/video-meetings/config.
Recording-consent enforcement
The pipeline honors per-attendee recording-consent verdicts (POST /v1/meetings/{meeting_public_id}/recording/consent). Enforcement is a tenant setting (consent_enforcement on tenant_meeting_intel_config, migration 0426) with three modes:
off— never block (the default; legacy behavior).skip_if_declined— block AI/CRM processing if any attendee's latest verdict is a decline.require_all— process only when every attendee has an affirmativegrantedverdict.
When a meeting is blocked, the pipeline short-circuits: no transcript fetch, no summary, no CRM link, no notification — the recording is marked skipped_consent. When processing is allowed and Slack summaries are enabled, a public_id-safe post-meeting summary is posted to the configured channel via the shared alert transport.
What federation means here
Video-meeting federation is built on Pact's cloud-recording subsystem (host-OAuth recordings + provider webhooks), not a live join-bot. It federates the artifacts providers already produce; it does not dial into calls as a participant.