MCP server
Connect Claude, ChatGPT, Cursor or your own agent to the remote Stamp0 MCP server at mcp.stamp0.com to send email, set up domains, read inboxes, diagnose SES deliverability and run marketing (contacts, lists, campaigns, sequences).
Available at launch
mcp.stamp0.com goes live with the public launch, so the commands below do not connect yet. Until then, agents can call the API with a project API key.
The Stamp0 MCP server is remote: https://mcp.stamp0.com/mcp, over Streamable HTTP. Clients that support OAuth sign in with your Stamp0 account, so there is no key to paste: you approve the app on a consent screen, and it then acts as you, with your role in your organization. Clients that only take a static header can use an API key instead.
Connect
claude mcp add --transport http stamp0 https://mcp.stamp0.com/mcpThen run /mcp, choose stamp0 and sign in.
The CLI writes these configurations for you: stamp0 mcp install claude-code, claude-desktop, cursor, vscode, windsurf or codex.
Choosing a project
With OAuth, if you have exactly one project the tools use it. Otherwise list them with projects.list and pass project_id to the tools, or pin one in the URL: https://mcp.stamp0.com/mcp?project=prj_… (add &organization=org_… if you belong to several organizations).
Tools
Task tools do a whole job and explain what they did. They carry the stamp0. prefix.
| Tool | What it does |
|---|---|
stamp0.domains.setup | Checks your connection (SES or Cloudflare), adds the domain (never adopting an SES identity you created yourself), re-checks DNS and lists the records still to publish. Call it again to follow progress until the domain is verified |
stamp0.deliverability.diagnose | Checks the connection, DKIM, MAIL FROM and DMARC, and recent bounce and complaint rates against the provider's thresholds (SES review, or Cloudflare's reputation policy; the stricter of both when a project uses both), then ranks what to fix, with the fix. For Cloudflare it also reports plan, token and data-plane problems and an account where Cloudflare disabled sending |
stamp0.sandbox.prepare | SES only: drafts your SES production access request (console steps, use case text and the aws sesv2 put-account-details command) from your account data. It never submits it: you review and send it |
Resource tools map to the API with the same permissions:
| Tool | API |
|---|---|
emails.send, emails.get, emails.list | Send (with an idempotency_key), read status and history |
domains.create, domains.list, domains.get, domains.verify | Domains and their DNS records |
inboxes.list, inboxes.threads, inboxes.reply | Read inbox threads and answer them |
connections.status | Each connection and the next step: SES sandbox status and quota, or the Cloudflare account, data-plane version and limits |
projects.list | The projects an OAuth session can reach |
Marketing tools
Read-only tools are marked as such, so clients can run them without asking.
| Tool | API |
|---|---|
contacts.list, contacts.get, contacts.activity, contacts.imports | Search contacts, read one with its list memberships, its timeline, and import progress |
contacts.upsert, contacts.import, contacts.delete | Create or update up to 100 contacts by email, import CSV text (a consent statement is required), delete a contact |
properties.list, properties.create | Contact properties |
lists.list, lists.members, lists.create, lists.add, lists.remove | Lists and membership |
segments.list, segments.preview, segments.create | Filter segments; preview counts the matches of a filter without saving it |
companies.list, companies.group | Companies, and the Segment-style group call |
templates.list, templates.get, templates.render, templates.create, templates.update, templates.publish | Templates; render previews exactly what would be sent |
campaigns.list, campaigns.get, campaigns.recipients, campaigns.create, campaigns.update, campaigns.test, campaigns.send, campaigns.pause, campaigns.resume, campaigns.cancel | Campaigns with their stats |
sequences.list, sequences.get, sequences.stats, sequences.enrollments, sequences.test, sequences.create, sequences.update, sequences.activate, sequences.pause, sequences.enroll | Sequences; test is a dry run |
events.track, events.list | Custom events that trigger sequences |
forms.list, forms.get, forms.create | Signup forms |
Tools that email an audience or cannot be undone (campaigns.send, campaigns.resume, campaigns.cancel, sequences.activate, sequences.enroll, contacts.delete, lists.remove) are marked destructive and refuse to run without the argument confirm: true. The server tells agents to show you the content, a test or dry run and the audience size first, and to set it only after you approve.
Safety
- You approve every app on a consent screen; Stamp0 never grants access silently.
- Apps signed in with OAuth can send, manage domains, inboxes, suppressions and marketing (contacts, lists, segments, companies, templates, campaigns, sequences, events and forms), and run DNS checks. They cannot delete anything (including contacts and list members), create API keys or webhooks, change connections (or read an AWS external ID and setup link, or any Cloudflare token), marketing settings or billing. Do that in the dashboard.
- Tools never return API key tokens or webhook secrets, and never take over an SES identity you created yourself.
- Changes made through the MCP server are recorded in the organization's audit log under your name and the app's session.
- The server keeps no data of its own: every tool call is an API call made with your credential.
Resend aliases
How Resend's broadcasts, automations, topics, segments, audiences and contact properties map to Stamp0 campaigns, sequences and lists for the Resend SDKs.
CLI
The stamp0 CLI sets up SES domains, sends test emails, reads inboxes, manages contacts, lists, campaigns and sequences, and installs the Stamp0 MCP server and Agent Skill, from your terminal or CI.