/ Directory / Playground / Resend MCP
● Official resend 🔑 Needs your key

Resend MCP

by resend · resend/resend-mcp

Resend's first-party MCP — send_email, create_broadcast, manage_audience as MCP tools, with HTML templating Claude can author inline.

Resend MCP exposes the Resend REST API as MCP tools. Claude can compose, preview, and send transactional emails, manage audiences and contacts, and schedule broadcasts. Pair with a humanizer skill for tone control.

Why use it

Key features

Live Demo

What it looks like in practice

ready

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "resend-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@resend/mcp-server"
      ],
      "env": {
        "RESEND_API_KEY": "${RESEND_API_KEY}"
      }
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "resend-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@resend/mcp-server"
      ],
      "env": {
        "RESEND_API_KEY": "${RESEND_API_KEY}"
      }
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "resend-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@resend/mcp-server"
      ],
      "env": {
        "RESEND_API_KEY": "${RESEND_API_KEY}"
      }
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "resend-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@resend/mcp-server"
      ],
      "env": {
        "RESEND_API_KEY": "${RESEND_API_KEY}"
      }
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "resend-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@resend/mcp-server"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "resend-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@resend/mcp-server"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add resend-mcp -- npx -y @resend/mcp-server

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Resend MCP

Compose and send a transactional email

👤 Developers ⏱ ~15 min intermediate

When to use: You drafted release notes and want to send to a single recipient before broadcasting.

Flow
  1. Draft
    Ask Claude to draft release notes from the git log.✓ Copied
    → Markdown draft ready
  2. Render
    Convert to HTML; inline-style for email clients.✓ Copied
    → HTML body ready
  3. Send
    send_email [email protected], [email protected].✓ Copied
    → Resend returns email_id; check inbox

Outcome: Preview email landed in your inbox, ready to broadcast.

Schedule a broadcast to an audience

👤 Developers ⏱ ~15 min intermediate

When to use: You have a verified audience and want to send the polished version to everyone.

Flow
  1. Pick audience
    list_audiences; choose the right one.✓ Copied
    → audience_id
  2. Create broadcast
    create_broadcast subject, body, audience_id, send_at.✓ Copied
    → broadcast scheduled

Outcome: Broadcast queued in Resend; visible in dashboard.

Combinations

Pair with other MCPs for X10 leverage

resend-mcp + github

Pull the release diff, send the notes via Resend

Combine resend-mcp with github: Pull the release diff, send the notes via Resend✓ Copied
resend-mcp + humanizer-zh-skill

Humanize the draft before sending to Chinese audiences

Combine resend-mcp with humanizer-zh-skill: Humanize the draft before sending to Chinese audiences✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
send_email (see docs) Single-recipient transactional send 1 call
create_broadcast (see docs) Schedule a broadcast to an audience 1 call
list_audiences (see docs) List audiences in your account 1 call
add_contact (see docs) Add a contact to an audience 1 call
verify_domain (see docs) Check sending-domain DNS status 1 call

Cost & Limits

What this costs to run

API quota
Resend free tier: 3k emails/mo, 100/day; paid plans scale
Tokens per call
Body length + headers
Monetary
Free tier; paid from $20/mo
Tip
Use idempotency keys; dedupe sends if Claude retries

Security

Permissions, secrets, blast radius

Minimum scopes: domain:send audiences:write
Credential storage: API key in env var
Data egress: api.resend.com
Never grant: reuse a production key for staging — Resend supports separate keys

Troubleshooting

Common errors and fixes

422 from address not verified

Verify domain in Resend dashboard; only verified domains may send

Broadcast stuck pending

Check audience size and rate limits; broadcasts throttle on free tier

Alternatives

Resend MCP vs others

AlternativeWhen to use it insteadTradeoff
SendGrid MCPYou're on SendGridDifferent API surface
PostmarkHigher inbox-placement focusNo first-party MCP yet

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills