skillmake
← marketplace
engineersapisha:0edffcb4171953famanual

resend-email-skill

Use when sending single, batch, or scheduled transactional emails via Resend with React Email templates, using Resend's official Claude Code skill and MCP server.

Install confidence
reviewed
curl --create-dirs -fsSL https://skillmake.xyz/i/resend-email-skill -o ~/.claude/skills/resend-email-skill/SKILL.md
Pinned content
sha:0edffcb4171953fa
Generated with
manual
Source
resend.com

The file served at /api/marketplace/resend-email-skill-0edffcb4/raw matches this hash. Inspect before install, then copy the command.

3,754 chars · ~939 tokens
---
name: resend-email-skill
description: "Use when sending single, batch, or scheduled transactional emails via Resend with React Email templates, using Resend's official Claude Code skill and MCP server."
source: https://resend.com/claude-code
generated: 2026-05-17T04:18:34.386Z
category: api
audience: engineers
---

## When to use

- Sending a single transactional email through resend.emails.send
- Batching up to 100 emails in one request to Resend
- Scheduling emails for future delivery via Resend
- Authoring email templates as React Email components
- Adding idempotency keys so retries do not duplicate sends
- Wiring the Resend MCP server into Claude Code for email workflows

## Key concepts

### Resend agent skill

An installable skill bundle that teaches AI agents Resend's idioms: it activates automatically when an email task is detected and produces production-ready code that follows Resend best practices.

### Resend MCP server

A Model Context Protocol server exposing 56+ Resend tools to Claude Code via npx -y resend-mcp, authenticated with a RESEND_API_KEY environment variable.

### Batch send

A single API call that delivers up to 100 emails per request, useful for transactional fan-out like welcome flows or order confirmations without hitting per-request overhead.

### Idempotency key

A client-supplied string sent with the request so safe retries (network errors, timeouts) do not result in duplicate emails. Resend dedupes against the key for a bounded window.

### Automatic retries with backoff

The skill recommends exponential backoff for transient 5xx and network failures so transient infrastructure issues do not drop legitimate sends.

### React Email templates

Email bodies are authored as React components, letting agents share design tokens with the web app and render to HTML at send time instead of hand-writing table-based markup.

## API reference

```
claude mcp add resend -e RESEND_API_KEY=re_xxx -- npx -y resend-mcp
```

Registers the Resend MCP server with Claude Code so the agent can call Resend tools directly.

```
claude mcp add resend \
  -e RESEND_API_KEY=re_xxxxxxxxx \
  -- npx -y resend-mcp
```

```
npx skills add resend/resend-skills
```

Installs the Resend agent skill bundle so compatible agents pick up Resend best practices automatically.

```
npx skills add resend/resend-skills
```

```
resend.emails.send({from, to, subject, react})
```

Sends a single transactional email using a React Email component as the body.

```
await resend.emails.send({
  from: 'you@yourdomain.com',
  to: 'user@example.com',
  subject: 'Welcome',
  react: <WelcomeEmail name="Ada" />
});
```

```
resend.batch.send(emails[])
```

Sends up to 100 emails in one API call for transactional fan-out workloads.

```
await resend.batch.send([
  { from, to: 'a@example.com', subject: 'Hi', react: <Tpl/> },
  { from, to: 'b@example.com', subject: 'Hi', react: <Tpl/> }
]);
```

## Gotchas

- RESEND_API_KEY must be set in the MCP env block; missing it leaves the agent unable to send and surfaces a vague auth error.
- Batch send is capped at 100 messages per request; larger lists must be chunked client-side.
- Without an idempotency key, network retries can deliver the same email multiple times to the recipient.
- The from address must use a verified domain in Resend; unverified domains fail with 403 from_address_not_verified.
- React Email components must be serializable to HTML at send time; runtime hooks or browser-only APIs throw.
- Scheduled sends use Resend's clock, not the caller's; off-by-timezone bugs are common when passing local datetimes.

---
Generated by SkillMake from https://resend.com/claude-code on 2026-05-17T04:18:34.386Z.
Verify against source before relying on details.

File: ~/.claude/skills/resend-email-skill/SKILL.md