> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autosend.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AutoSend MCP Server

> Manage AutoSend campaigns, automations, templates, contacts, senders, and analytics from any MCP-compatible AI assistant.

export const AUTOSEND_PATHS = {
  dashboard: 'https://autosend.com/dashboard',
  apiKey: 'https://autosend.com/account/api-key',
  faqs: 'https://autosend.com/faq',
  marketingEmails: 'https://autosend.com/marketing-emails',
  webhooks: 'https://autosend.com/webhooks',
  composeByAutoSend: 'https://autosend.com/compose',
  emailActivity: 'https://autosend.com/email-activities',
  team: 'https://autosend.com/settings/team',
  pricing: 'https://autosend.com/pricing',
  verifyEmail: 'https://autosend.com/compose/email-builder?template=verify-email',
  welcomeEmail: 'https://autosend.com/compose/email-builder?template=welcome-email',
  productUpdate: 'https://autosend.com/compose/email-builder?template=product-update',
  newsletter: 'https://autosend.com/compose/email-builder?template=newsletter',
  automations: 'https://autosend.com/automations',
  globalSuppressions: 'https://autosend.com/suppressions/global',
  signup: 'https://autosend.com/signup',
  domains: 'https://autosend.com/settings/domains',
  smtpKey: 'https://autosend.com/settings/smtp',
  logoKit: 'https://asend.email/logo',
  contactsPage: 'https://autosend.com/contacts/list-and-segments',
  accountBilling: 'https://autosend.com/account/billing',
  accountUsage: 'https://autosend.com/account/usage',
  terms: 'https://autosend.com/legal/terms',
  inbound: 'https://autosend.com/email-activities/inbound'
};

export const APP_PATHS = {
  home: '/',
  quickstart: '/quickstart',
  domainConfiguration: '/domain',
  apiReference: '/api-reference',
  sendEmail: '/api-reference/mails/send',
  bulkSendEmail: '/api-reference/mails/bulk',
  upsertContactApiRef: '/api-reference/contacts/upsert-contact',
  transactional: '/transactional-emails',
  emailActivity: '/transactional-emails/email-activity',
  emailTemplates: '/transactional-emails/email-templates',
  sendingEmail: '/quickstart/email-using-api',
  transactionalTroubleshooting: '/transactional-emails/troubleshooting',
  marketing: '/marketing-emails',
  campaigns: '/marketing-emails/campaigns',
  contacts: '/marketing-emails/contacts',
  contactsIntroduction: '/marketing-emails/contacts/introduction',
  contactsImportCsv: '/marketing-emails/contacts/import-csv',
  contactsLists: '/marketing-emails/contacts/lists',
  contactsSegments: '/marketing-emails/contacts/segments',
  contactsCustomFields: '/marketing-emails/contacts/contact-properties',
  contactsContactProperties: '/marketing-emails/contacts/contact-properties',
  createContactPropertyApiRef: '/api-reference/contact-properties/create',
  listContactPropertiesApiRef: '/api-reference/contact-properties/list',
  getContactPropertyApiRef: '/api-reference/contact-properties/get-by-name',
  deleteContactPropertyApiRef: '/api-reference/contact-properties/delete',
  sender: '/marketing-emails/sender',
  unsubscribeGroups: '/others/unsubscribe-groups',
  webhookIntroduction: '/others/webhooks/introduction',
  webhookEventType: '/others/webhooks/event-type',
  webhookRetries: '/others/webhooks/retries',
  webhookVerifyRequests: '/others/webhooks/verify-requests',
  dynamicTemplates: '/dynamic-templates',
  guides: '/guides',
  sitemap: '/sitemap.xml',
  team: '/others/team',
  automations: '/automations',
  events: '/automations/events',
  sendEventApi: '/api-reference/events/send-event',
  smtpIntroduction: '/quickstart/smtp',
  betterAuth: '/guides/better-auth',
  convexGuide: '/guides/convex',
  templateVariables: '/transactional-emails/variables',
  suppressions: '/others/suppressions',
  rateLimit: '/api-reference/rate-limit',
  nodejsSdk: '/sdk/nodejs',
  smtpIntegrationGuides: '/guides/smtp',
  apiKeys: '/api-keys',
  encryptedPayloads: '/others/encrypted-payloads',
  apiReferenceIntroduction: '/api-reference/introduction',
  lovableGuide: '/ai/integrations/lovable',
  aiIntroduction: '/ai/introduction',
  aiSkills: '/ai/skills',
  aiMcpServer: '/ai/mcp-server',
  aiLovable: '/ai/integrations/lovable',
  aiBolt: '/ai/integrations/bolt',
  aiV0: '/ai/integrations/v0',
  aiReplit: '/ai/integrations/replit',
  mcpClaude: '/ai/mcp-clients/claude',
  mcpCursor: '/ai/mcp-clients/cursor',
  mcpCopilot: '/ai/mcp-clients/copilot',
  mcpWindsurf: '/ai/mcp-clients/windsurf',
  mcpCodex: '/ai/mcp-clients/codex',
  mcpAntigravity: '/ai/mcp-clients/antigravity',
  mcpChatgpt: '/ai/mcp-clients/chatgpt',
  mcpRaycast: '/ai/mcp-clients/raycast',
  domainWarmup: '/marketing-emails/domain-warmup',
  projects: '/projects',
  createAutomationApi: '/api-reference/automations/create-automation',
  migrationSendgrid: '/migration/sendgrid',
  migrationResend: '/migration/resend',
  auth0CustomAction: '/guides/auth0-custom-action',
  accountBilling: '/others/account/billing',
  accountUsage: '/others/account/usage',
  inboundIntroduction: '/inbound/introduction',
  listInboundMessagesApi: '/api-reference/inbound-emails/list-messages',
  getInboundMessageApi: '/api-reference/inbound-emails/get-message',
  downloadInboundAttachmentApi: '/api-reference/inbound-emails/download-attachment',
  replyToInboundMessageApi: '/api-reference/inbound-emails/reply-to-message',
  wikiDailySendingLimit: '/wiki/daily-sending-limit'
};

