MCP-native for Cursor, Claude Code, and Windsurf
MCP Server

MCP
Server

The official Model Context Protocol server for Posthawk. 32 tools across emails, scheduling, contacts, domains, newsletters, templates, and webhooks. Wire it into Claude Desktop, Cursor, Windsurf, Codex, or any MCP-aware client.

$ npx posthawk-mcp
Example Conversation
You: "Send a welcome email to alex@example.com
      from hello@posthawk.dev"

Claude: I'll send that email now.

[Calling send-email with:
  from: hello@posthawk.dev
  to: alex@example.com
  subject: Welcome!
  html: <h1>Welcome to Posthawk!</h1>]

Done! Email queued with job ID job_abc123.
Status: processing
Natural Language

Just describe it.
The agent sends.

No SDK imports, no HTTP boilerplate in the prompt. The agent reads the tool schema, picks the right call, fills the arguments — and you see the JSON it sent.

Setup per agent

Pick your AI client.
Paste one config. Restart.

Claude Desktop
claude_desktop_config.json
Official docs
AlsoWindows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "posthawk": {
      "command": "npx",
      "args": ["-y", "posthawk-mcp"],
      "env": {
        "POSTHAWK_API_KEY": "ck_live_..."
      }
    }
  }
}

Open via menu bar → Settings → Developer → Edit Config. Restart Claude Desktop after saving.

Don't see your client? Any MCP-spec client works — the server speaks the standard.

Capabilities

32 tools across
7 domains.

Every tool maps 1:1 to a Posthawk API endpoint. Schemas are exposed to the agent so it picks the right one without prompting tricks.

Emails

2
  • send-email
  • get-email

Scheduled

5
  • list-scheduled
  • get-scheduled
  • cancel-scheduled
  • reschedule-email
  • send-now

Contacts

5
  • list-contacts
  • get-contact
  • create-contact
  • update-contact
  • delete-contact

Domains

3
  • list-domains
  • get-domain
  • verify-domain

Newsletters

13
  • list-newsletters
  • get-newsletter
  • create-newsletter
  • update-newsletter
  • list-subscribers
  • add-subscriber
  • unsubscribe-subscriber
  • delete-subscriber
  • list-issues
  • get-issue
  • create-issue
  • update-issue
  • send-issue

Templates

1
  • render-template

Webhooks

3
  • list-webhooks
  • create-webhook
  • delete-webhook
Getting started

Up and running
in minutes.

01

Pick your client

Drop the config below into your AI client of choice. Most use a JSON config; Claude Code uses a one-line CLI command.

02

Authorize the workspace

OAuth (Claude Code, remote) opens your browser; stdio (everyone else) just needs a Posthawk API key from the dashboard.

03

Send through natural language

"Email the new signups a welcome from hello@acme.com." The agent picks the tool and fills the args — no SDK, no HTTP plumbing.

32 Tools

Send emails, manage newsletters and subscribers, schedule sends, manage contacts, check domains, render templates, and configure webhooks — all through natural language.

OAuth 2.1

Full OAuth 2.1 support with PKCE and dynamic client registration for secure remote access. Per-agent scoped API keys, revocable from the dashboard.

Self-Hosted Ready

Set POSTHAWK_BASE_URL to point at any self-hosted Posthawk instance. Same tools, your infrastructure, your data residency.

Dual Transport

stdio for local agents (Claude Desktop, Cursor, Windsurf) and Streamable HTTP for remote hosted access (Claude Code via OAuth).

Let your agent handle the inbox

Pick your client above, drop in the config, and the next sentence you type can be an email.

Cookie Preferences

I use analytics cookies to understand how you use the site and improve your experience. Privacy Policy