resend-mcp 0.3.0

MCP server for the Resend email API
resend-mcp-0.3.0 is not a library.

resend-mcp

Banner

Crates.io Documentation License: Apache-2.0

MCP server for the Resend email API. Exposes 49 tools for sending emails, managing domains, contacts, templates, broadcasts, webhooks, and more.

Installation

From Source

cargo install --path .

Docker

docker pull ghcr.io/psu3d0/resend-mcp:latest
docker run -p 8080:8080 -e RESEND_API_KEY=re_xxx ghcr.io/psu3d0/resend-mcp:latest

Pre-built Binaries

Download from GitHub Releases.

Usage

# Start server with stdio transport (default)
RESEND_API_KEY=re_xxx resend-mcp

# Or via CLI flag
resend-mcp --api-key re_xxx

# Use HTTP transport
resend-mcp --api-key re_xxx --transport http

# Custom bind address (HTTP mode)
resend-mcp --api-key re_xxx --transport http --bind-address 0.0.0.0 --port 3000

# Custom base URL (for proxies or testing)
resend-mcp --api-key re_xxx --base-url https://custom.api.com

# Disable startup health check
resend-mcp --api-key re_xxx --no-health-check

# Debug logging
RESEND_MCP_LOG=debug resend-mcp --api-key re_xxx

MCP Client Configuration

Claude Desktop

{
  "mcpServers": {
    "resend": {
      "command": "resend-mcp",
      "env": {
        "RESEND_API_KEY": "re_xxx"
      }
    }
  }
}

Docker

{
  "mcpServers": {
    "resend": {
      "command": "docker",
      "args": ["run", "--rm", "-p", "8080:8080", "-e", "RESEND_API_KEY=re_xxx", "ghcr.io/psu3d0/resend-mcp:latest"]
    }
  }
}

Available Tools

Emails

  • sendEmail - Send an email
  • sendBatchEmails - Send up to 100 emails at once
  • getEmail - Retrieve a single email
  • updateEmail - Update a scheduled email
  • cancelScheduledEmail - Cancel a scheduled email
  • listEmailAttachments - List attachments for a sent email
  • getEmailAttachment - Get a single attachment

Received Emails

  • listReceivedEmails - List received emails
  • getReceivedEmail - Get a single received email
  • listReceivedEmailAttachments - List attachments for a received email
  • getReceivedEmailAttachment - Get a received email attachment

Domains

  • createDomain - Create a new domain
  • listDomains - List all domains
  • getDomain - Get a single domain
  • updateDomain - Update a domain
  • deleteDomain - Delete a domain
  • verifyDomain - Verify a domain

API Keys

  • createApiKey - Create a new API key
  • listApiKeys - List all API keys
  • deleteApiKey - Delete an API key

Audiences

  • createAudience - Create an audience
  • listAudiences - List all audiences
  • getAudience - Get a single audience
  • deleteAudience - Delete an audience

Contacts

  • createContact - Create a contact
  • listContacts - List contacts in an audience
  • getContactByEmail / getContactById - Get a contact
  • updateContactByEmail / updateContactById - Update a contact
  • deleteContactByEmail / deleteContactById - Delete a contact

Broadcasts

  • createBroadcast - Create a broadcast
  • listBroadcasts - List all broadcasts
  • getBroadcast - Get a single broadcast
  • deleteBroadcast - Delete a draft broadcast
  • sendBroadcast - Send or schedule a broadcast

Templates

  • createTemplate - Create a template
  • listTemplates - List all templates
  • getTemplate - Get a single template
  • updateTemplate - Update a template
  • deleteTemplate - Delete a template
  • duplicateTemplate - Duplicate a template
  • publishTemplate - Publish a template

Webhooks

  • createWebhook - Create a webhook
  • listWebhooks - List all webhooks
  • getWebhook - Get a single webhook
  • updateWebhook - Update a webhook
  • deleteWebhook - Delete a webhook

Configuration

All options can be set via CLI flags or environment variables.

CLI Flag Env Variable Default Description
--api-key RESEND_API_KEY required Resend API key
--transport TRANSPORT stdio Transport mode (stdio or http)
--base-url RESEND_BASE_URL https://api.resend.com Resend API base URL
--bind-address BIND_ADDRESS 127.0.0.1 Server bind address (HTTP mode)
--port PORT 8080 Server port (HTTP mode)
--no-health-check - false Disable startup health check
- RESEND_MCP_LOG info Log level (error, warn, info, debug, trace)

Health Check

On startup, the server calls listDomains to verify API key validity. This can be disabled with --no-health-check. A failed health check logs a warning but does not prevent startup.

Development

# Build
cargo build

# Run with debug logging
RESEND_MCP_LOG=debug cargo run -- --api-key re_xxx

# Format and lint
cargo fmt && cargo clippy

# Update OpenAPI spec from upstream
python scripts/transform_spec.py /path/to/upstream/resend.yaml src/specs/resend.yaml

OpenAPI Spec Updates

The spec is automatically synced from resend/resend-openapi daily via GitHub Actions. The transform script adds operationId fields and fixes YAML parsing issues.

License

Apache-2.0