The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Sendsets listing page.
Sendsets gives AI agents a programmable way to run cold email. An agent (Claude Code, Codex, Cursor, Gemini CLI, ChatGPT, or your own code) can connect sending mailboxes, warm them up, build and launch outbound campaigns, add leads, and read and answer replies through an MCP server, a CLI, or a REST API instead of a sales dashboard.
This repository is the public, agent-facing home of Sendsets:
| What | Where |
|---|---|
| Remote MCP server | https://api.sendsetsapi.com/v1/mcp (streamable HTTP, OAuth 2.1 or API key) |
Agent skills (SKILL.md) | skills/send-cold-email, skills/sendsets, skills/sendsets-cli |
| Claude Code plugin marketplace | .claude-plugin/marketplace.json |
| Codex plugin marketplace | .agents/plugins/marketplace.json, .codex-plugin/plugin.json |
| Agent Plugins manifest | plugin.json, mcp.json (agent-plugins.org) |
| Gemini CLI extension | gemini-extension.json |
| MCP Registry manifest | server.json (io.github.AddisonHoff/sendsets) |
| OpenAPI 3.1 spec | openapi.json |
| Docs | docs.sendsetsapi.com |
Sign up at app.sendsetsapi.com. Free for up to 10 mailboxes.
The MCP server and the REST API expose the same service-layer tools. What a credential can see is limited by the scopes it was granted.
create_run, get_run, list_runs, cancel_run)Send-class tools (start_campaign, compose_email, send_reply, and an autonomous create_run) go through a credential-bound policy. A call returns executed, awaiting_approval (a person approves it in the dashboard within 30 minutes), or blocked. Approval can never override a missing opt-out, a suppression, or a mailbox health check.
The server advertises OAuth 2.1 protected-resource metadata (RFC 9728) and supports dynamic client registration, so MCP clients that speak OAuth sign you in through the browser with no key to paste. A static ssk_ API key from the dashboard works too, as Authorization: Bearer ssk_....
Claude Code
Or install the plugin, which adds the MCP server and the skills together:
Claude (claude.ai and Claude Desktop): Settings > Connectors > Add custom connector, URL https://api.sendsetsapi.com/v1/mcp.
Codex
or just the MCP server:
Cursor (~/.cursor/mcp.json)
VS Code (.vscode/mcp.json)
Gemini CLI
Any client with a static key
send-cold-email is the direct path: take a lead list and send a cold email sequence with follow-ups, from mailbox check to launch and replies. The sendsets skill teaches an agent to read your product, propose five outbound workflows that use the product itself, then build and run the one you pick. The sendsets-cli skill is the full reference for driving Sendsets from a terminal.
Or copy skills/sendsets into ~/.claude/skills/ (Claude Code) or ~/.codex/skills/ (Codex). The same files are served at https://sendsetsapi.com/skills/sendsets/SKILL.md, and https://sendsetsapi.com/claude.md is a one-link starting point for any coding agent.
Windows: scoop bucket add sendsets https://github.com/AddisonHoff/homebrew-tap, then scoop install sendsets. Archives and checksums.txt for every platform are on sendsets-releases. The CLI signs in as a person and speaks only the public REST API; every command takes --json.
Base URL https://api.sendsetsapi.com/v1. Errors carry a stable code and request_id, lists use data plus cursor pagination, and side-effectful writes accept an Idempotency-Key. Spec: openapi.json. Reference: docs.sendsetsapi.com/api.
https://api.sendsetsapi.com/v1/mcp, over HTTPS, authenticated with your own OAuth sign-in or API key. Every tool call reads or changes data in your Sendsets workspace; send tools deliver real email from your connected mailboxes.sendsets CLI with Homebrew or Scoop from AddisonHoff/homebrew-tap, or from a release archive checked against its published checksums.txt. The CLI talks only to https://api.sendsetsapi.com.Sendsets is conservative by default: 50 campaign emails per mailbox per day, 600 seconds between sends from one mailbox, gradual warmup, automatic suppression on bounces, complaints and unsubscribes, and a stop on reply. A test send and a live launch are separate decisions, and an agent should not launch a campaign unless the user asked it to send.
The skills and manifests in this repository are licensed under Apache-2.0.