postmark-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@postmark-mcpsend a welcome email to john@example.com with the subject 'Welcome!'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
postmark-mcp
A FastMCP server that exposes the Postmark API as MCP tools, so an LLM agent can send transactional email and monitor delivery (templates, bounces, outbound messages, stats, and suppressions).
It supports a read-only mode: when enabled, every mutating tool — including all email-sending tools — is hidden from the tool list and cannot be called.
Scope
Server-token (single Postmark server) endpoints only:
Area | Read tools | Write tools |
— |
| |
Templates |
|
|
Bounces |
|
|
Messages |
| — |
Stats |
| — |
Suppressions |
|
|
Account-level admin (servers, domains, sender signatures, webhooks, template push) is out of scope — those require an account token.
Related MCP server: SendGrid MCP Server
Run
# Published to PyPI:
uvx postmark-mcp
# Local checkout, before publishing:
uvx --from . postmark-mcpThe server speaks MCP over stdio (the transport MCP clients spawn).
Configuration
All configuration comes from environment variables. The MCP client injects them into the
spawned process via its server config env block.
Env var | Required | Default | Purpose |
| yes | — | Postmark server token (sent as |
| no |
| When truthy ( |
| no |
| API base URL (override for testing) |
| no |
| Per-request timeout, in seconds |
If POSTMARK_SERVER_TOKEN is missing the server exits immediately with an actionable message,
rather than failing on the first tool call.
MCP client config
Add to your client's mcpServers block (e.g. Claude Desktop). Restart the client after editing
env so the server is re-spawned.
{
"mcpServers": {
"postmark": {
"command": "uvx",
"args": ["postmark-mcp"],
"env": {
"POSTMARK_SERVER_TOKEN": "your-server-token",
"POSTMARK_READ_ONLY": "false"
}
}
}
}Set POSTMARK_READ_ONLY to true for a monitoring-only deployment that cannot send email or
change any state.
Development
uv sync --extra dev # install deps (incl. dev tools)
uv run ruff check . # lint
uv run ruff format . # format
uv run pytest # tests (no network — Postmark calls are mocked with respx)
uv run postmark-mcp # run locally (requires POSTMARK_SERVER_TOKEN)Notes
Batch sends return HTTP 200 even when individual messages fail; the batch tools return the raw per-message array so you can inspect each element's
ErrorCode/Message.Postmark errors are surfaced as the tool error message; unexpected internal errors are masked (
mask_error_details=True) to avoid leaking details.Built for FastMCP 3.x (read-only filtering uses
mcp.disable(tags={"write"})).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zonnepanelendelen/postmark_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server