Skip to content

Development integration

Resend MCP server for Claude, Codex and Cursor

Send email and manage domains and audiences in Resend. Connect the Resend MCP server to Toolstile once, then choose which of its tools Claude Code, Codex, Cursor and Claude Desktop may use.

Free plan available. Server credentials stay in Toolstile, not in agent configs.

On this page

What your AI apps can do with Resend

  • Send and review email
  • Manage domains and contacts

Resend MCP tools

136 tools, taken from the publisher's documentation on 31 October 2026. The server decides what it offers and can add or rename tools at any time; after you connect, Toolstile shows the current list.

ToolWhat it does
create-api-keyCreate a new API key in Resend.
list-api-keysList all API keys from Resend.
update-api-keyRename an existing API key in Resend.
remove-api-keyRemove an API key by ID from Resend.
create-automationCreate an automation workflow that triggers on events and executes a sequence of steps.
update-automationUpdate an automation's name, status, or workflow.
get-automationGet details of a specific automation (with its workflow) or list all automations.
duplicate-automationDuplicate an existing automation by ID or Resend dashboard URL.
remove-automationRemove an automation by ID or Resend dashboard URL.
get-automation-runsList runs for an automation, or get details of a specific run.
create-broadcastCreate a broadcast campaign (one email sent to an entire segment) without sending it.
send-broadcastSend (or schedule) an existing broadcast by ID.
list-broadcastsList all broadcast campaigns (newsletters/bulk emails to audiences) with ID, name, audience, status, timestamps.
get-broadcastRetrieve full details of a specific broadcast by ID or Resend dashboard URL (e.g.
cancel-broadcastCancel a queued or scheduled broadcast by ID or Resend dashboard URL, without removing it.
duplicate-broadcastDuplicate a broadcast by ID or Resend dashboard URL.
remove-broadcastRemove a broadcast by ID or Resend dashboard URL.
compose-broadcastSet the TipTap JSON content of a broadcast, enabling it to be edited visually in the Resend dashboard editor.
update-broadcastUpdate broadcast metadata by ID or Resend dashboard URL (name, subject, from, html, text, segment, preview text, reply-to).
list-broadcast-clicked-linksList the links clicked in a broadcast, ranked by total clicks.
list-broadcast-recipientsList the individual recipients of a broadcast for a given event type (sent, delivered, opened, clicked, bounced, complained, unsubscribed, suppressed).
create-contact-importBulk-import contacts from a CSV file into Resend.
get-contact-importGet the status and counts of a contact import by ID.
list-contact-importsList contact imports from Resend.
create-contact-propertyCreate a new contact property in Resend.
list-contact-propertiesList all contact properties from Resend.
get-contact-propertyGet a contact property by ID from Resend.
update-contact-propertyUpdate an existing contact property in Resend.
remove-contact-propertyRemove a contact property by ID from Resend.
create-contactCreate a new contact in Resend.
list-contactsList contacts from Resend.
get-contactGet a contact by ID or email from Resend.
update-contactUpdate a contact in Resend (by ID or email).
remove-contactRemove a contact from Resend (by ID or email).
add-contact-to-segmentAdd a contact to a segment in Resend (by contact ID or email).
remove-contact-from-segmentRemove a contact from a segment in Resend (by contact ID or email).
list-contact-segmentsList all segments a contact belongs to in Resend (by contact ID or email).
list-contact-topicsList all topic subscriptions for a contact in Resend (by contact ID or email).
update-contact-topicsUpdate topic subscriptions for a contact in Resend (by contact ID or email).
create-domainCreate a new domain in Resend.
list-domainsList all domains from Resend.
get-domainGet a domain by ID from Resend.
update-domainUpdate an existing domain in Resend.
remove-domainRemove a domain by ID from Resend.
verify-domainTrigger domain verification in Resend.
create-domain-claimStart a claim for a domain another Resend account has already verified.
get-domain-claimRetrieve the latest claim for a domain by its placeholder Domain ID (the domain_id from create-domain-claim).
verify-domain-claimTrigger asynchronous DNS verification and ownership transfer for a domain claim, using the placeholder Domain ID.
get-tiptap-json-contentRetrieve the existing TipTap JSON content of a broadcast or template, optionally bundled with the TipTap schema reference.
connect-to-editorShow agent presence in the Resend dashboard editor.
disconnect-from-editorRemove agent presence from the Resend dashboard editor.
send-emailSend a single transactional email to one or more recipients immediately or on a schedule.
list-emailsList recently sent emails (transactional emails sent via send-email) with metadata: recipient, subject, status, timestamps.
get-emailRetrieve full details of a specific sent transactional email by ID, including message_id, HTML and plain text content.
list-received-emailsList emails received (inbox) by your Resend receiving address.
get-received-emailRetrieve full details of a specific received email by ID, including HTML and plain text content, headers, and raw email download URL.
list-received-email-attachmentsList all attachments from a specific received (inbox) email.
get-received-email-attachmentRetrieve details of a specific attachment from a received email, including a time-limited download URL.
cancel-emailCancel a scheduled email that has not yet been sent.
update-emailReschedule a scheduled email by updating its scheduled send time.
share-emailCreate a shareable link for a sent or received email, so anyone with the link can view it without Resend dashboard access.
get-email-metricsRetrieve account-level email delivery and engagement metrics (sent, delivered, bounced, opened, clicked, etc.) for a date range, optionally broken down by period, domain, email, or broadcast.
list-sent-email-attachmentsList all attachments from a specific sent email (from send-email or list-emails).
get-sent-email-attachmentRetrieve details of a specific attachment from a sent email, including a time-limited download URL.
send-batch-emailsSend up to 100 transactional emails in one API call.
send-eventFire an event to trigger automations for a specific contact.
manage-eventsCreate, list, get, update, or remove event definitions in Resend.
create-inboxCreate an inbox in Resend.
list-inboxesList the Resend inboxes on the account.
get-inboxGet an inbox by ID or email address from Resend, including its domain, receiving address, creation and update times, how many threads are unread, how many drafts it holds, and when it last received mail.
update-inboxUpdate an inbox in Resend by ID or email address.
remove-inboxRemove an inbox by ID or email address from Resend.
list-inbox-threadsList the threads in one Resend inbox, the conversations that arrived at its address.
search-inbox-threadsSearch the threads in one Resend inbox.
get-inbox-threadGet one thread in a Resend inbox: the thread itself plus the metadata of its emails, oldest first.
list-inbox-thread-emailsList the emails in one Resend inbox thread, oldest first, without their bodies.
update-inbox-threadUpdate one thread in a Resend inbox: mark it read or unread, or move it to another folder.
add-inbox-thread-labelsTag one thread in a Resend inbox with one or more labels.
set-inbox-thread-labelsReplace every label on one thread in a Resend inbox with exactly the labels given, in one atomic change.
remove-inbox-thread-labelTake one label off one thread in a Resend inbox.
remove-inbox-threadRemove a thread by ID from a Resend inbox.
get-inbox-thread-emailRead one message in a Resend inbox thread, body included: its html and text, its addresses and Message-ID, and the attachments it carries.
reply-to-inbox-thread-emailReply to one message in a Resend inbox thread.
forward-inbox-thread-emailForward one message from a Resend inbox thread to someone else.
list-inbox-labelsList the labels in one Resend inbox (the tags its threads can carry), each with its ID.
create-inbox-labelCreate a label in a Resend inbox.
update-inbox-labelUpdate a label in a Resend inbox: rename it, recolor it, or both.
remove-inbox-labelRemove a label by ID from a Resend inbox.
list-inbox-draftsList the drafts in one Resend inbox (the messages composed there but not sent), each with its ID.
create-inbox-draftCreate a draft in a Resend inbox: a message saved for later, NOT sent.
get-inbox-draftGet a draft by ID from a Resend inbox, body included: its recipients, subject, html and text, the files it carries, and the thread and message it replies to if it is a reply.
update-inbox-draftUpdate a draft in a Resend inbox: change its recipients, its subject, its body, or its attachments.
remove-inbox-draftRemove a draft by ID from a Resend inbox.
send-inbox-draftSend a draft from a Resend inbox.
send-new-inbox-emailSend a new email from a Resend inbox, starting a new thread in that inbox.
get-inbox-agentGet the AI agent settings of a Resend inbox: the instructions the agent follows, the tone it writes in, and the actions it is allowed to take on the inbox's threads.
update-inbox-agentUpdate the AI agent settings of a Resend inbox: the instructions the agent follows, the tone it writes in, and/or the actions it is allowed to take on the inbox's threads.
list-logsList API request logs for the account.
get-logGet detailed information about a specific API request log, including the full request and response bodies.
list-oauth-grantsList OAuth grants for the team; the apps authorized to act on the team's behalf.
revoke-oauth-grantRevoke an OAuth grant by ID.
create-segmentCreate a new segment in Resend.
list-segmentsList all segments in the account.
get-segmentGet a segment by ID from Resend.
update-segmentRename an existing segment in Resend.
remove-segmentRemove a segment by ID from Resend.
add-suppressionAdd an email address to the suppression list in Resend.
list-suppressionsList email addresses on the suppression list.
get-suppressionGet a suppression list entry by ID or email address from Resend.
remove-suppressionRemove an entry by ID or email address from the suppression list in Resend, allowing the address to receive emails again.
batch-add-suppressionsAdd multiple email addresses to the suppression list in Resend in a single call.
batch-remove-suppressionsRemove multiple entries from the suppression list in Resend in a single call, by email addresses or by suppression IDs (provide exactly one of the two).
create-templateCreate a new email template in Resend.
list-templatesList all email templates from Resend.
get-templateGet an email template by ID, alias, or Resend dashboard URL (e.g.
compose-templateSet the TipTap JSON content of a template, enabling it to be edited visually in the Resend dashboard editor.
update-templateUpdate template metadata by ID, alias, or Resend dashboard URL (name, subject, from, html, variables, etc.).
remove-templateRemove an email template by ID, alias, or Resend dashboard URL from Resend.
publish-templatePublish an email template in Resend.
duplicate-templateDuplicate an existing email template in Resend.
create-topicCreate a new topic in Resend.
list-topicsList all topics from Resend.
get-topicGet a topic by ID from Resend.
update-topicUpdate an existing topic in Resend.
remove-topicRemove a topic by ID from Resend.
get-usageRetrieve the account's current usage and plan limits.
create-webhookCreate a new webhook in Resend.
list-webhooksList all webhooks from Resend.
get-webhookGet a webhook by ID from Resend, including its signing secret.
update-webhookUpdate an existing webhook in Resend.
list-webhook-eventsList the events Resend delivered to one webhook, most recent first, with the delivery status of each.
get-webhook-eventGet one event delivered to a webhook, including the exact payload Resend sent to the endpoint.
replay-webhook-eventQueue one more delivery of a webhook event to its endpoint; the same action as the dashboard's Replay button.
rotate-webhook-signing-secretReplace a webhook's signing secret with a new one; the same action as the dashboard's Rotate button.
list-webhook-event-attemptsList the delivery attempts Resend made for one webhook event, most recent first, with what the endpoint returned each time.
remove-webhookRemove a webhook by ID from Resend.

Suggested access for each AI app

The documentation this list comes from doesn't mark Resend's tools as read-only or destructive. Read each tool's description and decide per app before allowing it.

Coding agent in Claude Code or Cursor. Allow the read tools so the agent can look things up without stopping, and require approval for tools that change shared data.

Chat or research app in Claude Desktop. Allow reading and searching. Allow writes only where you want the app to act for you.

Unattended agent, such as a scheduled Codex job. No one is watching the session, so keep it narrow: allow what the job needs, require approval for changes and block the rest.

Blocked tools are removed from the tool list an app sees, so it won't try them. Because rules apply per app, the same Resend connection can be broad in one app and read-only in another, and the credential stays in Toolstile instead of each app's config file.

How it works with Toolstile

  1. Connect once. Add Resend to a workspace (browser sign-in). Toolstile keeps the credential, so no agent config holds it.
  2. Choose access per app. Give Claude Code every Resend tool, give Cursor only the read tools, or keep Resend away from an app entirely.
  3. Share approved accounts. Teammates use the connection without copying tokens, and you can remove access in one place.
  4. Review activity. See which app called which tool and when, so you can tighten access with evidence.

Add the Resend MCP server to an AI app

Through Toolstile, every AI app uses one gateway entry, whichever servers you connect. In Claude Code:

Shell
claude mcp add --transport http toolstile 'https://mcp.toolstile.com/mcp'

Then connect Resend in your workspace and choose which of its tools that app may use. Client setup covers Codex, Cursor and Claude Desktop.

To connect directly instead, add the Resend endpoint to each app separately. In Claude Code:

Shell
claude mcp add --transport http resend 'https://mcp.resend.com/mcp'

In Cursor's mcp.json:

JSON
{
  "mcpServers": {
    "resend": {
      "url": "https://mcp.resend.com/mcp"
    }
  }
}

Some servers accept only clients they have approved, or need a token header. Check the Resend MCP documentation for what your client needs.

Before you connect

A Resend account. Sign-in uses your Resend permissions.

Server details

DetailValue
PublisherResend
Endpointhttps://mcp.resend.com/mcp
AuthenticationBrowser sign-in
CategoriesDevelopment, Communication
Tool list136 tools, observed 31 October 2026 (docs)

Resend MCP documentation