An MCP server for sending emails via the Postmark service, configured through environment variables.
An MCP server implementation for Postmark email services.
We'd love to hear from you! Please share your feedback and suggestions through our feedback form.
Clone the repository:
git clone https://github.com/ActiveCampaign/postmark-mcp
cd postmark-mcp
Install dependencies:
npm install
Configure environment variables:
.env.example
to .env
:
cp .env.example .env
.env
and fill in your Postmark credentials and settings.Variable | Description | Required |
---|---|---|
POSTMARK_SERVER_TOKEN | Your Postmark server API token | Yes |
DEFAULT_SENDER_EMAIL | Default sender email address | Yes |
DEFAULT_MESSAGE_STREAM | Postmark message stream (e.g., 'outbound') | Yes |
Run the server:
npm start
You can quickly install this MCP server in Cursor by clicking the following button:
Note: After clicking the button, you'll need to:
- Set your
POSTMARK_SERVER_TOKEN
in the MCP configuration- Set your
DEFAULT_SENDER_EMAIL
in the MCP configuration- Set your
DEFAULT_MESSAGE_STREAM
in the MCP configuration (defaults to "outbound")
{
"mcpServers": {
"postmark": {
"command": "node",
"args": ["path/to/postmark-mcp/index.js"],
"env": {
"POSTMARK_SERVER_TOKEN": "your-postmark-server-token",
"DEFAULT_SENDER_EMAIL": "your-sender-email@example.com",
"DEFAULT_MESSAGE_STREAM": "your-message-stream"
}
}
}
}
This section provides a complete reference for the Postmark MCP server tools, including example prompts and expected payloads for each.
Sends a single text email.
Example Prompt:
Send an email using Postmark to recipient@example.com with the subject "Meeting Reminder" and the message "Don't forget our team meeting tomorrow at 2 PM. Please bring your quarterly statistics report (and maybe some snacks).""
Expected Payload:
{
"to": "recipient@example.com",
"subject": "Meeting Reminder",
"textBody": "Don't forget our team meeting tomorrow at 2 PM. Please bring your quarterly statistics report (and maybe some snacks).",
"htmlBody": "HTML version of the email body", // Optional
"from": "sender@example.com", // Optional, uses DEFAULT_SENDER_EMAIL if not provided
"tag": "meetings" // Optional
}
Response Format:
Email sent successfully!
MessageID: message-id-here
To: recipient@example.com
Subject: Meeting Reminder
Sends an email using a pre-defined template.
Example Prompt:
Send an email with Postmark template alias "welcome" to customer@example.com with the following template variables:
{
"name": "John Doe",
"product_name": "MyApp",
"login_url": "https://myapp.com/login"
}
Expected Payload:
{
"to": "customer@example.com",
"templateId": 12345, // Either templateId or templateAlias must be provided, but not both
"templateAlias": "welcome", // Either templateId or templateAlias must be provided, but not both
"templateModel": {
"name": "John Doe",
"product_name": "MyApp",
"login_url": "https://myapp.com/login"
},
"from": "sender@example.com", // Optional, uses DEFAULT_SENDER_EMAIL if not provided
"tag": "onboarding" // Optional
}
Response Format:
Template email sent successfully!
MessageID: message-id-here
To: recipient@example.com
Template: template-id-or-alias-here
Lists all available templates.
Example Prompt:
Show me a list of all the email templates available in our Postmark account.
Response Format:
š Found 2 templates:
⢠Basic
- ID: 12345678
- Alias: basic
- Subject: none
⢠Welcome
- ID: 02345679
- Alias: welcome
- Subject: none
Retrieves email delivery statistics.
Example Prompt:
Show me our Postmark email delivery statistics from 2025-05-01 to 2025-05-15 for the "marketing" tag.
Expected Payload:
{
"tag": "marketing", // Optional
"fromDate": "2025-05-01", // Optional, YYYY-MM-DD format
"toDate": "2025-05-15" // Optional, YYYY-MM-DD format
}
Response Format:
Email Statistics Summary
Sent: 100 emails
Open Rate: 45.5% (45/99 tracked emails)
Click Rate: 15.2% (15/99 tracked links)
Period: 2025-05-01 to 2025-05-15
Tag: marketing
All emails are automatically configured with:
TrackOpens: true
TrackLinks: "HtmlAndText"
DEFAULT_MESSAGE_STREAM
environment variableThe server implements comprehensive error handling:
info
for normal operations, error
for errors)For more information about the Postmark API, visit Postmark's Developer Documentation.
Enables interactive LLM workflows by adding local user prompts and chat capabilities directly into the MCP loop.
Connects a personal WhatsApp account to an AI agent using the WhatsApp Web multi-device API.
An MCP server for seamless integration with the Kick.com API.
TikTok integration for getting post details and video subtitles
Enables AI assistants to send push notifications via the Pushover service.
Integrates with Mailtrap Email API.
Send notifications to Slack using OAuth bot tokens.
An MCP server that provides Nostr capabilities to LLMs, enabling interaction with the decentralized social network protocol.
Send Instagram DMs via your LLM
Advanced audio transcription and processing using OpenAI's Whisper and GPT-4o models.