MCP

Operate Send & Retain from Claude Code or claude.ai over MCP.

Send & Retain is built to be driven over MCP — from Claude Code or a claude.ai connector — so you can set up domains, author templates, send email, and build automations in natural language. The same tools power the in-app copilot chat.

Tokens and scope

MCP tokens are prefixed aiem_ (distinct from the aem_ send-API keys):

  • Org-scoped tokens reach every company in the org. Call email_list_projects first, then pass the projectId to project-scoped tools. allowed_project_ids can narrow an org token to a subset.
  • Project-scoped tokens are clamped to one company.

read vs write is orthogonal to scope. Mint tokens in Workspace → Settings → MCP. claude.ai connectors authenticate via OAuth with a consent screen instead of a pasted token.

What you can do

The toolset (email_*) covers the whole product. A sampling:

  • Setupemail_get_connection_status, email_connect_provider (returns the settings URL — a human enters credentials), email_create_domain, email_verify_domain, email_create_sender, email_create_api_key.
  • Templatesemail_create_template, email_render_template, email_publish_template_version, email_send_template_test.
  • Sending & observabilityemail_send_email (one recipient, published template), email_get_message, email_search_messages, email_get_email_metrics.
  • Contacts & eventsemail_upsert_contact, email_import_contacts, email_emit_contact_event.
  • Automationsemail_create_automation, email_add_automation_steps, email_set_automation_status, email_set_ab_test.
  • Suppressionemail_list_suppressions, email_add_suppression, email_remove_suppression.

Guardrails

There's no approval queue — guardrails are built into the tools instead:

  • Automations are created paused; enabling is a separate confirm: true call.
  • Provider keys cannot be set over MCP — email_connect_provider hands back the settings-page URL for a human.
  • Each project has a sendsPaused kill switch plus daily and monthly send caps.
  • Complaint suppressions are never removable.

Production events should come through POST /api/v1/events from your app. email_emit_contact_event is for test-driving automation triggers by hand.

On this page