# Postmark MCP

> Postmark MCP handles high-deliverability email workflows directly through your agent. Send single emails, manage complex templates, and track open/click metrics without leaving your IDE. It's built for reliable transactional communication and programmatic template control.

## Overview
- **Category:** communication-messaging
- **Price:** Free
- **Tags:** transactional-email, email-api, template-management, postmark, email-delivery

## Description

Think about sending critical automated messages—password resets, welcome packets, or account alerts. Getting those emails out reliably isn't just about hitting 'send'; it’s about making sure they land in the inbox and that your templates actually work every time.

This MCP connects your agent to Postmark's infrastructure. Instead of jumping into a separate dashboard, you manage your entire email lifecycle from one place. You can send massive batches of emails or just single messages using full control over content, attachments, and metadata. You also get deep visibility into performance metrics, letting you check open counts or spam complaint totals. Plus, you can manage the underlying templates—creating them, editing variables, or even validating their syntax before a campaign goes live. This makes it powerful for anyone managing communication at scale; just connect this MCP through Vinkius and your agent handles the rest.

## Tools

### activate_bounce
Reactivates an email address that previously bounced.

### add_domain
Adds a new domain to the account level for sending emails.

### archive_message_stream
Archives an existing message stream.

### bypass_inbound_message
Allows messages to pass rules if they were previously blocked upon arrival.

### create_message_stream
Sets up a new message stream for organizing communications.

### create_sender_signature
Creates a sender signature at the account level.

### create_server
Sets up a new sending server for the account.

### create_suppressions
Creates suppressions for a message stream, limiting recipients to 50.

### create_template
Generates an entirely new email template.

### create_webhook
Sets up a webhook endpoint for notifications.

### delete_domain
Removes a domain from the account level.

### delete_sender_signature
Removes an existing sender signature at the account level.

### delete_server
Deletes a sending server configuration from the account level.

### delete_suppressions
Removes suppressions (and reactivates recipients) for a message stream.

### delete_template
Deletes an existing email template.

### delete_webhook
Removes a configured webhook.

### edit_current_server
Changes the configuration settings for the active sending server.

### edit_domain
Updates an existing domain setting at the account level.

### edit_message_stream
Modifies settings for a message stream.

### edit_sender_signature
Updates an existing sender signature at the account level.

### edit_server
Edits core server settings across the entire account.

### edit_template
Makes changes to the content or variables of a specific template.

### edit_webhook
Modifies an existing webhook configuration.

### get_bounce_dump
Retrieves the raw SMTP data for a failed email bounce.

### get_bounce
Fetches detailed information about a specific bounced email address.

### get_bulk_request_status
Checks the status of large-scale, bulk email requests.

### get_current_server
Retrieves the current configuration details for the sending server.

### get_data_removal_status
Checks the status of a data removal request (GDPR/CCPA compliance).

### get_delivery_stats
Retrieves overall statistics on email delivery and bounces.

### get_domain
Fetches detailed information about a specific sending domain.

### get_inbound_message_details
Gets full details for an email that was sent to your domain.

### get_message_stream
Retrieves specific details about a message stream.

### get_outbound_bounces_stats
Gathers bounce count statistics for all outgoing emails.

### get_outbound_clicks_stats
Gets click-through rate counts and stats for outbound messages.

### get_outbound_message_details
Retrieves full event history and details for a single sent email.

### get_outbound_message_dump
Gets the raw source code of an outbound message.

### get_outbound_opens_clients_stats
Calculates open usage metrics, broken down by email client used by recipients.

### get_outbound_opens_platforms_stats
Calculates open usage metrics, grouped by the recipient's platform (e.g., iOS, Android).

### get_outbound_opens_stats
Gets total counts for when outbound messages were opened.

### get_outbound_sends_stats
Retrieves the total count of emails successfully sent out.

### get_outbound_spam_stats
Gets the number of spam complaints received for outbound messages.

### get_outbound_stats
Provides a general statistical overview of all sent messages.

### get_outbound_tracked_stats
Retrieves counts for emails that were tracked after being sent out.

### get_sender_signature
Fetches details about the current sender signature setup.

### get_server
Retrieves configuration settings for the overall sending server.

### get_template
Gets specific details and content of a single template by name or alias.

### get_webhook
Retrieves the configuration settings for an existing webhook.

### list_domains
Lists all domains configured for sending emails at the account level.

### list_message_streams
Retrieves a list of existing message streams.

### list_sender_signatures
Lists all sender signatures available at the account level.

### list_servers
Retrieves a list of all configured sending servers for the account.

### list_suppressions
Lists current suppressions set for a specific message stream.

### list_templates
Retrieves a list of all templates available on the server.

### list_webhooks
Lists webhooks associated with a specific message stream.

### push_templates
Transfers template definitions from one sending server to another.

### request_data_removal
Initiates a formal request to remove recipient data for compliance (GDPR/CCPA).

### resend_sender_signature
Resend confirmation email for a sender signature

### retry_inbound_message
Tries again to process an inbound message that failed processing the first time.

### rotate_domain_dkim
Triggers the rotation of DKIM keys for a specific sending domain.

### search_bounces
Searches historical records for bounced emails.

### search_inbound_messages
Queries received messages sent to your domain.