<Frame>
  <img src="https://mintcdn.com/autosend-13920f5c/i6ZwoNOMtaBsEIWa/images/ai-tools/autosend-mcp.jpg?fit=max&auto=format&n=i6ZwoNOMtaBsEIWa&q=85&s=cfaf7e8d9263b1d114f539e64162bce4" alt="Autosend MCP" width="1800" height="945" data-path="images/ai-tools/autosend-mcp.jpg" />
</Frame>

The AutoSend MCP (Model Context Protocol) server lets you manage email campaigns, automations, templates, contacts, senders, and analytics directly from AI assistants like Claude, Cursor, Codex, Antigravity, and other MCP-compatible clients.

It's a remote MCP server with OAuth that gives AI tools secure access to your AutoSend project, available at:

```html theme={null}
https://mcp.autosend.com/
```

Instead of switching between your AI assistant and the AutoSend dashboard, you can use natural language to:

* Create, schedule, and send email campaigns
* Design and update email templates
* Build and activate multi-step email automations
* Browse your contact lists, segments, custom fields, and event definitions
* Look up verified senders and suppression groups
* Pull campaign and email activity analytics
* Switch between AutoSend projects on the fly

## Prerequisites

<CardGroup cols={2}>
  <Card href={AUTOSEND_PATHS.signup} title="AutoSend Account">
    Sign up for an AutoSend account to get started.
  </Card>

  <Card href={APP_PATHS.domainConfiguration} title="Verified Domain">
    Add and verify a domain in AutoSend to send emails from.
  </Card>

  <Card href={APP_PATHS.sender} title="Verified Sender">
    Set up at least one verified sender for sending emails.
  </Card>
</CardGroup>

## Connecting to AutoSend MCP

AutoSend MCP uses a streamable HTTP transport with OAuth 2.0 authentication. When you add the server to your MCP client, the client handles the OAuth authorization flow automatically. You just need to log in to your AutoSend account when prompted.

Choose your AI client to get started:

