Resend MCP for AI agents
Agents read Resend MCP at once. Changes and sends are held for a person's approval by default.
About Resend MCP
Send and manage transactional email through Resend.
What an agent can do in Resend MCP
Every Resend MCP action is classed by the platform as a read, a change or a send. Reads run at once. Changes and sends are held for a person by default.
Runs at once (reads)
Looks things up in Resend MCP without asking first. 44 actions.
- Get-automation**Purpose:** Get details of a specific automation (with its workflow) or list all automations. **Modes:** - With `id`: Returns full automation details including the workflow definition. - Without `id`
- Get-automation-runs**Purpose:** List runs for an automation, or get details of a specific run. **Modes:** - With `runId`: Returns detailed run info with step-by-step execution status, outputs, and errors. - Without `run
- Get-broadcastRetrieve full details of a specific broadcast by ID or Resend dashboard URL (e.g. https://resend.com/broadcasts/<id>), including HTML and plain text content.
- Get-contactGet a contact by ID or email from Resend.
- Get-contact-importGet the status and counts of a contact import by ID. Use after create-contact-import to track progress (queued, in_progress, completed, failed).
- Get-contact-propertyGet a contact property by ID from Resend.
- Get-domainGet a domain by ID from Resend. Returns full domain details including DNS records needed for verification.
- Get-domain-claimRetrieve the latest claim for a domain by its placeholder Domain ID (the domain_id from create-domain-claim). Returns claim status and the TXT record needed to prove ownership. Poll until status is "c
- Get-emailRetrieve full details of a specific sent transactional email by ID, including message_id, HTML and plain text content.
- 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.
- Get-log**Purpose:** Get detailed information about a specific API request log, including the full request and response bodies. **Returns:** Log details: id, created_at, endpoint, method, response_status, use
- Get-received-emailRetrieve full details of a specific received email by ID, including HTML and plain text content, headers, and raw email download URL.
Show all 44
- Get-received-email-attachmentRetrieve details of a specific attachment from a received email, including a time-limited download URL.
- Get-segmentGet a segment by ID from Resend.
- Get-sent-email-attachmentRetrieve details of a specific attachment from a sent email, including a time-limited download URL.
- Get-suppressionGet a suppression list entry by ID or email address from Resend. Use this to check whether a specific address is suppressed and why (origin: bounce, complaint, or manual).
- Get-templateGet an email template by ID, alias, or Resend dashboard URL (e.g. https://resend.com/templates/<id>) from Resend. Returns full template details including HTML content, variables, and publish status.
- Get-tiptap-json-content**Purpose:** Retrieve the existing TipTap JSON content of a broadcast or template, optionally bundled with the TipTap schema reference. Also connects the agent to the editor so the avatar is visible w
- Get-topicGet a topic by ID from Resend.
- Get-webhookGet a webhook by ID from Resend.
- Get-webhook-event**Purpose:** Get one event delivered to a webhook, including the exact payload Resend sent to the endpoint. **Returns:** id, type, created_at, status, next_attempt_at (when the next retry is scheduled
- List-api-keysList all API keys from Resend. Returns API key names, IDs, and creation dates. Don't bother telling the user the IDs or creation dates unless they ask for them.
- List-broadcast-clicked-links**Purpose:** List the links clicked in a broadcast, ranked by total clicks. **Returns:** For each link: id (opaque pagination cursor for that row, not an entity id), url, clicks (total), unique_clicks
- List-broadcast-recipients**Purpose:** List the individual recipients of a broadcast for a given event type (sent, delivered, opened, clicked, bounced, complained, unsubscribed, suppressed). **NOT for:** Aggregate broadcast pe
- List-broadcasts**Purpose:** List all broadcast campaigns (newsletters/bulk emails to audiences) with ID, name, audience, status, timestamps. **NOT for:** Listing transactional emails (use list-emails). Not for listi
- List-contact-importsList contact imports from Resend. Optionally filter by status. Use to discover import IDs or review past imports.
- List-contact-propertiesList all contact properties from Resend. This tool is useful for getting property IDs and seeing which custom attributes are configured. If you need a contact property ID, you MUST use this tool to ge
- List-contacts**Purpose:** List contacts from Resend. Optionally filter by segment. Use to discover contact IDs or emails. **NOT for:** Listing segments (use list-segments). Not for listing sent emails (use list-em
- List-contact-segmentsList all segments a contact belongs to in Resend (by contact ID or email). Don't bother telling the user the IDs or creation dates unless they ask for them.
- List-contact-topicsList all topic subscriptions for a contact in Resend (by contact ID or email). Don't bother telling the user the IDs unless they ask for them.
- List-domainsList all domains from Resend. Returns domain names, statuses, regions, and capabilities. Don't bother telling the user the IDs unless they ask for them.
- List-emails**Purpose:** List recently sent emails (transactional emails sent via send-email) with metadata: recipient, subject, status, timestamps. **NOT for:** Listing broadcast campaigns (use list-broadcasts).
- List-logs**Purpose:** List API request logs for the account. Use to review recent API activity, debug issues, or audit API usage. **Returns:** For each log: id, created_at, endpoint, method, response_status, u
- List-oauth-grantsList OAuth grants for the team — the apps authorized to act on the team's behalf. Returns every grant, active and revoked; a grant with a non-null revoked_at is no longer active. Each grant includes t
- List-received-email-attachmentsList all attachments from a specific received (inbox) email. Returns attachment metadata including filename, size, content type, and a time-limited download URL. Use for emails listed by list-received
- List-received-emails**Purpose:** List emails received (inbox) by your Resend receiving address. Use for "show my inbox", "what emails did I get?", "list incoming mail". **NOT for:** Listing emails you sent (use list-emai
- List-segments**Purpose:** List all segments in the account. Use to get segment IDs required by create-contact, create-broadcast, list-contacts. **NOT for:** Listing contacts inside a segment (use list-contacts wit
- List-sent-email-attachmentsList all attachments from a specific sent email (from send-email or list-emails). Returns attachment metadata including filename, size, content type, and a time-limited download URL.
- List-suppressions**Purpose:** List email addresses on the suppression list. Suppressed addresses never receive emails from the account. Optionally filter by origin: "bounce" (added automatically after a hard bounce),
- List-templatesList all email templates from Resend. Returns template names, statuses, and aliases. Don't bother telling the user the IDs unless they ask for them.
- List-topicsList all topics from Resend. This tool is useful for getting topic IDs to use with other tools like send-email.
- List-webhook-event-attempts**Purpose:** List the delivery attempts Resend made for one webhook event, most recent first, with what the endpoint returned each time. **Returns:** For each attempt: id, http_status_code, response (
- List-webhook-events**Purpose:** List the events Resend delivered to one webhook, most recent first, with the delivery status of each. **NOT for:** Listing the event types a webhook subscribes to (use get-webhook). Not f
- List-webhooksList all webhooks from Resend. Use to get webhook IDs and see which endpoints and events are configured. Not for listing emails, segments, or broadcasts.
Held for approval by default (changes and sends)
Held for a person's approval by default. The approval is recorded and the action is sent once, never twice, with 10 seconds to undo. 59 actions.
- Add-contact-to-segmentAdd a contact to a segment in Resend (by contact ID or email).
- Add-suppressionAdd an email address to the suppression list in Resend. Suppressed addresses never receive emails from the account, even when included as recipients. Hard bounces and spam complaints are added to the
- Batch-add-suppressionsAdd multiple email addresses to the suppression list in Resend in a single call. Suppressed addresses never receive emails from the account. Hard bounces and spam complaints are added to the suppressi
- 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). The addresses will start receiving emails again
- Cancel-broadcast**Purpose:** Cancel a queued or scheduled broadcast by ID or Resend dashboard URL, without removing it. Cancelling a queued broadcast stops it mid-send (emails already sent are not affected). Cancelli
- Cancel-emailCancel a scheduled email that has not yet been sent. Only works for emails that were scheduled using the scheduledAt parameter.
- Compose-broadcast**Purpose:** Set the TipTap JSON content of a broadcast, enabling it to be edited visually in the Resend dashboard editor. Automatically connects and disconnects from the editor. Can also update metad
- Compose-template**Purpose:** Set the TipTap JSON content of a template, enabling it to be edited visually in the Resend dashboard editor. Automatically connects and disconnects from the editor. Can also update metada
- Connect-to-editor**Purpose:** Show agent presence in the Resend dashboard editor. Users will see an agent avatar while connected. **When to use:** - To signal to dashboard users that an AI agent is working on the cont
- Create-api-keyCreate a new API key in Resend. The token is only shown once upon creation, so you MUST display it to the user.
- Create-automation**Purpose:** Create an automation workflow that triggers on events and executes a sequence of steps. **When to use:** - User wants to set up automated email sequences (welcome series, drip campaigns,
- Create-broadcast**Purpose:** Create a broadcast campaign (one email sent to an entire segment). Defines subject, body, and segment; does NOT send yet. Use send-broadcast to send it. **NOT for:** Sending a one-off ema
Show all 59
- Create-contactCreate a new contact in Resend. Optionally assign to segments and configure topic subscriptions.
- Create-contact-importBulk-import contacts from a CSV file into Resend. The import is processed asynchronously: this returns an import ID immediately, then use get-contact-import to poll its status and counts. Provide the
- Create-contact-propertyCreate a new contact property in Resend. A contact property is a custom attribute (e.g. "company_name", "plan_tier") that can be attached to contacts.
- Create-domainCreate a new domain in Resend. Returns DNS records that must be configured with your DNS provider for verification. You MUST display the DNS records to the user so they can set them up.
- Create-domain-claimStart a claim for a domain another Resend account has already verified. The domain is recreated under your account with brand-new DKIM keys, so the previous account's DNS records cannot be reused. Ret
- Create-segmentCreate a new segment in Resend. A segment is a group of contacts that can be used to target specific broadcasts.
- Create-templateCreate a new email template in Resend. Templates are created in draft status. Use publish-template to make them available for sending. Variables use triple-brace syntax in HTML: {{{VAR_NAME}}}. **Work
- Create-topicCreate a new topic in Resend. Topics allow contacts to manage their subscription preferences for different types of emails.
- Create-webhookCreate a new webhook in Resend. A webhook allows you to receive notifications at a specified URL when certain events occur (e.g. email.sent, email.delivered, email.bounced).
- Disconnect-from-editorRemove agent presence from the Resend dashboard editor. Call this when done editing.
- Duplicate-automationDuplicate an existing automation by ID or Resend dashboard URL. Creates a copy with its own ID, including the steps and connections of the original. Use this when the user wants a new automation based
- Duplicate-templateDuplicate an existing email template in Resend. Creates a new draft copy of the template with a new ID. Accepts a template ID, alias, or Resend dashboard URL.
- Manage-events**Purpose:** Create, list, get, update, or remove event definitions in Resend. Events define named triggers that your application sends to start automations. Each event can have an optional schema tha
- Publish-templatePublish an email template in Resend. Templates must be published before they can be used for sending emails. Re-publishing a previously published template makes the latest changes live. Accepts a temp
- Remove-api-keyRemove an API key by ID from Resend. Before using this tool, you MUST double-check with the user that they want to remove this API key. Reference the NAME of the API key when double-checking, and warn
- Remove-automationRemove an automation by ID or Resend dashboard URL. Before using this tool, you MUST double-check with the user that they want to remove this automation. Reference the NAME of the automation when conf
- Remove-broadcastRemove a broadcast by ID or Resend dashboard URL. Before using this tool, you MUST double-check with the user that they want to remove this broadcast. Reference the NAME of the broadcast when double-c
- Remove-contactRemove a contact from Resend (by ID or email). Before using this tool, you MUST double-check with the user that they want to remove this contact. Reference the contact's name (if present) and email ad
- Remove-contact-from-segmentRemove a contact from a segment in Resend (by contact ID or email). Before using this tool, you MUST double-check with the user that they want to remove the contact from the segment.
- Remove-contact-propertyRemove a contact property by ID from Resend. Before using this tool, you MUST double-check with the user that they want to remove this contact property. Reference the KEY of the property when double-c
- Remove-domainRemove a domain by ID from Resend. Before using this tool, you MUST double-check with the user that they want to remove this domain. Reference the NAME of the domain when double-checking, and warn the
- Remove-segmentRemove a segment by ID from Resend. Before using this tool, you MUST double-check with the user that they want to remove this segment. Reference the NAME of the segment when double-checking, and warn
- Remove-suppressionRemove an entry by ID or email address from the suppression list in Resend, allowing the address to receive emails again. Before using this tool, you MUST double-check with the user that they want to
- Remove-templateRemove an email template by ID, alias, or Resend dashboard URL from Resend. Before using this tool, you MUST double-check with the user that they want to remove this template. Reference the NAME of th
- Remove-topicRemove a topic by ID from Resend. Before using this tool, you MUST double-check with the user that they want to remove this topic. Reference the NAME of the topic when double-checking, and warn the us
- Remove-webhookRemove a webhook by ID from Resend. Before using this tool, you MUST double-check with the user that they want to remove this webhook. Reference the ENDPOINT of the webhook when double-checking, and w
- Replay-webhook-event**Purpose:** Queue one more delivery of a webhook event to its endpoint — the same action as the dashboard's Replay button. **NOT for:** Inspecting an event (use get-webhook-event) or its past attempt
- Revoke-oauth-grantRevoke an OAuth grant by ID. Before using this tool, you MUST double-check with the user that they want to revoke this grant. Reference the NAME of the app (client) when double-checking, and warn the
- Send-batch-emails**Purpose:** Send up to 100 transactional emails in one API call. Each item has the same fields as send-email (to, subject, text, from, etc.). **NOT for:** Sending one email (use send-email) or the sa
- Send-broadcast**Purpose:** Send (or schedule) an existing broadcast by ID. The broadcast must have been created with create-broadcast first. **NOT for:** Sending a new one-off email (use send-email). Not for creati
- Send-email**Purpose:** Send a single transactional email to one or more recipients immediately (or schedule it). Use for one-off messages, notifications, and direct replies. **NOT for:** Sending the same email
- Send-event**Purpose:** Fire an event to trigger automations for a specific contact. **When to use:** - User wants to trigger an automation workflow for a contact - Testing an automation by sending a test event
- Share-emailCreate a shareable link for a sent or received email, so anyone with the link can view it without Resend dashboard access. Works for any email ID, sent or received.
- Update-api-keyRename an existing API key in Resend. Only the name can be changed — permission and domain restrictions are fixed at creation and cannot be updated.
- Update-automation**Purpose:** Update an automation's name, status, or workflow. **When to use:** - User wants to rename an automation - User wants to enable or disable an automation (use status: "disabled" to stop it)
- Update-broadcastUpdate broadcast metadata by ID or Resend dashboard URL (name, subject, from, html, text, segment, preview text, reply-to). To edit TipTap content, use compose-broadcast instead. **Important:** The AP
- Update-contactUpdate a contact in Resend (by ID or email).
- Update-contact-propertyUpdate an existing contact property in Resend. Only the fallback value can be changed — the key and type cannot be modified after creation.
- Update-contact-topicsUpdate topic subscriptions for a contact in Resend (by contact ID or email).
- Update-domainUpdate an existing domain in Resend. Allows changing tracking settings, TLS mode, and capabilities.
- Update-emailReschedule a scheduled email by updating its scheduled send time. Only works for emails that were scheduled and have not yet been sent.
- Update-segmentRename an existing segment in Resend.
- Update-templateUpdate template metadata by ID, alias, or Resend dashboard URL (name, subject, from, html, variables, etc.). After updating a published template, use publish-template again to make the changes live. T
- Update-topicUpdate an existing topic in Resend. Note: defaultSubscription cannot be modified after creation.
- Update-webhookUpdate an existing webhook in Resend. You can change the endpoint URL, subscribed events, or enable/disable the webhook.
- Verify-domainTrigger domain verification in Resend. This starts an asynchronous verification process that checks if the DNS records are correctly configured. The domain status will temporarily show as "pending" du
- Verify-domain-claimTrigger asynchronous DNS verification and ownership transfer for a domain claim, using the placeholder Domain ID. The claim stays "pending" while verification runs; poll get-domain-claim for status. O
Changes wait in Needs you
Changes and sends in Resend MCP are held for a person's approval by default. The approval is recorded, and the action is sent once, never twice, with 10 seconds to undo.
Resend MCP questions
Can an agent change data in Resend MCP on its own?
Not by default. Changes and sends in Resend MCP are held for a person's approval. The approval is recorded, and the action is sent once, never twice, with 10 seconds to undo.
What can an agent read in Resend MCP?
This connector lists 44 read actions. Reads run at once, without waiting for approval.
How does Resend MCP connect?
It connects with dcr oauth. Connectors are built and maintained by third-party developers; availability is confirmed during scoping.