MCP Server
Connect PostStack to AI assistants like Claude, Cursor, and Windsurf through the Model Context Protocol. 84 tools, 5 prompts, and 5 resources covering the full API plus the context tools an agent needs to actually decide what to send.
What is MCP? The Model Context Protocol is an open standard that lets AI assistants call external tools, follow guided prompts, and read structured resources. PostStack ships both a hosted endpoint (one URL, no install) and a local stdio bin.
Hosted (Claude.ai connector)
Point any MCP client at a single URL — no local install, no Node, no npx. Authenticate with your PostStack API key as a Bearer token.
https://api.poststack.dev/mcpLocal (stdio)
No install needed — the server runs directly via npx. Pick your client below and add the configuration. You will need a PostStack API key from the dashboard.
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"poststack": {
"command": "npx",
"args": ["-y", "@poststack.dev/mcp"],
"env": {
"POSTSTACK_API_KEY": "sk_live_..."
}
}
}
}You can also generate the snippet from the bin:
npx @poststack.dev/mcp --print-config claude-desktopClaude Code
Add PostStack as an MCP server directly from the terminal:
claude mcp add poststack -e POSTSTACK_API_KEY=sk_live_... -- npx -y @poststack.dev/mcpCursor / VS Code
Add to your editor's MCP configuration:
{
"poststack": {
"command": "npx",
"args": ["-y", "@poststack.dev/mcp"],
"env": {
"POSTSTACK_API_KEY": "sk_live_..."
}
}
}Tools (84)
Every PostStack endpoint is exposed as an MCP tool, plus 12 context-and-reasoning tools the agent uses to decide what to send.
| Resource | Tools |
|---|---|
| Emails | send, send_batch, list, get, cancel, reschedule, lint_email, preview_email |
| Contacts | create, list, get, update, delete, unsubscribe, get_by_email, get_activity, get_engagement_summary, search |
| Templates | create, list, get, update, delete, publish, unpublish, duplicate, render |
| Broadcasts | create, list, get, update, send, cancel, broadcast_performance, find_non_clickers |
| Domains | create, list, get, verify, update, delete, check_deliverability |
| Mailboxes | create, list, get, update, delete, change_password, suggest_from_address |
| Inbound Emails | list, get, list_attachments, reply, forward, draft_from_thread |
| Webhooks | create, list, get, update, delete |
| Segments | create, list, get, update, delete, add/remove contacts |
| Subscription Topics | create, list, delete, get/add/remove contact subscriptions |
| Contact Properties | create, list, update, delete custom properties |
| Suppressions | list, add, remove |
| API Keys | create, list, get, revoke |
Prompts (5)
Each prompt is a guided playbook. The agent follows the steps, calls the tools in the right order, and never sends destructively without your approval.
draft_welcome_email
Look up the contact, pick a published template, render, lint, send — only if preview passes.
reengage_dormant
Audience-size dormant contacts, pick a template, stage a broadcast for review.
followup_non_clickers
Find the best-performing recent broadcast, pull non-clickers, draft a follow-up.
summarize_campaign
Produce a 4-bullet performance report with a one-line recommendation.
triage_inbound
Read an inbound message, classify it, look up the sender, propose the next action.
Resources (5)
Discoverable read-only data the agent can pull before deciding what to do.
| URI | Returns |
|---|---|
| poststack://templates | Paginated list of email templates |
| poststack://templates/{id} | Single template body + variables |
| poststack://domains | Verified domains + DNS state |
| poststack://segments | Contact segments + counts |
| poststack://brand | Team identity + recommended default from-address |
Example prompts
With the MCP server connected you can ask your AI assistant to:
“Draft and send a personalised welcome to ada@lovelace.io”
Triggers the draft_welcome_email prompt — the agent looks her up, picks a template, lints, and asks before sending.
“Which broadcast last month had the best CTR? Draft a follow-up to people who didn't click.”
Triggers the followup_non_clickers prompt end-to-end — broadcast_performance → find_non_clickers → render_template → review.
“Is hello@acme.io safe to send from right now?”
check_deliverability returns DKIM/SPF/DMARC verification status, 30-day bounce + complaint rate, and warnings.
“Summarise the spring product update broadcast”
Triggers summarize_campaign — headline metrics, A/B winner if applicable, one-line recommendation.
“Triage inbound 7”
Triggers triage_inbound — reads the message, looks up the sender, classifies, proposes the next action.
Permissions
The MCP server authenticates using your API key. Pick the right key type to control what the assistant is allowed to do:
full_access
All 84 tools enabled — send emails, manage domains, contacts, templates, webhooks, and everything else.
sending_access
Restricted to sending emails only. Use this when you want the assistant to compose and send but not modify your account.
Create and manage API keys in the dashboard. See Authentication for more details.
Analytics
Every tool call served over the hosted endpoint lands in your MCP analytics dashboard. You can see total calls, error rate, p50 / p95 latency, top tools, an hourly heatmap, and the last few errors for triage — picked over the last 24 hours, 7 days, or 30 days.
What's persisted: tool name, duration, ok/error, transport, and a SHA-256 hash of the input arguments (never the arguments themselves). Rows older than 30 days are auto-deleted. The error-rate alert fires when more than 5% of calls in a 5-minute window failed.