<CardGroup cols={2}>
  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/claude-code.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=e6078dbac553f07b7cd86160333d9c89" href={APP_PATHS.mcpClaude} title="Claude" width="120" height="120" data-path="images/ai-tools/claude-code.png">
    Claude Desktop and Claude Code
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/cursor.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=cc2adfa8ff2d766c22314884d8f49046" href={APP_PATHS.mcpCursor} title="Cursor" width="120" height="120" data-path="images/ai-tools/cursor.png">
    Settings UI or config file setup
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/copilot.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=03b17a5c40e45c78e94b5f8d22ac1566" href={APP_PATHS.mcpCopilot} title="Copilot" width="120" height="120" data-path="images/ai-tools/copilot.png">
    VS Code with GitHub Copilot
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/windsurf.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=48a7bb4119ab6ef5c970ca0b14af8dbb" href={APP_PATHS.mcpWindsurf} title="Windsurf" width="120" height="120" data-path="images/ai-tools/windsurf.png">
    Windsurf MCP configuration
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/codex.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=75416689d548738f6303faa7193e89dc" href={APP_PATHS.mcpCodex} title="Codex CLI" width="120" height="120" data-path="images/ai-tools/codex.png">
    OpenAI Codex command line
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/antigravity.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=cc7b18ee7d0415a90ff5f5a844794ce2" href={APP_PATHS.mcpAntigravity} title="Antigravity" width="120" height="120" data-path="images/ai-tools/antigravity.png">
    Google Antigravity setup
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/chatgpt.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=23f186cf5fb853d3309650f2c054d2bc" href={APP_PATHS.mcpChatgpt} title="ChatGPT" width="120" height="120" data-path="images/ai-tools/chatgpt.png">
    ChatGPT connector setup
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/60GQg54gtTfeyr8J/images/ai-tools/raycast.png?fit=max&auto=format&n=60GQg54gtTfeyr8J&q=85&s=5740fef967d70816b095140a717891ad" href={APP_PATHS.mcpRaycast} title="Raycast" width="120" height="120" data-path="images/ai-tools/raycast.png">
    Raycast MCP extension
  </Card>
</CardGroup>

## Authentication

AutoSend MCP uses **OAuth 2.0** to securely connect to your account. You don't need to manage any API keys or tokens yourself. Your MCP client handles everything automatically.

When you first connect, you'll be redirected to AutoSend to log in and authorize the connection. Once authorized, your client stores the credentials and refreshes them as needed. Each connection is scoped to a single AutoSend project, so your data stays isolated and secure.

## Available Tools

AutoSend MCP exposes 34 tools across 10 categories. Your AI assistant automatically uses the right tools based on your requests.

### Projects

| Tool                  | Description                                                 |
| --------------------- | ----------------------------------------------------------- |
| `get_current_project` | Get the active project's name, domain, and ID               |
| `list_projects`       | List all projects you have access to and see the active one |
| `switch_project`      | Switch the active project for the current MCP session       |

### Lists & Segments

| Tool                     | Description                                         |
| ------------------------ | --------------------------------------------------- |
| `get_lists_and_segments` | Fetch your contact lists and segments for targeting |
| `create_contact_list`    | Create a new contact list                           |

### Contact Properties

| Tool                      | Description                                                                    |
| ------------------------- | ------------------------------------------------------------------------------ |
| `list_contact_properties` | List contact properties with their names and types                             |
| `list_custom_fields`      | Deprecated alias of `list_contact_properties`, kept for backward compatibility |

### Templates

| Tool               | Description                                       |
| ------------------ | ------------------------------------------------- |
| `list_templates`   | List all email templates in your account          |
| `search_templates` | Search templates by name, content, or type        |
| `get_template`     | Get a specific template by ID                     |
| `create_template`  | Create a new email template using HTML            |
| `update_template`  | Update an existing template's content or settings |
| `delete_template`  | Permanently delete a template                     |

### Senders

| Tool            | Description                               |
| --------------- | ----------------------------------------- |
| `list_senders`  | List all verified senders in your account |
| `get_sender`    | Get details of a specific verified sender |
| `create_sender` | Add a new verified sender                 |

### Suppression Groups

| Tool                       | Description                                 |
| -------------------------- | ------------------------------------------- |
| `list_suppression_groups`  | List suppression (unsubscribe) groups       |
| `get_suppression_group`    | Get details of a specific suppression group |
| `create_suppression_group` | Create a new suppression group              |

### Campaigns

| Tool                 | Description                                                             |
| -------------------- | ----------------------------------------------------------------------- |
| `list_campaigns`     | List campaigns with optional filters by status, name, or date           |
| `get_campaign`       | Get details of a specific campaign including metrics                    |
| `create_campaign`    | Create a draft campaign with HTML content in one call                   |
| `update_campaign`    | Update an existing draft campaign's settings or content                 |
| `delete_campaign`    | Permanently delete a campaign                                           |
| `duplicate_campaign` | Duplicate an existing campaign as a new draft                           |
| `send_campaign`      | Send a draft campaign now or schedule it for later (confirmation gate)  |
| `send_test_email`    | Send a test email to preview a template or campaign (confirmation gate) |

