Sendlet
officialLet AI agents email only people you've approved. Each recipient or group gets its own private MCP URL, with daily limits, optional approval before sending, attachments and a send log. Free to start.
What can you do with Sendlet MCP?
- Send an email — Ask your assistant to send a subject and Markdown body to a recipient through the endpoint URL, with optional attachments and an idempotency key.
- Check the endpoint — Ask what the endpoint emails, how many sends are left today, and what formats it accepts before sending anything.
- Track a send — Look up a
snd_id to see whether a message is queued, sent, bounced, or awaiting approval, per recipient label. - Add to Claude — Paste the endpoint's MCP URL (
https://sendlet.email/mcp/sam-k7F2x9Qa4mB8nR1vT6yZ3c) as a custom connector so Claude can send on your behalf.
Hosted MCP Server
npx add-mcp 'https://sendlet.email/mcp/{endpoint}'Installs into Claude Code, Codex, Cursor and more
Documentation
Get started
- Sign in at sendlet.email with your email address. A new account comes with one recipient already accepted: you.
- Add the people your agents may email. Each gets an invitation and must accept before anything reaches them.
- Create an endpoint on a recipient or group: a private URL for one agent, with its own daily limit. Copy it when it's shown; for safety it's shown only once.
- Give the URL to your agent, or add its MCP address to Claude. Every send appears in your send log.
Endpoint URLs look like https://sendlet.email/to/sam-k7F2x9Qa4mB8nR1vT6yZ3c. Anyone with the URL can send to that recipient, within its limits, so treat it like a password: you can pause, rotate or revoke it at any time.
Sending over HTTP
POST JSON to the endpoint URL:
POST https://sendlet.email/to/sam-k7F2x9Qa4mB8nR1vT6yZ3c
Content-Type: application/json
{"subject": "Short summary", "body": "Message text. **Markdown** is supported."}
subject
Required. One line, up to 200 characters. Also accepted as title.
body
Required. Plain text or Markdown, up to 50,000 characters. Also accepted as message, text or content.
idempotency_key
Optional. Up to 100 of A-Z a-z 0-9 _ . : -. The same key within 10 minutes sends only once, so retries are safe. Also accepted as an Idempotency-Key header.
attachments
Optional, if your plan includes attachments. See below.
Form posts (application/x-www-form-urlencoded) take the same fields. With text/plain or text/markdown, the first line is the subject and the rest is the body.
Files and images
Add an attachments array with each file's name and base64 content, or POST multipart/form-data:
curl -F subject="Floor plan" -F body="" -F [email protected] \
https://sendlet.email/to/sam-k7F2x9Qa4mB8nR1vT6yZ3c
- Up to 10 files per email. The size allowance depends on your plan; the endpoint's GET description says what's available.
- Allowed types: png, jpg, jpeg, gif, webp, pdf, txt, csv, md, json, ics, docx, xlsx, pptx, odt and ods. The content must match the extension.
- To show an attached image inside the message, reference it as a Markdown image:
. Images from web addresses aren't loaded.
Before sending
GET the endpoint URL to see who it emails, how many emails are left today and what it accepts: Markdown by default, or JSON with Accept: application/json. A GET never sends.
After sending
GET …/to/{address}/sends/{id} with the snd_ id from the response to see what happened: queued, sent, bounced, awaiting approval and so on, per recipient by label. Addresses are never shown.
MCP and Claude
Every endpoint is also an MCP server (Streamable HTTP). Replace /to/ with /mcp/:
https://sendlet.email/mcp/sam-k7F2x9Qa4mB8nR1vT6yZ3c
- Claude: Settings, Connectors, add a custom connector, and paste the MCP URL. Each endpoint page has a Copy MCP URL button.
- Claude Code:
claude mcp add --transport http sendlet https://sendlet.email/mcp/… - Tools:
send_email(subject, body, optional attachments and idempotency key),endpoint_info(who it emails and what's left today) andget_send_status.
Staying in control
- Daily limits on each endpoint and on your account. A group send needs room for every member's copy.
- Approval: an endpoint can hold every email until you approve it. You're emailed straight away; anything undecided for 3 days is rejected.
- Groups: one endpoint can email several recipients, each getting their own copy. Only members who've accepted receive it.
- Alerts: you're emailed when a send fails, a recipient bounces or complains, or an endpoint reaches its daily limit.
- Recipients stay in charge: every email has a one-click unsubscribe, and a hard bounce or complaint unsubscribes automatically.
For agents and tools
- llms.txt: these instructions in a form written for language models.
- openapi.json: the OpenAPI description of the send API.