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.
| Tool | What it does |
|---|---|
create-api-key | Create a new API key in Resend. |
list-api-keys | List all API keys from Resend. |
update-api-key | Rename an existing API key in Resend. |
remove-api-key | Remove an API key by ID from Resend. |
create-automation | Create an automation workflow that triggers on events and executes a sequence of steps. |
update-automation | Update an automation's name, status, or workflow. |
get-automation | Get details of a specific automation (with its workflow) or list all automations. |
duplicate-automation | Duplicate an existing automation by ID or Resend dashboard URL. |
remove-automation | Remove an automation by ID or Resend dashboard URL. |
get-automation-runs | List runs for an automation, or get details of a specific run. |
create-broadcast | Create a broadcast campaign (one email sent to an entire segment) without sending it. |
send-broadcast | Send (or schedule) an existing broadcast by ID. |
list-broadcasts | List all broadcast campaigns (newsletters/bulk emails to audiences) with ID, name, audience, status, timestamps. |
get-broadcast | Retrieve full details of a specific broadcast by ID or Resend dashboard URL (e.g. |
cancel-broadcast | Cancel a queued or scheduled broadcast by ID or Resend dashboard URL, without removing it. |
duplicate-broadcast | Duplicate a broadcast by ID or Resend dashboard URL. |
remove-broadcast | Remove a broadcast by ID or Resend dashboard URL. |
compose-broadcast | Set the TipTap JSON content of a broadcast, enabling it to be edited visually in the Resend dashboard editor. |
update-broadcast | Update broadcast metadata by ID or Resend dashboard URL (name, subject, from, html, text, segment, preview text, reply-to). |
list-broadcast-clicked-links | List the links clicked in a broadcast, ranked by total clicks. |
list-broadcast-recipients | List the individual recipients of a broadcast for a given event type (sent, delivered, opened, clicked, bounced, complained, unsubscribed, suppressed). |
create-contact-import | Bulk-import contacts from a CSV file into Resend. |
get-contact-import | Get the status and counts of a contact import by ID. |
list-contact-imports | List contact imports from Resend. |
create-contact-property | Create a new contact property in Resend. |
list-contact-properties | List all contact properties from Resend. |
get-contact-property | Get a contact property by ID from Resend. |
update-contact-property | Update an existing contact property in Resend. |
remove-contact-property | Remove a contact property by ID from Resend. |
create-contact | Create a new contact in Resend. |
list-contacts | List contacts from Resend. |
get-contact | Get a contact by ID or email from Resend. |
update-contact | Update a contact in Resend (by ID or email). |
remove-contact | Remove a contact from Resend (by ID or email). |
add-contact-to-segment | Add a contact to a segment in Resend (by contact ID or email). |
remove-contact-from-segment | Remove a contact from a segment in Resend (by contact ID or email). |
list-contact-segments | List all segments a contact belongs to in Resend (by contact ID or email). |
list-contact-topics | List all topic subscriptions for a contact in Resend (by contact ID or email). |
update-contact-topics | Update topic subscriptions for a contact in Resend (by contact ID or email). |
create-domain | Create a new domain in Resend. |
list-domains | List all domains from Resend. |
get-domain | Get a domain by ID from Resend. |
update-domain | Update an existing domain in Resend. |
remove-domain | Remove a domain by ID from Resend. |
verify-domain | Trigger domain verification in Resend. |
create-domain-claim | Start a claim for a domain another Resend account has already verified. |
get-domain-claim | Retrieve the latest claim for a domain by its placeholder Domain ID (the domain_id from create-domain-claim). |
verify-domain-claim | Trigger asynchronous DNS verification and ownership transfer for a domain claim, using the placeholder Domain ID. |
get-tiptap-json-content | Retrieve the existing TipTap JSON content of a broadcast or template, optionally bundled with the TipTap schema reference. |
connect-to-editor | Show agent presence in the Resend dashboard editor. |
disconnect-from-editor | Remove agent presence from the Resend dashboard editor. |
send-email | Send a single transactional email to one or more recipients immediately or on a schedule. |
list-emails | List recently sent emails (transactional emails sent via send-email) with metadata: recipient, subject, status, timestamps. |
get-email | Retrieve full details of a specific sent transactional email by ID, including message_id, HTML and plain text content. |
list-received-emails | List emails received (inbox) by your Resend receiving address. |
get-received-email | Retrieve full details of a specific received email by ID, including HTML and plain text content, headers, and raw email download URL. |
list-received-email-attachments | List all attachments from a specific received (inbox) email. |
get-received-email-attachment | Retrieve details of a specific attachment from a received email, including a time-limited download URL. |
cancel-email | Cancel a scheduled email that has not yet been sent. |
update-email | Reschedule a scheduled email by updating its scheduled send time. |
share-email | Create a shareable link for a sent or received email, so anyone with the link can view it without Resend dashboard access. |
get-email-metrics | Retrieve 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-attachments | List all attachments from a specific sent email (from send-email or list-emails). |
get-sent-email-attachment | Retrieve details of a specific attachment from a sent email, including a time-limited download URL. |
send-batch-emails | Send up to 100 transactional emails in one API call. |
send-event | Fire an event to trigger automations for a specific contact. |
manage-events | Create, list, get, update, or remove event definitions in Resend. |
create-inbox | Create an inbox in Resend. |
list-inboxes | List the Resend inboxes on the account. |
get-inbox | Get 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-inbox | Update an inbox in Resend by ID or email address. |
remove-inbox | Remove an inbox by ID or email address from Resend. |
list-inbox-threads | List the threads in one Resend inbox, the conversations that arrived at its address. |
search-inbox-threads | Search the threads in one Resend inbox. |
get-inbox-thread | Get one thread in a Resend inbox: the thread itself plus the metadata of its emails, oldest first. |
list-inbox-thread-emails | List the emails in one Resend inbox thread, oldest first, without their bodies. |
update-inbox-thread | Update one thread in a Resend inbox: mark it read or unread, or move it to another folder. |
add-inbox-thread-labels | Tag one thread in a Resend inbox with one or more labels. |
set-inbox-thread-labels | Replace every label on one thread in a Resend inbox with exactly the labels given, in one atomic change. |
remove-inbox-thread-label | Take one label off one thread in a Resend inbox. |
remove-inbox-thread | Remove a thread by ID from a Resend inbox. |
get-inbox-thread-email | Read 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-email | Reply to one message in a Resend inbox thread. |
forward-inbox-thread-email | Forward one message from a Resend inbox thread to someone else. |
list-inbox-labels | List the labels in one Resend inbox (the tags its threads can carry), each with its ID. |
create-inbox-label | Create a label in a Resend inbox. |
update-inbox-label | Update a label in a Resend inbox: rename it, recolor it, or both. |
remove-inbox-label | Remove a label by ID from a Resend inbox. |
list-inbox-drafts | List the drafts in one Resend inbox (the messages composed there but not sent), each with its ID. |
create-inbox-draft | Create a draft in a Resend inbox: a message saved for later, NOT sent. |
get-inbox-draft | Get 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-draft | Update a draft in a Resend inbox: change its recipients, its subject, its body, or its attachments. |
remove-inbox-draft | Remove a draft by ID from a Resend inbox. |
send-inbox-draft | Send a draft from a Resend inbox. |
send-new-inbox-email | Send a new email from a Resend inbox, starting a new thread in that inbox. |
get-inbox-agent | Get 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-agent | Update 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-logs | List API request logs for the account. |
get-log | Get detailed information about a specific API request log, including the full request and response bodies. |
list-oauth-grants | List OAuth grants for the team; the apps authorized to act on the team's behalf. |
revoke-oauth-grant | Revoke an OAuth grant by ID. |
create-segment | Create a new segment in Resend. |
list-segments | List all segments in the account. |
get-segment | Get a segment by ID from Resend. |
update-segment | Rename an existing segment in Resend. |
remove-segment | Remove a segment by ID from Resend. |
add-suppression | Add an email address to the suppression list in Resend. |
list-suppressions | List email addresses on the suppression list. |
get-suppression | Get a suppression list entry by ID or email address from Resend. |
remove-suppression | Remove an entry by ID or email address from the suppression list in Resend, allowing the address to receive emails again. |
batch-add-suppressions | Add multiple email addresses to the suppression list in Resend in a single call. |
batch-remove-suppressions | Remove 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-template | Create a new email template in Resend. |
list-templates | List all email templates from Resend. |
get-template | Get an email template by ID, alias, or Resend dashboard URL (e.g. |
compose-template | Set the TipTap JSON content of a template, enabling it to be edited visually in the Resend dashboard editor. |
update-template | Update template metadata by ID, alias, or Resend dashboard URL (name, subject, from, html, variables, etc.). |
remove-template | Remove an email template by ID, alias, or Resend dashboard URL from Resend. |
publish-template | Publish an email template in Resend. |
duplicate-template | Duplicate an existing email template in Resend. |
create-topic | Create a new topic in Resend. |
list-topics | List all topics from Resend. |
get-topic | Get a topic by ID from Resend. |
update-topic | Update an existing topic in Resend. |
remove-topic | Remove a topic by ID from Resend. |
get-usage | Retrieve the account's current usage and plan limits. |
create-webhook | Create a new webhook in Resend. |
list-webhooks | List all webhooks from Resend. |
get-webhook | Get a webhook by ID from Resend, including its signing secret. |
update-webhook | Update an existing webhook in Resend. |
list-webhook-events | List the events Resend delivered to one webhook, most recent first, with the delivery status of each. |
get-webhook-event | Get one event delivered to a webhook, including the exact payload Resend sent to the endpoint. |
replay-webhook-event | Queue one more delivery of a webhook event to its endpoint; the same action as the dashboard's Replay button. |
rotate-webhook-signing-secret | Replace a webhook's signing secret with a new one; the same action as the dashboard's Rotate button. |
list-webhook-event-attempts | List the delivery attempts Resend made for one webhook event, most recent first, with what the endpoint returned each time. |
remove-webhook | Remove 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
- Connect once. Add Resend to a workspace (browser sign-in). Toolstile keeps the credential, so no agent config holds it.
- Choose access per app. Give Claude Code every Resend tool, give Cursor only the read tools, or keep Resend away from an app entirely.
- Share approved accounts. Teammates use the connection without copying tokens, and you can remove access in one place.
- 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:
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:
claude mcp add --transport http resend 'https://mcp.resend.com/mcp'In Cursor's mcp.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
| Detail | Value |
|---|---|
| Publisher | Resend |
| Endpoint | https://mcp.resend.com/mcp |
| Authentication | Browser sign-in |
| Categories | Development, Communication |
| Tool list | 136 tools, observed 31 October 2026 (docs) |