### Events

| Tool                     | Description                                              |
| ------------------------ | -------------------------------------------------------- |
| `list_event_definitions` | List custom event types defined for the project          |
| `get_event_definition`   | Get full details of an event, including known properties |

### Automations

| Tool                  | Description                                                                     |
| --------------------- | ------------------------------------------------------------------------------- |
| `list_automations`    | List automations with optional filters for status, tags, and pagination         |
| `get_automation`      | Get full details of an automation, including entry criteria and steps           |
| `create_automation`   | Create a draft automation (workflow) with triggers, waits, emails, and branches |
| `activate_automation` | Activate a draft automation so it starts enrolling contacts (confirmation gate) |

### Analytics

| Tool                           | Description                                                                             |
| ------------------------------ | --------------------------------------------------------------------------------------- |
| `get_campaign_analytics`       | Get delivery analytics for a campaign (sent, opened, clicked, bounced, unsubscribed)    |
| `get_email_activity_analytics` | Get aggregated email activity, optionally filtered by date range, template, or campaign |

## Building Automations

Email automations are multi-step workflows that send sequences of emails triggered by contact actions. You build them through MCP in two stages:

1. **Create a draft** with `create_automation`. You define the entry criteria (contact created, property matches, property changes, or event received), optional exit criteria, and a flat list of steps made up of `wait`, `email`, and `branch` blocks. Drafts never enrol contacts or send anything.
2. **Activate the draft** with `activate_automation`. The tool has a confirmation gate, call it first with `confirmed: false` to preview the workflow, then again with `confirmed: true` to start enrolling contacts and sending emails.

A few preconditions to keep in mind:

* Every email step must reference an automation-type template. Call `create_template` with `templateType: "automation"` first, then pass the returned `templateId` into the step.
* Before referencing a contact field in a filter, call `list_contact_properties` so you use the exact bare property name.
* For event-triggered automations or event-property branches, call `list_event_definitions` (or `get_event_definition` for a single event) to discover the available property keys.

Learn more about <a href={APP_PATHS.automations}>Email Automations</a>, <a href={APP_PATHS.events}>Events</a>, and <a href={APP_PATHS.contactsContactProperties}>Contact Properties</a>.

## Guided Workflows

AutoSend MCP includes three guided workflow prompts that walk your AI assistant through multi-step processes. These prompts provide structured instructions so the assistant gathers the right information and calls the right tools in sequence.

### `create-campaign`

A step-by-step workflow to create a draft email campaign:

1. **Gathers data** - Fetches your lists, segments, senders, and suppression groups
2. **Asks for details** - Campaign purpose, target audience, sender, unsubscribe group, subject line, and preview text
3. **Designs the email** - Proposes a template structure and generates responsive HTML
4. **Creates the draft** - Calls `create_campaign` to create the template and campaign together
5. **Reviews** - Shows a summary with the campaign ID and next steps

| Argument  | Type   | Required | Description                                |
| --------- | ------ | -------- | ------------------------------------------ |
| `context` | string | No       | Initial context about the campaign purpose |

### `create-template`

A step-by-step workflow to create a reusable email template:

1. **Understands purpose** - Asks about template type (marketing or transactional), audience, brand style, and sections
2. **Designs HTML** - Generates responsive email HTML following email client compatibility best practices
3. **Creates the template** - Calls `create_template` with all metadata
4. **Reviews** - Shows a summary with the template ID and next steps

| Argument  | Type   | Required | Description                                |
| --------- | ------ | -------- | ------------------------------------------ |
| `context` | string | No       | Initial context about the template purpose |

### `create-automation`

A step-by-step workflow to build a draft email automation:

1. **Gathers data** - Fetches your lists, segments, senders, suppression groups, custom fields, and event definitions
2. **Asks for details** - Automation name, trigger type, exit conditions, number of emails, timing between them, and any branch logic
3. **Designs the workflow** - Creates the automation-type templates each step needs and proposes the wait, email, and branch sequence
4. **Creates the draft** - Calls `create_automation` to assemble the workflow as a draft
5. **Reviews** - Shows a summary with the automation ID and how to go live with `activate_automation`

