
Postmark
STDIOMCP server for sending emails via Postmark with tracking and template support
MCP server for sending emails via Postmark with tracking and template support
An MCP server implementation for Postmark email services.
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": "your-node-path", // 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" } } } }
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 [email protected] 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": "[email protected]", "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": "[email protected]", // Optional, uses DEFAULT_SENDER_EMAIL if not provided "tag": "meetings" // Optional }
Response Format:
Email sent successfully!
MessageID: message-id-here
To: [email protected]
Subject: Meeting Reminder
Sends an email using a pre-defined template.
Example Prompt:
Send an email with Postmark template alias "welcome" to [email protected] with the following template variables:
{
"name": "John Doe",
"product_name": "MyApp",
"login_url": "https://myapp.com/login"
}
Expected Payload:
{ "to": "[email protected]", "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": "[email protected]", // Optional, uses DEFAULT_SENDER_EMAIL if not provided "tag": "onboarding" // Optional }
Response Format:
Template email sent successfully!
MessageID: message-id-here
To: [email protected]
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.