100+ integrations are ready to connect to your AI.Connect your first MCP

Resend MCP server for your AI

Send or cancel scheduled mail, trace a bounce back to the delivery event, move contacts between segments, queue a broadcast, and check whether a sending domain's DNS actually verified.

PopMCPResend

Which sends from yesterday bounced, and what did the API log say?

Supported Resend tools

Every email, contact, segment, broadcast, template, domain and webhook operation the agent can call, plus the delivery events it can watch.

resend_cancel_email

Cancel a scheduled email by id before it is sent.

resend_get_email

Retrieve a single sent email by id, including its latest delivery event.

resend_list_emails

List sent emails (most recent first).

resend_send_batch_emails

Send up to 100 emails in a single batch request.

resend_send_email

Send a transactional email.

resend_update_email

Reschedule a scheduled email by id.

resend_create_contact

Create a contact.

resend_delete_contact

Delete a contact by id OR email.

resend_get_contact

Retrieve a single contact by id OR email.

resend_list_contacts

List contacts, optionally filtered to one segment.

resend_update_contact

Update a contact by id OR email.

resend_create_template

Create a reusable email template.

resend_list_templates

List email templates.

resend_create_broadcast

Create a broadcast (newsletter-style email) targeting a segment.

resend_create_domain

Add a sending domain.

resend_get_broadcast

Retrieve a single broadcast by id.

resend_get_domain

Retrieve a single domain by id, including its DNS records and status.

resend_list_broadcasts

List broadcasts.

resend_list_domains

List sending domains and their verification status.

resend_send_broadcast

Send (or schedule) a previously created broadcast by id.

resend_verify_domain

Trigger DNS verification for a domain by id (asynchronous).

resend_create_segment

Create a segment (a contact list).

resend_create_topic

Create a subscription topic.

resend_get_segment

Retrieve a single segment by id.

resend_list_segment_contacts

List the contacts in a segment.

resend_list_segments

List segments.

resend_list_topics

List subscription topics.

resend_list_api_keys

List API keys (metadata only — secrets are never returned).

resend_list_logs

List API request logs (endpoint, method, response status, timestamp).

resend_get_email_attachment

Retrieve a single sent-email attachment's metadata and a (temporary) download URL.

resend_get_received_email

Retrieve a single received (inbound) email by id.

resend_get_received_email_attachment

Retrieve a single received-email attachment's metadata and a download URL.

resend_list_email_attachments

List the attachments on a sent email.

resend_list_received_email_attachments

List the attachments on a received (inbound) email.

resend_list_received_emails

List inbound (received) emails.

resend_add_contact_to_segment

Add a contact (id or email) to a segment.

resend_get_contact_topics

List a contact's topic subscriptions.

resend_list_contact_segments

List the segments a contact (id or email) belongs to.

resend_remove_contact_from_segment

Remove a contact (id or email) from a segment.

resend_update_contact_topics

Update a contact's topic subscriptions.

resend_delete_template

Delete a template by id OR alias.

resend_duplicate_template

Duplicate a template by id OR alias; returns the new template.

resend_get_template

Retrieve a single template by id OR alias.

resend_publish_template

Publish a template by id OR alias so it can be used to send.

resend_update_template

Update a template by id OR alias.

resend_delete_broadcast

Delete a draft broadcast by id (a scheduled send is auto-cancelled).

resend_delete_domain

Delete a domain by id.

resend_update_broadcast

Update a draft broadcast by id (all fields optional).

resend_update_domain

Update a domain's tracking and TLS settings by id.

resend_create_contact_property

Create a custom contact property.

resend_create_webhook

Create a webhook endpoint.

resend_delete_contact_property

Delete a contact property by id.

resend_delete_segment

Delete a segment by id.

resend_delete_topic

Delete a topic by id.

resend_delete_webhook

Delete a webhook by id.

resend_get_contact_property

Retrieve a single contact property by id.

resend_get_topic

Retrieve a single topic by id.

resend_get_webhook

Retrieve a single webhook by id, including its signing secret.

resend_list_contact_properties

List custom contact properties.

resend_list_webhooks

List webhook endpoints.

resend_update_contact_property

Update a contact property's fallback_value by id (key and type are immutable).

resend_update_topic

Update a topic's metadata by id.

resend_update_webhook

Update a webhook by id (all fields optional).

resend_create_api_key

Create a new Resend API key.

resend_delete_api_key

Delete (revoke) an API key by id.

resend_get_log

Retrieve a single API request log by id, including request/response bodies.

Connect Resend to your AI

Credentials off one Resend screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

Paste a Resend API key into the API key field — the connection is scoped to that key. A Full access key reaches every tool (domains, contacts, broadcasts, templates); a Sending access key connects but only sends email.

API key••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Which sends from yesterday bounced, and what did the API log say?

    • list_emails
    • get_email
    • list_logs
  • Move everyone in the trial segment who unsubscribed from product news out of it

    • list_segment_contacts
    • get_contact_topics
    • remove_contact_from_segment
  • Draft a March newsletter template and queue it as a broadcast to the beta segment

    • list_segments
    • create_template
    • create_broadcast
    • send_broadcast
  • Are all our sending domains verified, and which broadcasts went out on them?

    • list_domains
    • get_domain
    • list_broadcasts

Use Resend from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Resend MCP server questions

What teams ask before putting Resend behind an AI client.

Does a Sending access key work, or do I need a Full access key?

Both connect. A Sending access key is limited to sending email, so contacts, segments, broadcasts, templates and domains stay out of reach. Paste a Full access key into the API key field if you want the whole catalog. Either way, list_api_keys returns key metadata only — secrets are never returned.

Does my AI client load all 66 tools at once?

No. 29 of the 66 operations load by default and the rest stay searchable, which keeps the client's tool list short. Turn the full catalog on when a job needs the rarer domain, webhook or attachment tools. The catalog splits 30 read and 36 write across 11 API modules.

Why doesn't verify_domain tell me the domain is verified?

verify_domain triggers DNS verification and is asynchronous — it starts the check rather than returning the outcome. Call get_domain afterwards to read that domain's DNS records and current status. list_domains gives the same verification status across every sending domain in one call.

Does the agent need contact IDs, or can it work from email addresses?

get_contact, update_contact and delete_contact all take a contact id or an email, and so do add_contact_to_segment, remove_contact_from_segment and list_contact_segments. So an agent can act on dana@northwind.co directly, with no lookup step first. Topic subscriptions are handled separately by get_contact_topics and update_contact_topics.

Can it read mail we received, not just mail we sent?

Yes. list_received_emails and get_received_email cover inbound mail, and list_received_email_attachments with get_received_email_attachment reach the files on it, including a download URL. Sent mail has its own pair, list_email_attachments and get_email_attachment, whose download URLs are temporary. Inbound email received is also available as a change-detection trigger.

Which Resend events can PopMCP watch?

On the delivery side: email sent, delivered, bounced, opened, link clicked, delivery delayed, failed, and marked as spam. On the audience side: contact added, contact updated and contact removed. Sending domain added and sending domain changed cover account setup, and inbound email received fires when someone writes to one of your receiving addresses.

Do I have to run or host the Resend MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 29 of the 66 tools load by default?

Loading 66 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 29-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 66 here. A trigger is something PopMCP watches for you: 18 Resend events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Resend.

Connect Resend to your AI in minutes

Launch a hosted MCP endpoint for Resend, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP