MCP Server
MCP is an open protocol that standardizes how applications provide context to LLMs. Among other benefits, it provides LLMs tools to act on your behalf. Resend offers both a remote MCP server and a local MCP server.
Remote MCP Server
Section titled “Remote MCP Server”Resend hosts the MCP server at:
https://mcp.resend.com/mcpConnect any MCP client that supports remote servers (Streamable HTTP). There's nothing to install and no local process to run, which makes it the best option for web-based clients like Claude and hosted agent platforms.
When you connect, your client opens a browser window to log in to Resend and approve access using OAuth.
The Resend plugin follows the Agent Plugins spec. On clients that install that plugin, it adds this remote MCP server and the adjacent Resend skills together. plugin.json identifies the plugin, skills/ holds the skills, and mcp.json points at https://mcp.resend.com/mcp.
Each tab below matches the install on that client's page at resend.com.
Connect Resend in one click from the connector directory. The connector installs the MCP server and every Resend skill.
To install only the MCP server, add it manually in Claude (web or desktop) from Settings > Connectors > Add custom connector:
https://mcp.resend.com/mcpSee the Claude page.
To use GitHub Copilot in VS Code, add the following to your settings.json:
{
"mcp": {
"servers": {
"resend": {
"type": "http",
"url": "https://mcp.resend.com/mcp"
}
}
}
}Install the skills separately:
npx skills add resend/resend-skillsSee the GitHub Copilot page.
claude plugin install resend@claude-plugins-officialThen run /mcp in Claude Code and select resend to complete the OAuth login. The plugin installs the remote MCP server and every Resend skill.
See the Claude Code page.
Run /add-plugin resend in Cursor's chat to install the official plugin. It follows the Agent Plugins spec and installs the remote MCP server and every Resend skill.
To connect only the MCP server, open the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}See the Cursor page.
Install the Resend plugin in one click. It follows the Agent Plugins spec and installs the remote MCP server and every Resend skill.
To connect the MCP server on its own, use the Codex CLI:
codex mcp add resend --url https://mcp.resend.com/mcpSee the Codex page.
Install the official Resend plugin. One command adds the remote MCP server and every Resend skill.
hermes plugins install resend/resend-skills --enableStore RESEND_API_KEY so Hermes can send on your behalf. You will be prompted on first use.
See the Hermes page.
In Grok Bot, install the Resend plugin. That adds every Resend skill.
/install-plugin resend
# Then add RESEND_API_KEY so Grok Bot can send on your behalf.See the Grok Bot page.
Add the remote MCP server, then sign in:
openclaw mcp add resend --url https://mcp.resend.com/mcp --transport streamable-http
openclaw mcp login resendAsk OpenClaw to install the skills:
Install the Resend skills: https://github.com/resend/resend-skillsSee the OpenClaw page. For an inbox, see the OpenClaw guide.
Add to your opencode.json config:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"resend": {
"type": "remote",
"url": "https://mcp.resend.com/mcp",
"enabled": true
}
}
}Add this to your ~/.gemini/config/mcp_config.json file:
{
"mcpServers": {
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}
}Add this to your ~/.gemini/settings.json file:
{
"mcpServers": {
"resend": {
"httpUrl": "https://mcp.resend.com/mcp"
}
}
}In Devin, open Settings > Connections > MCP Servers and click Add a custom MCP. See the Devin guide for the full step-by-step.
{
"mcpServers": {
"resend": {
"transport": "HTTP",
"url": "https://mcp.resend.com/mcp"
}
}
}Add this to your Zed settings.json:
{
"context_servers": {
"resend": {
"url": "https://mcp.resend.com/mcp"
}
}
}In Warp's Settings, navigate to Agents > MCP servers, and click + Add to add a new server.
{
"resend": {
"serverUrl": "https://mcp.resend.com/mcp"
}
}fx is a tiny, open, native coding agent from Vercel Labs. Install it, then add Resend as an HTTP server:
curl -fsSL https://fx.sh/setup.sh | bash
fx mcp add --transport http resend https://mcp.resend.com/mcpfx completes the OAuth login the first time it connects. Inside the fx shell, the equivalent is /mcp add --transport http resend https://mcp.resend.com/mcp.
If your client runs somewhere a browser login isn't possible (a server, CI, or a headless agent), pass a Resend API key as a Bearer token instead of using OAuth.
claude mcp add --transport http resend https://mcp.resend.com/mcp --header "Authorization: Bearer re_xxxxxxxxx"For clients configured with JSON (Cursor, Zed, and others), add an Authorization header:
{
"mcpServers": {
"resend": {
"url": "https://mcp.resend.com/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}Local MCP Server
Section titled “Local MCP Server”The hosted server runs the same open-source code that's available on NPM as resend-mcp. If you prefer to run the server yourself, you can integrate it into any supported MCP client using npx. You'll need to:
The local server supports two transport modes: stdio (default) and HTTP.
Choose your preferred mode and client below to get started. Remember to replace re_xxxxxxxxx with your actual API key.
Stdio Transport (Default)
Section titled “Stdio Transport (Default)”Open Claude Desktop settings > "Developer" tab > "Edit Config".
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}To use GitHub Copilot in VS Code, add the following to your settings.json:
{
"mcp": {
"servers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}
}claude mcp add resend -e RESEND_API_KEY=re_xxxxxxxxx -- npx -y resend-mcpOpen the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}codex mcp add resend \
--env RESEND_API_KEY=re_xxxxxxxxx \
-- npx -y resend-mcpAdd to your opencode.json config:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"resend": {
"type": "local",
"command": ["npx", "-y", "resend-mcp"],
"enabled": true,
"environment": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}Add this to your ~/.gemini/config/mcp_config.json file:
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}In Devin, open Settings > Connections > MCP Servers and click Add a custom MCP. See the Devin guide for the full step-by-step.
{
"mcpServers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx",
"SENDER_EMAIL_ADDRESS": "onboarding@resend.dev"
}
}
}
}Add this to your Zed settings.json:
{
"context_servers": {
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}In Warp's Settings, navigate to Agents > MCP servers, and click + Add to add a new server.
{
"resend": {
"command": "npx",
"args": ["-y", "resend-mcp"],
"env": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}Add this to your ~/.fx/mcp.json file:
{
"mcp": {
"resend": {
"type": "stdio",
"command": ["npx", "-y", "resend-mcp"],
"environment": {
"RESEND_API_KEY": "re_xxxxxxxxx"
}
}
}
}HTTP Transport
Section titled “HTTP Transport”Run the server over HTTP for remote or web-based integrations. In HTTP mode, each client authenticates by passing their Resend API key as a Bearer token in the Authorization header.
Start the server:
npx -y resend-mcp --http --port 3000The server will listen on http://127.0.0.1:3000 and expose the MCP endpoint at /mcp using Streamable HTTP.
claude mcp add resend --transport http http://127.0.0.1:3000/mcp --header "Authorization: Bearer re_xxxxxxxxx"Open the command palette and choose "Cursor Settings" > "MCP" > "Add new global MCP server".
{
"mcpServers": {
"resend": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer re_xxxxxxxxx"
}
}
}
}You can also set the port via the MCP_PORT environment variable:
MCP_PORT=3000 npx -y resend-mcp --httpOptions
Section titled “Options”You can pass additional arguments to configure the local server:
--key: Your Resend API key (stdio mode only, since HTTP mode uses the Bearer token from the client)--sender: Default sender email address from a verified domain--reply-to: Default reply-to email address (can be specified multiple times)--http: Use HTTP transport instead of stdio (default: stdio)--port: HTTP port when using--http(default: 3000, orMCP_PORTenv var)
Environment variables:
RESEND_API_KEY: Your Resend API key (required for stdio, optional for HTTP since clients pass it via Bearer token)SENDER_EMAIL_ADDRESS: Default sender email address from a verified domain (optional)REPLY_TO_EMAIL_ADDRESSES: Comma-separated reply-to email addresses (optional)MCP_PORT: HTTP port when using--http(optional)
MCP Server tools
Section titled “MCP Server tools”Resend's MCP server gives your AI agent native access to the full Resend platform through a single integration. You can manage all aspects of your email infrastructure using natural language.
- Emails: Send, list, get, cancel, update, and batch send emails. Supports HTML, plain text, attachments (local file, URL, or base64), CC/BCC, reply-to, scheduling, tags, and topic-based sending.
- Received Emails: List and read inbound emails. List and download received email attachments.
- Inboxes (beta): Create, list, get, update, and remove inboxes. Manage their threads, thread emails (get, reply, forward), labels, and drafts (create, update, send). Inboxes is in beta and is only available on the remote MCP server, not the local
resend-mcppackage. Reach out to us to get access. - Templates: Create, list, get, update, publish, duplicate, and remove email templates. Supports composing template content and
{{{VARIABLE}}}placeholders. - Contacts: Create, list, get, update, and remove contacts. Manage segment memberships, topic subscriptions, and CSV contact imports. Supports custom contact properties.
- Broadcasts: Create, send, list, get, update, and remove broadcast campaigns. Supports scheduling, personalization placeholders, and preview text.
- Automations: Create, list, get, update, duplicate, and remove automations. Review the runs of an automation.
- Events: Send events to trigger automations for a contact. Create, update, and remove event definitions.
- Domains: Create, list, get, update, remove, and verify sender domains. Configure tracking, TLS, and sending/receiving capabilities. Create and verify domain claims.
- Segments: Create, list, get, and remove audience segments.
- Topics: Create, list, get, update, and remove subscription topics.
- Contact Properties: Create, list, get, update, and remove custom contact attributes.
- API Keys: Create, list, and remove API keys.
- Webhooks: Create, list, get, update, and remove webhooks for event notifications.
- Logs: List and inspect API request logs, including full request and response bodies.
- Editor: Connect to (and disconnect from) the visual editor in the Resend dashboard, and read a draft's content while collaborating on broadcasts and templates.
Here are some real examples of what your agent can do with these tools:
- Turn a Paper design into a ready-to-send Template or Broadcast
- Bulk import contacts from a CSV, upserting or skipping duplicates, and organize them into Segments
- Build Automations that send emails when a contact is created, updated, or triggers a custom event
- Read and triage inbound email, download attachments, and send replies
- Schedule, reschedule, and cancel scheduled emails
- Debug failed API requests by inspecting the request logs