sendEmailLABSCO SUMMARY
A Postmark server token has no sub-scopes, so the boundary you draw is a separate server.
The token grants full access to everything on the Postmark server it belongs to, and this MCP server hands all 24 tools to whatever client connects — four of which delete data permanently and four of which send real email. The project's own advice is the right one: create a dedicated Postmark server for MCP traffic, give it only the message streams and verified senders it needs, and set the webhook allowlist so a stray call cannot register a callback you do not own.
What it is
A Node MCP server backed by your Postmark account. It covers the full transactional email loop: sending, templates, message search, delivery diagnostics, bounces, suppressions, stats and webhooks.
What you get
- 24 tools, with MCP annotations so a client can auto-approve reads and prompt before anything that changes state
- Sending:
sendEmail,sendEmailWithTemplate,sendBatch,sendBatchWithTemplate, with open and click tracking on every send - Templates:
listTemplates,getTemplate,createTemplate,editTemplate,deleteTemplateandvalidateTemplate - Investigation:
searchOutboundMessages,getMessageDetails, anddiagnoseDeliveryfor a message that did not land - Bounces and suppressions:
searchBounces,getBounceDump,activateBounce,listSuppressions,createSuppressions,deleteSuppressions - Account and delivery data:
getDeliveryStats,getServerInfo, pluslistWebhooks,createWebhookanddeleteWebhook
Requirements
Node.js v20 or higher and a Postmark account. POSTMARK_SERVER_TOKEN, DEFAULT_SENDER_EMAIL (a verified sender) and DEFAULT_MESSAGE_STREAM are required. Optional: WEBHOOK_URL_ALLOWLIST to restrict which HTTPS prefixes createWebhook will accept, AGENT_LABEL to tag this instance's API traffic, and LOG_FILE to persist the structured logs.
Setup effort
One command plus a key — npx -y @activecampaign/postmark-mcp, then supply credentials
USE CASES
Sending a one-off transactional email from a conversation
Send it through the configured stream and verified sender, with tracking already on.
Working out why a customer never got their receipt
Find the message, read its detail, and run the delivery diagnosis rather than guessing at DNS.
Editing a template without opening the dashboard
Read the current template, validate the change, then apply it — the client will prompt first, because edits are marked destructive.
Clearing a good address off the suppression list
List the suppressions, confirm the one you mean, and remove it.
Auditing what is listening to your account
List the registered webhooks periodically and delete the ones nobody owns any more.
24 tools
Listed in project docs. Your client may show a different list.
sendEmailWithTemplatesendBatchsendBatchWithTemplatelistTemplatesgetTemplatecreateTemplateeditTemplatedeleteTemplatevalidateTemplatesearchOutboundMessagesgetMessageDetailsdiagnoseDeliverysearchBouncesgetBounceDumpactivateBouncelistSuppressionscreateSuppressionsdeleteSuppressionsgetDeliveryStatsgetServerInfolistWebhookscreateWebhookdeleteWebhookBEFORE YOU INSTALL
What to know first
Tools you get
24 tools named in the project's documentation.
Requires
- npx on PATH
- Node.js v20 or later
- POSTMARK_SERVER_TOKEN in your environment
- DEFAULT_SENDER_EMAIL in your environment
- DEFAULT_MESSAGE_STREAM in your environment
INSTALLATION
Connect your client
Server setup
npx -y @activecampaign/postmark-mcpMCP Clients
Claude Desktop, Cursor
{
"mcpServers": {
"postmark": {
"command": "npx",
"args": [
"-y",
"@activecampaign/postmark-mcp"
],
"env": {
"POSTMARK_SERVER_TOKEN": "<YOUR_POSTMARK_SERVER_TOKEN>",
"DEFAULT_SENDER_EMAIL": "<YOUR_DEFAULT_SENDER_EMAIL>",
"DEFAULT_MESSAGE_STREAM": "outbound"
}
}
}
}Any MCP client — local build
git clone https://github.com/ActiveCampaign/postmark-mcp
cd postmark-mcp
npm installThen add this to your client's configuration:
{
"mcpServers": {
"postmark": {
"command": "node",
"args": [
"<YOUR_PATH_TO_POSTMARK_MCP>/index.js"
],
"env": {
"POSTMARK_SERVER_TOKEN": "<YOUR_POSTMARK_SERVER_TOKEN>",
"DEFAULT_SENDER_EMAIL": "<YOUR_DEFAULT_SENDER_EMAIL>",
"DEFAULT_MESSAGE_STREAM": "outbound"
}
}
}
}<YOUR_PATH_TO_POSTMARK_MCP> is the full path of your clone.