SendSetsDocs

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/mcp

Or 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.

ToolScopeCapability
create_runWRITE_RUNSnone for draft; campaign.launch for autonomous launch
get_run, list_runsREAD_RUNS
cancel_runWRITE_RUNS
start_campaignEXECUTE_RUNScampaign.launch
stop_campaignWRITE_RUNS
compose_emailSEND_DIRECT_EMAILemail.compose
send_replySEND_INBOX_REPLYinbox.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.

On this page