send0
Email inboxes for AI agents: create an address, wait for codes and links, send and reply in threads.
ماذا يمكنك أن تفعل مع 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.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «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"
}
}
}
}
متغيرات البيئة
SEND0_API_KEYإلزامي سري 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
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على 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.
الأسئلة الشائعة
ما هو send0؟
Email inboxes for AI agents: create an address, wait for codes and links, send and reply in threads.
كيف أثبّت send0؟
يعمل كخادم بعيد. في 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>'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج send0 إلى مفتاح API؟
نعم. يتطلب SEND0_API_KEY, Authorization, x-send0-inbox، وتضبطها في إعداداته.
هل send0 مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص AGPL-3.0.
من يصون send0؟
ينشره send0-dev. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.