send0
Email inboxes for AI agents: create an address, wait for codes and links, send and reply in threads.
Que pouvez-vous faire avec send0 ?
- An address in one call.
name@send0.emailis ready in milliseconds (custom domains are coming). Plus-addressing (bot+task42@) tags mail without more inboxes. - Wait, don't poll. One long-poll call blocks until the email you need arrives and returns the one-time code and verification link.
- Clean, structured messages. The new reply text without quoted history, SPF/DKIM/DMARC verdicts, and a prompt-injection flag on every inbound message.
- Real threads. Outbound mail carries
Message-ID,In-Reply-ToandReferences, so conversations stay threaded for your agent and for the person on the other side. - Webhooks and live events on every plan. Signed webhooks (
send0-signature, Stripe-style HMAC) with automatic retries and manual redelivery, plus a Server-Sent Events stream. - Built for agents, safe by default. Inbox-scoped API keys, human approval for outgoing mail, reply-only sending on the free tier, automatic suppression of bounces and complaints, and sending that pauses itself when complaint or bounce rates spike.
- MCP server. Plug inboxes into Claude, Cursor, VS Code or any MCP client, locally or at
https://api.send0.dev/mcp. - Agent framework tools. The same tools for the Vercel AI SDK, LangChain.js and LangChain for Python, with errors returned to the model and optional approval before sending.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http send0 'https://api.send0.dev/mcp' --header 'Authorization: <Your send0 API key as a Bearer token>' --header 'x-send0-inbox: <Default inbox (ibx_…) for tools that take an inbox_id>'
{
"mcpServers": {
"send0": {
"type": "http",
"url": "https://api.send0.dev/mcp",
"headers": {
"Authorization": "<Your send0 API key as a Bearer token>",
"x-send0-inbox": "<Default inbox (ibx_…) for tools that take an inbox_id>"
}
}
}
}
@send0/mcpclaude mcp add send0 -e 'SEND0_API_KEY=<your send0_api_key>' -e 'SEND0_INBOX_ID=<SEND0_INBOX_ID>' -e 'SEND0_BASE_URL=https://api.send0.dev' -- npx -y @send0/mcp@0.2.1
{
"mcpServers": {
"send0": {
"command": "npx",
"args": [
"-y",
"@send0/mcp@0.2.1"
],
"env": {
"SEND0_API_KEY": "<your send0_api_key>",
"SEND0_INBOX_ID": "<SEND0_INBOX_ID>",
"SEND0_BASE_URL": "https://api.send0.dev"
}
}
}
}
Variables d'environnement
SEND0_API_KEYobligatoire secret send0 API key (s0_live_…), from https://app.send0.devSEND0_INBOX_IDDefault inbox (ibx_…) for tools that take an inbox_idSEND0_BASE_URLAPI base URL, for a self-hosted send0
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
send0
Give any agent an email address in one API call.
Open-source email inboxes for AI agents. Send, receive, thread and wait, with webhooks on every plan.
Docs · Quickstart · OpenAPI · Dashboard
Most email APIs are built to send receipts. send0 starts from the inbox: each agent gets a real address that receives, sends and holds threaded conversations, and every message arrives parsed, with the parts an agent needs already pulled out.
import { Send0 } from "@send0/sdk";
const send0 = new Send0(process.env.SEND0_API_KEY);
const inbox = await send0.inboxes.create({ name: "signup-agent" });
// → signup-agent@send0.email
await browser.fill("#email", inbox.address);
await browser.click("Create account");
// Blocks until the email lands, then returns it with the code already extracted.
const msg = await send0.inboxes.wait(inbox.id, { from: "*@github.com", timeout: 60 });
msg?.extracted?.otp; // "482913"
await send0.messages.reply(msg.id, { text: "Thanks, confirmed." }); // threads in Gmail and Outlook
Features
- An address in one call.
name@send0.emailis ready in milliseconds (custom domains are coming). Plus-addressing (bot+task42@) tags mail without more inboxes. - Wait, don't poll. One long-poll call blocks until the email you need arrives and returns the one-time code and verification link.
- Clean, structured messages. The new reply text without quoted history, SPF/DKIM/DMARC verdicts, and a prompt-injection flag on every inbound message.
- Real threads. Outbound mail carries
Message-ID,In-Reply-ToandReferences, so conversations stay threaded for your agent and for the person on the other side. - Webhooks and live events on every plan. Signed webhooks (
send0-signature, Stripe-style HMAC) with automatic retries and manual redelivery, plus a Server-Sent Events stream. - Built for agents, safe by default. Inbox-scoped API keys, human approval for outgoing mail, reply-only sending on the free tier, automatic suppression of bounces and complaints, and sending that pauses itself when complaint or bounce rates spike.
- MCP server. Plug inboxes into Claude, Cursor, VS Code or any MCP client, locally or at
https://api.send0.dev/mcp. - Agent framework tools. The same tools for the Vercel AI SDK, LangChain.js and LangChain for Python, with errors returned to the model and optional approval before sending.
- A dashboard for the humans. Read threads, approve drafts, manage keys, webhooks and teammates at app.send0.dev.
Use it
| REST API | https://api.send0.dev, Bearer API key, OpenAPI 3.1 spec |
| TypeScript | npm install @send0/sdk, see packages/sdk |
| Python | pip install send0, see packages/sdk-python |
| MCP | claude mcp add --transport http send0 https://api.send0.dev/mcp --header "Authorization: Bearer s0_live_…", or npx -y @send0/mcp locally |
| Vercel AI SDK | npm install @send0/ai-sdk ai zod, see packages/ai-sdk |
| LangChain.js | npm install @send0/langchain @langchain/core zod, see packages/langchain |
| LangChain Python | pip install langchain-send0, see packages/langchain-python |
The same flow with cURL
curl https://api.send0.dev/v1/inboxes \
-H "Authorization: Bearer $SEND0_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{ "name": "research-agent" }'
curl "https://api.send0.dev/v1/inboxes/ibx_…/messages/wait?from=*@acme.dev&timeout=60" \
-H "Authorization: Bearer $SEND0_API_KEY"
curl https://api.send0.dev/v1/messages/msg_…/reply \
-H "Authorization: Bearer $SEND0_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{ "text": "Thanks, confirmed." }'
Full guides and the API reference are at send0.dev/docs.
How it works
Inbound sender ─▶ MX (send0.email) ─▶ accept/refuse during SMTP ─▶ store raw .eml
─▶ parse, extract code + links, check SPF/DKIM/DMARC, flag injection
─▶ thread ─▶ webhook + live stream + any waiting wait() call
Outbound your agent ─▶ policy checks (reply-only, suppression, daily cap)
─▶ MIME with threading headers, DKIM-signed ─▶ Amazon SES
─▶ delivered / bounced / complained events ─▶ webhooks
The hosted service runs on Cloudflare Workers (API, inbound mail, Durable Objects for real-time, Queues), Postgres (Neon) and Amazon SES. Everything is TypeScript; the HTTP layer is Hono, so the same app can run on Node.
Repository
apps/api REST API, webhooks, real-time, remote MCP (api.send0.dev)
apps/inbound Inbound mail Worker: SMTP accept/refuse → store → ingest
apps/web Dashboard SPA and its Worker (app.send0.dev)
apps/docs Documentation (send0.dev/docs)
apps/www Marketing site (send0.dev)
packages/core Parsing, threading, extraction, safety: pure TypeScript
packages/db Postgres schema and migrations (Drizzle)
packages/pipeline Inbound ingest and event fan-out
packages/adapters Blob storage and mail transport behind interfaces
packages/auth Dashboard accounts, sessions, workspaces, roles
packages/sdk @send0/sdk, the TypeScript SDK (MIT)
packages/sdk-python send0, the Python SDK (MIT)
packages/mcp @send0/mcp, the MCP server (MIT)
packages/ai-sdk @send0/ai-sdk, Vercel AI SDK tools (MIT)
packages/langchain @send0/langchain, LangChain.js tools (MIT)
packages/langchain-python langchain-send0, LangChain for Python (MIT)
fixtures/emails Real-world .eml corpus used by the tests
Development
Requires Node 22, pnpm 9, and uv for the Python SDK.
pnpm install
pnpm verify # format check, lint, typecheck, tests
pnpm --filter @send0/web dev:local # the whole product locally at http://localhost:5199
No accounts or services needed: tests and the local server use an in-memory Postgres and record outgoing email instead of sending it. See CONTRIBUTING.md to get started and CLAUDE.md for the architecture and conventions.
Self-hosting
Run the same API, SDKs, MCP server and dashboard on your own domain. Two editions, from v0.2.1:
- Docker Compose: Postgres, the send0 server (with its own SMTP server for inbound mail) and Caddy on one machine. Sends through any SMTP relay or Amazon SES. Image:
ghcr.io/send0-dev/send0. Files inselfhost/. - Cloudflare: one Worker on your account, with Email Routing, R2, Queues, a Durable Object, your Postgres through Hyperdrive, and Amazon SES. Deploy to Cloudflare.
The guide: send0.dev/docs/self-hosting.
Contributing
Issues and pull requests are welcome. Please read CONTRIBUTING.md; contributors sign a CLA once, through a bot on the first pull request. For security issues, see SECURITY.md.
License
- The send0 server and apps are licensed under the GNU Affero General Public License v3.0. If you run a modified version as a network service, you must offer its source to your users.
- The SDKs (
packages/sdk,packages/sdk-python) the MCP server (packages/mcp) and the agent framework integrations (packages/ai-sdk,packages/langchain,packages/langchain-python) are MIT, so you can use them in any project.
Copyright © 2026 Kunal Dholiya.
Questions fréquentes
Qu'est-ce que send0 ?
Email inboxes for AI agents: create an address, wait for codes and links, send and reply in threads.
Comment installer send0 ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http send0 'https://api.send0.dev/mcp' --header 'Authorization: <Your send0 API key as a Bearer token>' --header 'x-send0-inbox: <Default inbox (ibx_…) for tools that take an inbox_id>'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour send0 ?
Oui. Il attend SEND0_API_KEY, Authorization, x-send0-inbox, à renseigner dans sa configuration.
send0 est-il open source ?
Oui. Son code est sur GitHub sous licence AGPL-3.0.
Qui maintient send0 ?
Il est publié par send0-dev. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.