🐙 Check out Postmark's new MCP Server!
x
Postmark MCP Server | Postmark

Postmark Labs: Teaching AI to speak email with our new MCP server

Ever tried explaining email deliverability to your pet? You'd probably get the same blank stare as when you ask an AI assistant to help debug your transactional email setup. That's because, until now, AI tools have been like carrier pigeons trying to understand the internet—they know messages need to be delivered, but they're missing the whole digital infrastructure part.

Today, we're excited to announce something from Postmark Labs that changes this: our experimental Model Context Protocol (MCP) server for Postmark. It's like giving AI assistants a direct phone line to your email infrastructure, letting them actually do things instead of just talking about them.

What's an MCP? (Or: How to Teach a Digital Octopus New Tricks) #

Picture an octopus in an aquarium. It's incredibly intelligent, can solve puzzles, and has eight arms ready to help. But it's stuck behind glass—it can see your keyboard, and understand what you want, but it can't type that email-sending code for you. That sums up AI assistants today: smart but isolated.

Model Context Protocol (MCP) is like installing little portals in that glass. Suddenly, our clever octopus friend can reach through and interact with your tools directly. When you tell Claude, "Check my Postmark delivery stats for the past week," it doesn't just tell you how to do it—it actually does it.

Think of MCP as a universal translator between AI brains and developer tools. Instead of copying and pasting between Claude and your Postmark dashboard (or worse, explaining API calls to an AI that can't execute them), MCP creates a direct connection. It's the difference between reading a recipe and having a sous chef who can actually chop the onions.

Early access: One server, endless possibilities #

This is a Postmark Labs release, which means we're sharing it early because we're excited about the possibilities—and we want your input on where to take it next. Our MCP server currently works with a single Postmark server (remember, in Postmark, servers are like folders that help organize your email sending).

Here's what you can do today:

// What you used to type into Claude: 
"How do I send an email with Postmark?"

// What you can now say:
"Send a test email to team@example.com about tomorrow's deployment"
// And Claude actually sends it through your Postmark server!

Setting up your AI email assistant #

Getting started is straightforward. First, grab the MCP server from our GitHub repository:

git clone https://github.com/ActiveCampaign/postmark-mcp.git
cd postmark-mcp
npm install

Configure your environment variables in the cloned repo:

# .env file
POSTMARK_SERVER_TOKEN=your-server-token-here
DEFAULT_SENDER_EMAIL=hello@yourdomain.com
DEFAULT_MESSAGE_STREAM=outbound

claude_desktop_config.json and cursor-mcp.json examples:

{
    "mcpServers": {
      "postmark": {
        "command": "/usr/local/bin/node", // which node
        "args": ["/Users/your-name/your-location/postmark-mcp/index.js"], // realpath index.js
        "env": {
          "POSTMARK_SERVER_TOKEN": "your-postmark-server-token",
          "DEFAULT_SENDER_EMAIL": "your-default-sender-email",
          "DEFAULT_MESSAGE_STREAM": "your-default-message-stream"
        }
      }
    }
  }

The setup follows the standard MCP pattern you might recognize from other integrations. Your Postmark server token acts as the key that lets AI assistants work with your specific email setup.

Real-world magic: What can you actually do? #

Here's where it gets fun. Let's look at some actual examples of what's possible when your AI assistant can speak directly to Postmark.

Example 1: Send a single text email. #

Example Prompt:

Send this email:

### to:
user@emailaddress.com

### subject:
Postmark MCP Server Launch

### tag:
welcome-email

### textBody:
We’re excited to relaunch Postmark Labs, starting with the new MCP server—a simple, flexible way to explore what Postmark can do. Using easy prompts, you can send test emails, check delivery stats, and experiment with Postmark’s features—without needing to write code or connect it to your app.

It also works seamlessly with AI-powered tools like Claude Desktop and Cursor, so whether you’re a marketer, a developer, or vibe coder, it’s easier than ever to get hands-on with Postmark. Visit postmarkapp.com/labs to try it out—this is just the beginning of what’s coming from Postmark Labs.

Claude/Cursor/LLM:

I'll send that email for you right away.

Expected Payload:

{
  `to`: `user@emailaddress.com`,
  `tag`: `welcome-email`,
  `subject`: `Postmark MCP Server Launch`,
  `textBody`: `We're excited to relaunch Postmark Labs, starting with the new MCP server—a simple, flexible way to explore what Postmark can do. Using easy prompts, you can send test emails, check delivery stats, and experiment with Postmark's features—without needing to write code or connect it to your app.

It also works seamlessly with AI-powered tools like Claude Desktop and Cursor, so whether you're a marketer, a developer, or vibe coder, it's easier than ever to get hands-on with Postmark. Visit postmarkapp.com/labs to try it out—this is just the beginning of what's coming from Postmark Labs.`
}

Response Format:

✅ Email sent successfully!
📧 MessageID: dc2c6d6d-1234-5678-b9e0-f554494198e5
👤 To: user@emailaddress.com
📝 Subject: Postmark MCP Server Launch

Claude/Cursor/LLM:

Perfect! Your email about the Postmark MCP Server Launch has been sent successfully to user@emailaddress.com. The message ID is dc2c6d6d-1234-5678-b9e0-f554494198e5 for your records.

Example 2: Lists all available templates. #

Example Prompt:

Show me a list of all the email templates available in our Postmark account.

Response Format:

Here are all your available email templates:

Basic Template
- Template ID: 12345678
- Alias: basic
- Subject: none

Welcome Template
- Template ID: 23456789
- Alias: welcome
- Subject: none

Both templates don't have predefined subjects, so you'll need to specify a subject when using them with the template email function.

Example 3: Send an email using a pre-defined template. #

Example Prompt:

Send this email:

### to:
user@emailaddress.com

### templateAlias:
welcome

### tag:
welcome-email

### templateModel:
product_url: https://myfakeapp.com
product_name: MyFakeApp
name: John Doe
action_url: https://myfakeapp.com/register
login_url: https://myfakeapp.com/login
username: johndoe
trial_length: 30 days
trial_start_date: 2025-06-01
trial_end_date: 2025-07-01
support_email: info@myfakeapp.com
live_chat_url: https://myfakeapp.com/chat
sender_name: MyFakeApp Team
help_url: https://myfakeapp.com/help
company_name: MyFakeApp
company_address: 123 Main St, Anytown, USA

Claude/Cursor/LLM:

I'll send that welcome email using the template for you.

Expected Payload:

{
  `to`: `user@emailaddress.com`,
  `tag`: `welcome-email`,
  `templateAlias`: `welcome`,
  `templateModel`: {
    `name`: `John Doe`,
    `help_url`: `https://myfakeapp.com/help`,
    `username`: `johndoe`,
    `login_url`: `https://myfakeapp.com/login`,
    `action_url`: `https://myfakeapp.com/register`,
    `product_url`: `https://myfakeapp.com`,
    `sender_name`: `MyFakeApp Team`,
    `company_name`: `MyFakeApp`,
    `product_name`: `MyFakeApp`,
    `trial_length`: `30 days`,
    `live_chat_url`: `https://myfakeapp.com/chat`,
    `support_email`: `info@myfakeapp.com`,
    `trial_end_date`: `2025-07-01`,
    `company_address`: `123 Main St, Anytown, USA`,
    `trial_start_date`: `2025-06-01`
  }
}

Response Format:

✅ Template email sent successfully!
📧 MessageID: e08607e9-1234-5678-bd08-e127aeb026f0
👤 To: jtorres@activecampaign.com
🎯 Template: welcome

Claude/Cursor/LLM:

Perfect! Your welcome email has been sent successfully to user@emailaddress.com using the welcome template. The message ID is e08607e9-0a5f-1234-5678-e127aeb026f0 for your records.
The email was personalized with all the MyFakeApp details you provided, including the 30-day trial information and contact details.

Example 4: Retrieves email delivery statistics. #

Example Prompt:

Show me our Postmark email delivery statistics  
### From:  2025-05-01  
### To:  2025-06-06  
### Tag: welcome-email

Claude/Cursor/LLM:

I'll get your Postmark email delivery statistics for the welcome-email tag from May 1st to June 6th, 2025.

Expected Payload:

{
  `tag`: `welcome-email`,
  `toDate`: `2025-06-06`,
  `fromDate`: `2025-05-01`
}

Response Format:

📊 **Email Statistics Summary**

📤 **Sent:** 18 emails
👁️ **Open Rate:** 91.7% (11/12 tracked emails)
🔗 **Click Rate:** 4.2% (4/96 tracked links)

📅 **Period:** 2025-05-01 to 2025-06-06
🏷️ **Tag:** welcome-email

Claude/Cursor/LLM:

Here are your Postmark email delivery statistics for the welcome-email tag from May 1st to June 6th, 2025:
Overall Performance:

18 emails sent in total
91.7% open rate (11 out of 12 tracked emails were opened)
4.2% click rate (4 clicks out of 96 tracked links)

This shows excellent engagement with your welcome emails - a 91.7% open rate is outstanding! The click rate of 4.2% is also solid for welcome emails. Your welcome email campaign appears to be performing very well during this period.

The technical details (for the curious developers) #

Our MCP server exposes these Postmark capabilities as tools:

  • sendEmail: Send individual transactional emails with full control
  • sendEmailWithTemplate: Use your existing Postmark templates
  • listTemplates: Browse available email templates
  • getDeliveryStats: Analyze your sending performance

Each tool is designed to be both powerful and safe. The server respects Postmark's best practices—no accidental bulk sends, proper rate limiting, and clear audit trails of what your AI assistant is doing.

Here's what a typical interaction looks like under the hood:

{
  "tool": "sendEmail",
  "parameters": {
    "to": "developer@example.com",
    "subject": "Your CI/CD Pipeline Update",
    "textBody": "Build #1234 completed successfully...",
    "tag": "ci-notifications"
  }
}

The MCP server handles all the Postmark API complexity, authentication, and error handling. Your AI assistant just needs to know what you want to accomplish.

Current limitations (we're just getting started!) #

Since this is a Labs release, we're starting with a specific focus:

  • Single server support: The current version works with one Postmark server at a time (specified by your server token)
  • No server management: You can't create or modify servers through MCP yet
  • Core email operations: We've prioritized the most common email tasks first

These aren't permanent limitations—they're starting points. Your feedback will help us prioritize what comes next.

Security first (because email matters) #

We've built this with Postmark's security standards in mind:

  • Your server token never leaves your local environment
  • All operations are logged and traceable
  • The MCP server respects your Postmark account permissions
  • No email content is stored or logged by the MCP layer

What's next? You tell us! #

This is where you come in. We're releasing this early because we want to build the email + AI integration that truly helps you. Some ideas we're exploring:

  • Multi-server support for complex email architectures
  • Bounce and complaint handling automation
  • Advanced analytics queries ("Show me trends in mobile opens")
  • Integration with other Postmark features, like inbound processing

But maybe you have better ideas! We're especially curious about:

  • What email tasks would you love to delegate to an AI assistant?
  • Which Postmark features are missing from the MCP server?
  • How could this integrate with your existing development workflow?

Share your feedback and ideas →

Try it today #

Ready to give your AI assistant email superpowers? The Postmark MCP server is available now on GitHub: 

Get the Postmark MCP Server →

Check out the README for detailed setup instructions, and don't forget to star the repo if you find it useful!

Join the conversation #

This is just the beginning of bringing email and AI together in meaningful ways. We'd love to hear about your experiments, use cases, and the creative ways you're using AI to handle email tasks.

Questions? Ideas? Cool things you've built? Share them in our feedback form or tweet us @postmarkapp.

Remember, this is a Labs project—it's experimental, likely to evolve, and definitely ready for your creative input. Let's teach AI to deliver emails as reliably as Postmark does.

Happy sending (now with AI assistance)! 🐙📬

P.S. No actual octopi were harmed in the making of this MCP server. They're still safely in their aquariums, probably plotting world domination or just wanting more shrimp.

Postmark team

Postmark team

Hi, we’re the humans behind Postmark! When you see this signature, you’ll know the piece was written collaboratively by our remote-first team distributed across the globe.