# Dynosend — how to use (mcp.ai)

Connect your Dynosend account and use 18 tools for email straight from your AI agent. Connect with your own API key. Dynosend is an email marketing platform for managing audiences and contacts, operating campaigns, sending transactional messages, and tracking customer events.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_dynosend?ms=1787293500000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `dynosend_add_email_to_blacklist`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/dynosend`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/dynosend/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/dynosend/add/email/to/blacklist` — Permanently add an email address to the Dynosend blacklist. This cannot be undone through the Dynosend API because Dynosend exposes no removal operation.
  - body: { email: string }
- `POST https://api.mcp.ai/api/dynosend/add/tags/to/contact` — Append one or more tags to a contact without replacing its existing tags.
  - body: { tags: string[], email?: string, contact_uid?: string, audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/check/blacklist` — Check whether an email address is on the connected Dynosend account's blacklist and return its timestamp and reason when available.
  - body: { email: string }
- `POST https://api.mcp.ai/api/dynosend/create/contact` — Create a contact in an audience, optionally assigning tags and audience-defined custom fields. Can bypass double opt-in when explicitly requested.
  - body: { tags?: string[], email: string, audience_uid: string, custom_fields?: object, ignore_double_opt_in?: boolean }
- `POST https://api.mcp.ai/api/dynosend/delete/contact` — Permanently delete one contact from an audience for GDPR/CCPA erasure. This destructive operation cannot be undone.
  - body: { email?: string, contact_uid?: string, audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/find/duplicate/contacts` — Find contacts that use the same email address across all audiences in the connected Dynosend account.
  - body: { email: string }
- `POST https://api.mcp.ai/api/dynosend/get/audience` — Get one audience's configuration, custom-field definitions, contact information, and subscription statistics by audience UID.
  - body: { audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/get/campaign` — Get one campaign's configuration and delivery, open, click, spam, bounce, and unsubscribe insights.
  - body: { campaign_uid: string }
- `POST https://api.mcp.ai/api/dynosend/get/contact` — Get one contact in an audience by contact UID or email address.
  - body: { email?: string, contact_uid?: string, audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/list/audiences` — List audiences available to the connected Dynosend account, including the UID needed by audience and contact tools.
- `POST https://api.mcp.ai/api/dynosend/list/campaigns` — List campaigns in the connected Dynosend account, including status and the campaign UID used by campaign tools.
- `POST https://api.mcp.ai/api/dynosend/list/contacts` — Return one page of contacts in a Dynosend audience, including contact UIDs, subscription status, tags, and audience-defined custom-field values.
  - body: { page?: integer, per_page?: integer, audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/record/contact/event` — Record an application event for a contact in an audience. Dynosend stores the event persistently for automations and segmentation, and its API does not provide an operation to delete recorded events.
  - body: { email?: string, event_name: string, contact_uid?: string, audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/send/transactional/message` — Send a configured Dynosend transactional message. This immediately sends email and may create the recipient as a new Dynosend contact if the address is unknown.
  - body: { subject?: string, html_body?: string, recipient: string, text_body?: string, custom_tags?: object[], content_mode: string, custom_headers?: object[], transactional_uid: string }
- `POST https://api.mcp.ai/api/dynosend/set/campaign/delivery/state` — Pause a sending campaign or resume a paused campaign by setting its delivery state to paused or sending. Resuming can send queued emails to campaign recipients; this does not start a ready campaign.
  - body: { state: string, campaign_uid: string }
- `POST https://api.mcp.ai/api/dynosend/set/contact/subscription/status` — Set a contact's subscription status to subscribed or unsubscribed in an audience.
  - body: { email?: string, status: string, contact_uid?: string, audience_uid: string }
- `POST https://api.mcp.ai/api/dynosend/start/campaign` — Start a ready broadcast campaign. This immediately sends email to all campaign recipients and cannot be undone.
  - body: { campaign_uid: string }
- `POST https://api.mcp.ai/api/dynosend/update/contact` — Update a contact's email, replace its complete tag set, or set audience-defined custom fields.
  - body: { tags?: string[], new_email?: string, contact_uid?: string, audience_uid: string, current_email?: string, custom_fields?: object }

## Example prompts
- "What can I do in Dynosend?"
- "Show me a summary of my Dynosend account"

## More
- Page: https://mcp.ai/dynosend
- Agent spec (llms.txt): https://mcp.ai/dynosend/llms.txt
- Postman collection: https://mcp.ai/dynosend/postman.json