### search_outbound_clicks
Searches historical records for specific click events on outbound emails.

### search_outbound_messages
Queries all sent outbound messages by various criteria.

### search_outbound_opens
Searches historical records for when specific outbound emails were opened.

### send_batch_emails
Sends multiple, predefined emails in a single batch operation.

### send_bulk_emails
Initiates the sending of a large volume of emails to many recipients.

### send_email
Sends one single email message immediately.

### send_email_with_template
Sends an email using a specific, pre-defined template and variables.

### unarchive_message_stream
Restores a message stream that was previously archived.

### validate_template
Checks an email template's syntax to ensure it is valid before sending.

### verify_domain_dkim
Triggers a verification check for the domain's DKIM records.

### verify_domain_return_path
Triggers a verification check for the domain's Return-Path record.

## Prompt Examples

**Prompt:** 
```
Send an email from 'sales@company.com' to 'client@example.com' with the subject 'Meeting Follow-up' and a simple thank you message.
```

**Response:** 
```
I've sent the email using `send_email`. The Message ID is 'abc-123' and the status is 'Submitted'.
```

**Prompt:** 
```
List all the email templates available on my Postmark server.
```

**Response:** 
```
I found 3 templates: 'Welcome Email' (Alias: welcome), 'Password Reset' (Alias: reset), and 'Invoice' (Alias: invoice).
```

**Prompt:** 
```
Send a welcome email to 'newuser@gmail.com' using the template alias 'welcome-pack' and set the 'name' variable to 'John'.
```

**Response:** 
```
Processing `send_email_with_template`... The email has been successfully queued for delivery to John.
```

## Capabilities

### Send various emails
Dispatch single, batch, or bulk emails with full control over content and metadata.

### Manage templates
Programmatically list, create, edit, validate, and delete email templates.

### Audit domain health
Verify and rotate DNS keys like DKIM and Return Paths to maintain high sender reputation.

### Track performance metrics
Retrieve detailed stats on opens, clicks, bounces, and spam complaints for outbound messages.

### Handle message streams
Create, read, edit, or archive dedicated message streams for organization.

## Use Cases

### Handling a User Onboarding Flow
A developer needs to send a welcome email and then follow up with an invoice link three days later. They use `send_email_with_template` for the welcome, schedule the reminder through their agent, and if the recipient fails to click a link, they ask the agent to check `get_outbound_clicks_stats` before sending a human-written nudge.

### Fixing Sending Reputation
A marketing team notices bounce rates spiked. Instead of checking three separate dashboards, they prompt their agent to run `search_bounces`, followed by `get_bounce` for the worst offenders, and then use `rotate_domain_dkim` to immediately improve sending reputation.

### Updating a Core System Template
A support manager needs to change the disclaimer text in all password reset emails. They first run `list_templates`, find the alias, and use `edit_template` to update it, then they call `validate_template` to confirm the syntax is still good.

### Bulk Communications Audit
A compliance officer needs to verify that all old user data can be removed. They trigger `request_data_removal`, and later use `get_data_removal_status` to confirm the process finished successfully, documenting the audit trail.

## Benefits

- Never switch tabs to manage communication. You can send a single email using `send_email`, validate templates with `validate_template`, and check analytics, all through your agent's chat interface.
- Maintain perfect domain health effortlessly. If you need to rotate keys or verify records, use tools like `rotate_domain_dkim` or `verify_domain_return_path` right from your development flow.
- Scale your reporting without writing custom queries. Get comprehensive metrics—like total open counts via `get_outbound_opens_stats` or spam complaint numbers using `get_outbound_spam_stats`—instantly in conversation.
- Build complex, automated campaigns. You can use templates and variables to send personalized messages by calling `send_email_with_template`, ensuring consistency across thousands of users.
- Handle compliance tasks with simple prompts. When data removal is necessary, you can execute `request_data_removal` directly via your agent, tracking the status until complete.

## How It Works

The bottom line is that your agent handles the API calls and data formatting automatically, so you just tell it what communication job needs doing.

1. Subscribe to this MCP and provide your Postmark Server Token (and optionally your Account Token).
2. Connect the credentials to your preferred AI client—Claude, Cursor, or any MCP-compatible client.
3. Your agent uses natural language prompts to execute email actions, like sending a message using `send_email` or listing available templates with `list_templates`.

## Frequently Asked Questions

**How do I send a one-off email using Postmark MCP?**
You use the `send_email` tool. You just provide the recipient, subject, and body content, and your agent handles getting it out immediately.

**Can I check if my domain is ready for bulk sending with Postmark MCP?**
Yes, you can use `get_domain` to review current settings. If needed, run `rotate_domain_dkim` or `verify_domain_return_path` first to ensure your records are fresh.

**What if I need to change a template variable in Postmark MCP?**
You use the `edit_template` tool. This lets you modify the content or variables of an existing template without affecting other parts of your system.

**How do I get detailed failure reports from Postmark MCP?**
Use `search_bounces` to look up bounce records, and then use `get_bounce` to fetch specific details about a single bounced address.

**Is it possible to track clicks using the Postmark MCP?**
Yes. You can search for click events using `search_outbound_clicks`, or get aggregate data with `get_outbound_clicks_stats`.