MCP server
Connect an external agent to SendSets' focused, policy-controlled tool surface.
SendSets exposes the same service-layer tools over MCP and REST. An internal LLM
provider is not required. The endpoint uses streamable HTTP at /v1/mcp and
accepts OAuth 2.1 access tokens or static ssk_ API keys.
claude mcp add --transport http sendsets http://localhost:8080/v1/mcpOr configure a static key:
{
"mcpServers": {
"sendsets": {
"type": "http",
"url": "http://localhost:8080/v1/mcp",
"headers": { "Authorization": "Bearer ssk_..." }
}
}
}Send tools
Send-class tools are present in tools/list. Scopes decide whether the caller
can see and call a tool; a credential-bound policy independently decides whether
the action may execute autonomously.
| Tool | Scope | Capability |
|---|---|---|
create_run | WRITE_RUNS | none for draft; campaign.launch for autonomous launch |
get_run, list_runs | READ_RUNS | — |
cancel_run | WRITE_RUNS | — |
start_campaign | EXECUTE_RUNS | campaign.launch |
stop_campaign | WRITE_RUNS | — |
compose_email | SEND_DIRECT_EMAIL | email.compose |
send_reply | SEND_INBOX_REPLY | inbox.reply |
The successful result is always structured:
{
"result": "executed | awaiting_approval | blocked",
"reasons": ["policy does not grant email.compose"],
"approval_url": "http://localhost:5173/app/approvals/..."
}awaiting_approval means a JWT-authenticated human can review the request for
30 minutes. Approval tools are intentionally absent from MCP and REST tool
discovery. A structurally unsafe request is blocked; approval cannot override
missing opt-out, suppression, mailbox health, or deliverability checks.
The registry also exposes focused read/write tools for campaigns, sequences,
leads, mailboxes, warmup, inbox, analytics, suppressions, and webhooks. CRM,
forms, automations, advisor, and other legacy engines are absent unless the
instance operator explicitly sets SENDSETS_ENABLE_EXTENDED_SURFACES=true.
OAuth discovery
Unauthenticated requests return the standard protected-resource challenge. Clients discover authorization metadata from:
/.well-known/oauth-protected-resource/.well-known/oauth-authorization-server
OAuth credentials use sscid_, sscs_, ssat_, ssrt_, and ssac_
prefixes. Old credential formats are not accepted.