Back to blog
MCPAIDeveloper ToolsClaudeCursor

Email MCP Server: Send Emails from Claude, Cursor & AI Assistants

Connect your AI assistant to email with the SendPigeon MCP server. Send emails, manage templates, and check delivery status — all through natural language.

SendPigeon TeamFebruary 27, 20264 min read

Your AI assistant can now send emails. One config change, and Claude, Cursor, or any MCP-compatible client gets access to your entire email workflow: sending, templates, contacts, and delivery tracking.

TL;DR

Quickest setup:

npx @sendpigeon/mcp init

Paste your API key, pick a client, done. Config written automatically.


What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools. Instead of pasting API keys into prompts or writing one-off scripts, you configure an MCP server once and your AI can use it natively. Think of it as USB-C for AI — one plug, any device.


Setup

Step 1: Get an API key

Sign up at sendpigeon.com and grab an API key from the dashboard. Use a test-mode key (sk_test_...) while setting up — emails won't actually deliver.

Step 2: Run the init command

npx @sendpigeon/mcp init

Paste your API key, pick your client (Claude Desktop, Cursor, or Claude Code), and the config file is written for you. Merges with existing MCP servers automatically.

Step 3: Restart and use

Restart your AI client. You should see SendPigeon's tools available. Try asking:

"Send a test email to me@example.com with subject 'Hello from AI'"


Manual setup

Or configure manually. Add the server block to your client's config file:

Claude Desktop

Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "sendpigeon": {
      "command": "npx",
      "args": ["-y", "@sendpigeon/mcp"],
      "env": {
        "SENDPIGEON_API_KEY": "sk_test_your_key_here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "sendpigeon": {
      "command": "npx",
      "args": ["-y", "@sendpigeon/mcp"],
      "env": {
        "SENDPIGEON_API_KEY": "sk_test_your_key_here"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "sendpigeon": {
      "command": "npx",
      "args": ["-y", "@sendpigeon/mcp"],
      "env": {
        "SENDPIGEON_API_KEY": "sk_test_your_key_here"
      }
    }
  }
}

Claude Code

Add to .mcp.json in your project root:

{
  "mcpServers": {
    "sendpigeon": {
      "command": "npx",
      "args": ["-y", "@sendpigeon/mcp"],
      "env": {
        "SENDPIGEON_API_KEY": "sk_test_your_key_here"
      }
    }
  }
}

What you can do

Once connected, your AI assistant can:

Send emails — "Send a welcome email to john@acme.com from hello@myapp.com"

Use templates — "Send the password-reset template to the user, with their name set to Sarah"

Check delivery — "What's the status of email em_abc123?"

Manage templates — "Create a welcome template with name and company variables"

Manage contacts — "Add jane@example.com to my audience with the newsletter tag"

Send broadcasts — "Create a newsletter broadcast and send it to everyone tagged as subscriber"

Configure webhooks — "Set up a webhook to https://myapp.com/hooks for delivery events"

View domains — "List my sending domains and their verification status"

All through natural conversation. No code, no dashboard, no context switching.


Example conversation

Here's a realistic workflow — an AI assistant sending a welcome email via template:

You: Send the welcome email template to sarah@acme.com from hello@myapp.com. Set the name variable to Sarah and company to Acme Corp.

AI: I'll send that using your welcome template. Let me look it up first.

[AI calls get_template with templateId "welcome"]

The template uses variables name and company. Sending now.

[AI calls send_template_email with the parameters]

Done! Email sent (ID: em_x7k9m2). It's queued for delivery. Want me to check the status in a minute?


Use test-mode API keys during development. Keys starting with sk_test_ send emails through the local dev server instead of delivering them. Switch to sk_live_ when you're ready for production.


Tools reference

Sendingsend_email, send_template_email, send_batch_emails, get_email_status, cancel_email

Templateslist_templates, get_template, create_template, update_template, publish_template, delete_template

Domainslist_domains, create_domain, get_domain, verify_domain, delete_domain

Contactslist_contacts, create_contact, update_contact, delete_contact, batch_contacts, get_audience_stats

Broadcastscreate_broadcast, send_broadcast, schedule_broadcast, get_broadcast_analytics, list_broadcast_recipients

Webhooksget_webhook_config, enable_webhook, update_webhook, disable_webhook, test_webhook, list_webhook_deliveries

Trackingget_tracking_defaults, update_tracking_defaults

Suppressionslist_suppressions, delete_suppression

Over 40 tools total. See the full reference for details.


Next Steps