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.
Chat with any other OpenAI SDK Compatible Chat Completions API, like Perplexity, Groq, xAI and more
A read-only MCP server by CData that enables LLMs to query live SendGrid data. Requires the external CData JDBC Driver for SendGrid.
The official ElevenLabs MCP server
An MCP server for interacting with the Slack API, allowing for sending messages, managing channels, and other workspace actions.
An IMAP Model Context Protocol (MCP) server to expose IMAP operations as tools for AI assistants.
Connects AI models to WhatsApp Web using the Model Context Protocol (MCP) to automate and enhance interactions.
Integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account.
Interact with RetellAI's voice services to create conversational voice AI.
Connects AI agents to the Feishu/Lark platform via its OpenAPI to automate tasks like document processing, conversation management, and calendar scheduling.
An MCP server for seamless integration with the Kick.com API.