| Argument  | Type   | Required | Description                                  |
| --------- | ------ | -------- | -------------------------------------------- |
| `context` | string | No       | Initial context about the automation purpose |

<Info>
  All three prompts support an **auto mode**. Say "auto", "take over", or "just do it" at any
  point, and the assistant will make reasonable decisions for all remaining steps without asking
  for confirmation.
</Info>

## Example Conversations

Here are some things you can ask your AI assistant once AutoSend MCP is connected:

**Campaign management:**

* "Create a newsletter campaign for our March product updates"
* "Show me all draft campaigns"
* "Duplicate the Black Friday campaign and update it for our spring sale"
* "Delete the test campaign I created yesterday"

**Template management:**

* "Create a transactional template for order confirmation emails"
* "Search for templates related to onboarding"
* "Update the welcome email template with a new header design"

**Automation workflows:**

* "Build a 3-email onboarding automation for new Pro plan signups"
* "Show me all my active automations"
* "Activate the welcome series draft we built yesterday"
* "Create an automation that fires when the `order_placed` event is logged"

**Analytics:**

* "What were the open and click rates on last week's newsletter?"
* "Show me email activity for the past 30 days"

**Projects:**

* "Which AutoSend project am I currently on?"
* "Switch me to the staging project"

**Looking up data:**

* "List all my contact segments and their sizes"
* "Show me my verified senders"
* "What suppression groups and custom fields do I have?"

**End-to-end workflows:**

* "I want to send a product launch announcement to our Premium Users segment. Walk me through it."
* "Help me create a reusable welcome email template with the recipient's first name and company"

## Important Notes

<Note>
  All campaigns created through MCP are saved as drafts. You must publish or send them from the
  AutoSend dashboard. This is a safety measure to prevent accidental sends.
</Note>

* **Confirmation gates** - `send_campaign`, `send_test_email`, and `activate_automation` all require `confirmed: true` to actually execute. Call them first with `confirmed: false` to preview what will happen before committing.
* **Project scope** - Each MCP session has one active project at a time. Use `list_projects` to see all projects you can access and `switch_project` to change focus mid-session.
* **Template variables** - Use Handlebars syntax (`{{variableName}}`) for dynamic content. Variable names must start with a letter and can include letters, numbers, and underscores.
* **Character limits** - Campaign name: 200 characters, subject line: 988 characters, preview text: 140 characters.
* **Email HTML** - The MCP server's guided workflows generate email-safe HTML using table-based layouts, inline CSS, and responsive design patterns that work across all major email clients.
* **Scoped access** - Each MCP connection is scoped to a single AutoSend organization. The server cannot access data from organizations you don't belong to.

## Next Steps

<CardGroup cols={2}>
  <Card icon="https://mintcdn.com/autosend-13920f5c/nx_wYfWx3qeZwg1C/icons/skill.svg?fit=max&auto=format&n=nx_wYfWx3qeZwg1C&q=85&s=ae3a53a746a17ed5ec3dceca2fb5be8f" href={APP_PATHS.aiSkills} title="AutoSend Skills" width="24" height="24" data-path="icons/skill.svg">
    Install skill files for additional AI agent context.
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/nx_wYfWx3qeZwg1C/icons/api.svg?fit=max&auto=format&n=nx_wYfWx3qeZwg1C&q=85&s=a257e726f0f001df70664b740dcd5af6" href={APP_PATHS.apiReferenceIntroduction} title="API Reference" width="24" height="24" data-path="icons/api.svg">
    Full API documentation with all endpoints and parameters.
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/nx_wYfWx3qeZwg1C/icons/campaigns.svg?fit=max&auto=format&n=nx_wYfWx3qeZwg1C&q=85&s=147527e098804d4689ce5e084914675d" href={APP_PATHS.campaigns} title="Campaigns" width="24" height="24" data-path="icons/campaigns.svg">
    Learn more about creating and managing email campaigns.
  </Card>

  <Card icon="https://mintcdn.com/autosend-13920f5c/nx_wYfWx3qeZwg1C/icons/email-templates.svg?fit=max&auto=format&n=nx_wYfWx3qeZwg1C&q=85&s=461e1cf135b49bcb45ed4373269d54b9" href={APP_PATHS.emailTemplates} title="Email Templates" width="24" height="24" data-path="icons/email-templates.svg">
    Create reusable email templates with dynamic variables.
  </Card>
</CardGroup>
