# SadaSend > SadaSend is a transactional email API with a Model Context Protocol (MCP) server and per-key agent guardrails, built for developers who let AI agents send email on their behalf. Scoped keys, recipient allowlists, and approval mode. The email API built for agents you don't fully trust yet. ## Pages - [Home](https://www.sadasend.com/index.md): Product overview, guardrails, MCP tools, pricing and FAQ - [Documentation](https://www.sadasend.com/docs): API reference, SDKs and guides - [MCP server](https://www.sadasend.com/#mcp): Hosted Model Context Protocol server and its tool catalogue - [Pricing](https://www.sadasend.com/#pricing): Free, Pro and Scale tiers - [Free tools](https://www.sadasend.com/#tools): SPF, DKIM, DMARC, MX and blocklist checkers ## Writing - [The 2026 Stateless MCP Specification Explained: Scalable Serverless AI Tools](https://www.sadasend.com/blog/stateless-mcp-specification-2026-explained.md): A deep architectural breakdown of the 2026-07-28 Model Context Protocol update, explaining how stateless HTTP transports eliminated sticky sessions for production AI agents. - [Local vs Remote Hosted MCP Servers: Architecture, Latency, and Deployment](https://www.sadasend.com/blog/local-vs-remote-hosted-mcp-servers.md): Comparing local stdio MCP servers for desktop agents against remote streamable HTTP MCP servers for scalable multi-tenant SaaS platforms. - [Debugging MCP Connection Timeouts and Tool Calling Failures in Claude and Cursor](https://www.sadasend.com/blog/debugging-mcp-connection-timeouts-tool-failures.md): A troubleshooting checklist for diagnosing and resolving MCP connection timeouts, JSON-RPC schema mismatches, and stdio pipe crashes in Claude Desktop and Cursor. - [Multi-Tenant MCP Architecture for SaaS Applications: Partitioning Agent Contexts](https://www.sadasend.com/blog/multi-tenant-mcp-architecture-saas.md): How to design multi-tenant Model Context Protocol infrastructure that isolates data, rate limits, and email credentials across thousands of enterprise customer organizations. - [The Complete Directory of Email MCP Tools and Schemas (2026 Reference Guide)](https://www.sadasend.com/blog/complete-directory-email-mcp-tools-schemas.md): A comprehensive reference guide and JSON schema directory for email Model Context Protocol tools, including send_email, verify_domain, get_logs, and inspect_allowlist. - [Model Context Protocol (MCP) Email Tutorial: Connecting Claude and Agents to SadaSend](https://www.sadasend.com/blog/mcp-email-tutorial.md): Hands-on tutorial on setting up and querying SadaSend’s hosted MCP server (mcp.sadasend.com) in Claude Desktop, Cursor, and custom MCP clients. - [Building a Custom TypeScript MCP Server for Email: Zero to Production in 100 Lines](https://www.sadasend.com/blog/building-custom-typescript-mcp-server-email.md): Step-by-step guide to building and deploying a production-ready Model Context Protocol (MCP) server for transactional email using @modelcontextprotocol/server and Zod. - [MCP vs REST APIs for AI Agents: Why Traditional API Keys Fail in Agentic Workflows](https://www.sadasend.com/blog/mcp-vs-rest-apis-for-ai-agents.md): Why Anthropic developed the Model Context Protocol and why traditional REST APIs and static API keys create critical security and observability vulnerabilities for AI agents. - [Securing MCP Servers with Scoped OAuth and Per-Agent Permission Limits](https://www.sadasend.com/blog/securing-mcp-servers-scoped-oauth-limits.md): A practical guide to securing Model Context Protocol servers against tool hijacking, prompt injection, and unauthorized data exfiltration using scoped OAuth tokens. - [Claude Desktop MCP Email Integration: Giving Claude Autonomous Email Capabilities](https://www.sadasend.com/blog/claude-desktop-mcp-email-integration.md): Step-by-step tutorial on connecting Claude Desktop to SadaSend via the Model Context Protocol (MCP) to safely compose, triage, and send emails. - [LangGraph State Machines for Email: Designing Human-in-the-Loop Approval Interrupts](https://www.sadasend.com/blog/langgraph-email-approval-state-machine.md): How to build durable, asynchronous state machines in LangGraph with human-in-the-loop approval interrupts before sending emails. - [OpenAI Swarm Email Delegation: Coordinating Specialist Sub-Agents with Scoped Keys](https://www.sadasend.com/blog/openai-swarm-email-delegation-architecture.md): Designing lightweight multi-agent swarms using OpenAI Swarm patterns with dedicated triage, drafting, and sender routines. - [CrewAI Email Dispatcher Agent: Multi-Agent Workflows with Human Sign-Off](https://www.sadasend.com/blog/crewai-email-agent-human-approval.md): Architecting a collaborative multi-agent system in CrewAI with specialized research, drafting, and outbound sender agents with human-in-the-loop sign-off. - [Vercel AI SDK 3.x & Next.js 15: Streaming Email Tool Calling Guide](https://www.sadasend.com/blog/vercel-ai-sdk-email-tool-calling.md): How to implement real-time streaming email tool calling in Next.js 15 App Router using the Vercel AI SDK (ai package) and Zod schema validation. - [LlamaIndex RAG Email Auto-Responder: Indexing Knowledge Bases for Automated Replies](https://www.sadasend.com/blog/llamaindex-rag-email-autoresponder.md): Building an intelligent email auto-responder using LlamaIndex RAG pipelines, vector stores, and scoped email dispatch. - [LangChain Email Tool Calling: Safe Integration with Recipient Allowlists](https://www.sadasend.com/blog/langchain-email-tool-calling-tutorial.md): How to build type-safe, production-ready email tools in LangChain using StructuredTool and Pydantic schemas. Includes containment boundaries and allowlists to prevent agent leaks. - [Cursor and Windsurf Rules for AI Email Agent Development (.cursorrules Guide)](https://www.sadasend.com/blog/cursor-windsurf-rules-email-agent-development.md): Complete .cursorrules and system prompt configuration for building safe, type-safe email agents in Cursor and Windsurf IDEs. - [Preventing Infinite Email Loops in Autonomous AI Agents: Circuit Breakers and Token Buckets](https://www.sadasend.com/blog/preventing-infinite-email-loops-ai-agents.md): Architecture patterns to prevent autonomous AI agents from entering recursive email loops, burning API quotas, and triggering spam blocklists. - [Semantic Routing for Outbound AI Email: Classifying Intent Before Dispatch](https://www.sadasend.com/blog/semantic-router-outbound-email-classification.md): How to use semantic embeddings and fast classification routes to inspect agent-generated email intent before routing to production SMTP pools. - [Email Agent Architecture: Designing Resilient Autonomous Communication Systems](https://www.sadasend.com/blog/email-agent-architecture.md): High-level system design and architectural patterns for production AI agent email pipelines using Bun, BullMQ, and the Outbox Pattern. - [Building an AI Customer Support Agent with Email Tool Calling (Full Code Blueprint)](https://www.sadasend.com/blog/building-an-ai-customer-support-email-agent.md): Complete production blueprint for building an autonomous customer support email agent with sentiment classification, approval queues, and safe dispatching. - [What actually happens when you give an AI agent your email API key](https://www.sadasend.com/blog/giving-an-ai-agent-your-email-api-key.md): An autonomous agent with a sending credential can email anyone, at any volume, forever. Here is the threat model, and the four key-level controls that contain it: scoped keys, recipient allowlists, approval mode and dry run. - [How to Safely Let Agents Send Email: Defense-in-Depth for Autonomous Outbound](https://www.sadasend.com/blog/how-to-safely-let-agents-send-email.md): Security blueprint covering prompt injection protection, human-in-the-loop approval queues, recipient boundaries, and egress rate-limiting. - [How to Give an AI Agent Email Access Without Handing Over Your Whole Account](https://www.sadasend.com/blog/how-to-give-an-ai-agent-email-access.md): Step-by-step developer tutorial showing how to securely connect autonomous agents in LangChain, CrewAI, and Claude to email using scoped credentials and allowlists. - [Best Email API for AI Agents in 2026: The Definitive Evaluation Guide](https://www.sadasend.com/blog/best-email-api-for-ai-agents.md): The definitive technical benchmark and evaluation checklist for choosing an email service provider when autonomous LLMs are in the sending loop. - [Indirect Prompt Injection via Email: Threat Models, Attack Vectors, and Prevention](https://www.sadasend.com/blog/indirect-prompt-injection-in-email.md): Deep dive into indirect prompt injection attacks targeting AI email assistants, hidden CSS payloads, and credential-level defense-in-depth. - [Indirect Prompt Injection Defense in Email: Sanitizing Inbound Content for AI](https://www.sadasend.com/blog/sanitizing-inbound-email-prompt-injection-defense.md): How to build robust sanitization pipelines to defend AI agents and LLM email processors against indirect prompt injection, hidden text, and jailbreaks. - [Email Threat Modeling for SaaS: Preventing Compromised API Key Abuse](https://www.sadasend.com/blog/email-threat-modeling-saas-api-keys.md): A comprehensive security engineering guide to threat modeling transactional email APIs, key leakage blast radiuses, and automated containment defenses. - [Inbound Email Webhook Parsing with LLMs: Converting Unstructured Email to JSON](https://www.sadasend.com/blog/inbound-email-webhook-parsing-llms.md): How to ingest incoming customer emails via webhook, parse attachments, and use structured LLM outputs to generate clean JSON schemas for database storage. - [Prisma & Drizzle Outbox Pattern: Atomic Database Transactions for Email](https://www.sadasend.com/blog/prisma-drizzle-transactional-outbox-pattern.md): How to guarantee zero lost emails during database writes using the Transactional Outbox pattern with Prisma ORM, Drizzle, and Postgres. - [Supabase Edge Functions & Email Webhooks: Realtime Database Triggers](https://www.sadasend.com/blog/supabase-edge-functions-email-webhooks.md): How to automatically trigger transactional emails on Supabase database insert events using Supabase Edge Functions and Webhooks. - [Deno 2.0 Transactional Email Guide: Native TypeScript Runtime](https://www.sadasend.com/blog/deno-2-transactional-email-guide.md): How to build transactional email services using Deno 2.0, native TypeScript support, Deno.serve HTTP server, and web-standard fetch. - [NestJS Enterprise Email Microservice with BullMQ & Redis Streams](https://www.sadasend.com/blog/nestjs-email-microservice-bullmq-redis.md): Architecting an enterprise-grade transactional email microservice in NestJS using BullMQ job queues, Redis streams, and exponential backoff retry policies. - [SvelteKit & Astro Email Integration: Modern Zero-Bloat Sending](https://www.sadasend.com/blog/sveltekit-astro-email-integration-guide.md): How to integrate transactional email into SvelteKit form actions and Astro server endpoints with zero JavaScript bundle overhead on the client. - [Go (Golang) Microservice for Email with Circuit Breakers & Retries](https://www.sadasend.com/blog/golang-email-microservice-circuit-breakers.md): Building an enterprise-grade Go email microservice featuring Sony GoBreaker circuit breakers, exponential backoff retries, and structured slog telemetry. - [Cloudflare Workers & Hono at the Edge: Ultra-Low Latency Email Dispatch](https://www.sadasend.com/blog/cloudflare-workers-hono-edge-email-dispatch.md): Deploying global, ultra-low latency transactional email routing at the edge using Cloudflare Workers, Hono, and SadaSend. - [FastAPI & Python 3.12 Email Agent with Pydantic Validation](https://www.sadasend.com/blog/fastapi-python-email-agent-pydantic.md): Building high-concurrency transactional email microservices in FastAPI using Python 3.12, async HTTP clients, and Pydantic v2 schemas. - [Remix & React Router v7 Email Architecture: Server Actions and Loaders](https://www.sadasend.com/blog/remix-react-router-v7-email-architecture.md): How to architect transactional email flows in Remix and React Router v7 using action functions, Zod validation, and scoped API keys. - [React Email Component Library Guide: Responsive Bulletproof Templates](https://www.sadasend.com/blog/react-email-component-library-guide.md): A comprehensive developer guide to building responsive, bulletproof transactional email templates in React with Tailwind CSS and @react-email. - [Sending Transactional Email in Next.js 15 (App Router & React Email)](https://www.sadasend.com/blog/nextjs-15-transactional-email-react-email.md): How to build type-safe transactional email pipelines in Next.js 15 App Router using Server Actions, React Email component rendering, and SadaSend. - [Resend vs SadaSend: Which Developer Email API is Best for Your Stack?](https://www.sadasend.com/blog/resend-vs-sadasend-developer-guide.md): An objective 2026 comparison between Resend and SadaSend, evaluating developer experience, React Email support, AI agent security guardrails, and pricing. - [SadaSend vs AgentMail: Production Deliverability vs Throwaway Inboxes](https://www.sadasend.com/blog/sadasend-vs-agentmail.md): Comparing two approaches to agent email: disposable virtual test inboxes vs production transactional deliverability with per-key guardrails. - [SadaSend vs Resend: The Email API for AI Agents vs Human Developers](https://www.sadasend.com/blog/sadasend-vs-resend.md): Resend was built for human developers pasting API keys into web frameworks. SadaSend is built for autonomous AI agents that hallucinate, loop, and require hard key-level ceilings. - [SadaSend vs Postmark: When to Move Beyond Traditional Transactional Email](https://www.sadasend.com/blog/sadasend-vs-postmark.md): Postmark built the standard for human transactional email. But when autonomous AI agents hold sending keys, you need per-key allowlists, approval queues, and native MCP support. - [SadaSend vs Twilio SendGrid: Agent-Native Guardrails vs Legacy MTA](https://www.sadasend.com/blog/sadasend-vs-sendgrid.md): Why next-generation AI agent workflows struggle on legacy MTAs like Twilio SendGrid and how modern agent-first infrastructure differs. - [BIMI and VMC Certificates: Getting Your Verified Logo into Gmail and Apple Mail](https://www.sadasend.com/blog/bimi-vmc-certificates-verified-logo-email.md): A complete guide to Brand Indicators for Message Identification (BIMI), SVG Tiny P.S. formatting, and Verified Mark Certificates (VMC) for email trust. - [MTA-STS and TLS-RPT in 2026: Enforcing Strict Email Transit Encryption](https://www.sadasend.com/blog/mta-sts-tls-rpt-email-security-guide.md): How to implement MTA Strict Transport Security (MTA-STS, RFC 8461) and TLS Reporting (TLS-RPT, RFC 8460) to prevent Man-in-the-Middle email tampering. - [How to Warm Up Dedicated IP Pools for High-Volume Transactional Sending](https://www.sadasend.com/blog/warm-up-dedicated-ip-pools-transactional-email.md): A mathematical guide and daily volume schedule for warming up dedicated IP addresses without triggering ISP spam throttling or reputation degradation. - [Migrating from AWS SES to SadaSend: Bypassing Sandbox Limits & IAM Complexity](https://www.sadasend.com/blog/migrating-from-aws-ses-to-sadasend.md): How to escape AWS SES sandbox restrictions, bypass complex IAM policies, and migrate to SadaSend for superior deliverability and modern developer experience. - [Migrating from Mailgun to SadaSend in 10 Minutes (Step-by-Step Guide)](https://www.sadasend.com/blog/migrating-from-mailgun-to-sadasend.md): How to migrate your transactional email infrastructure from Mailgun to SadaSend with zero downtime, simple REST API mapping, and DNS verification. - [How to Send Transactional Email with Bun and TypeScript (Zero Dependencies)](https://www.sadasend.com/blog/bun-typescript-transactional-email.md): A complete guide to sending fast, type-safe transactional emails in Bun using native fetch and the lightweight SadaSend SDK with zero bloated dependencies. - [Building a transactional email queue on Bun and BullMQ without losing messages](https://www.sadasend.com/blog/transactional-email-queue-bun-bullmq-outbox.md): BullMQ cannot enlist in a Postgres transaction, so "row written, job never enqueued" is a real failure mode — a silently dropped email. The outbox pattern, jobId deduplication, and the Redis setting that quietly deletes your jobs. - [How to Implement RFC 8058 One-Click Unsubscribe Headers in React Email](https://www.sadasend.com/blog/rfc-8058-one-click-unsubscribe-react-email.md): A technical implementation guide for RFC 8058 List-Unsubscribe and List-Unsubscribe-Post headers to ensure full compliance with Google and Yahoo sender policies. - [Gmail, Yahoo and Microsoft now reject non-compliant mail. The 2026 checklist](https://www.sadasend.com/blog/gmail-yahoo-sender-requirements-2026.md): Since November 2025 the major mailbox providers reject non-compliant bulk mail outright rather than filtering it to spam. The requirements, the 5,000/day threshold, the 0.30% complaint ceiling, and how to check whether you are already affected. - [Dedicated IP vs Shared IP for Email: When Do You Actually Need One?](https://www.sadasend.com/blog/dedicated-ip-vs-shared-ip-email.md): An engineering breakdown of email IP reputation, warming curves, volume thresholds, and when upgrading to a dedicated IP helps vs harms your deliverability. - [Nodemailer vs Native Fetch in 2026: Why Modern Runtimes Abandoned Legacy SMTP](https://www.sadasend.com/blog/nodemailer-vs-native-fetch-2026.md): An architectural analysis comparing legacy Nodemailer direct SMTP sockets against modern native fetch REST email APIs in Bun, Node.js 22, and Deno. - [Nodemailer in production: what breaks, and what to do about it](https://www.sadasend.com/blog/nodemailer-in-production.md): Nodemailer is the right library and the wrong architecture for production sending. The failures that show up at scale — synchronous sends, no idempotency, lost retries, missing suppression — and how to fix each one. - [Why your transactional email goes to spam](https://www.sadasend.com/blog/why-transactional-email-goes-to-spam.md): Password resets and receipts land in spam for different reasons than marketing mail. Reputation is shared across your domain, warm-up cannot be skipped, and the fixes are mostly not about content. - [The Complete Guide to SPF, DKIM, and DMARC Alignment in 2026](https://www.sadasend.com/blog/complete-spf-dkim-dmarc-guide.md): Exhaustive DNS and deliverability guide covering modern mailbox provider enforcement (Gmail, Yahoo, Microsoft 365) and strict DMARC alignment. - [SPF, DKIM and DMARC: what each one actually does](https://www.sadasend.com/blog/spf-dkim-dmarc-explained.md): SPF authorises servers, DKIM signs messages, DMARC decides what happens when they disagree. A practical guide to configuring all three correctly, including the ten-lookup limit and why alignment is the part that breaks. ## Company - [Careers](https://www.sadasend.com/careers.md): Hiring now — 3 open roles - [Security](https://www.sadasend.com/security.md): Encryption, credentials, abuse prevention, vulnerability disclosure - [Privacy](https://www.sadasend.com/privacy.md): What we collect, retention periods, subprocessors - [Terms](https://www.sadasend.com/terms.md): Acceptable use, deliverability thresholds, billing - [Contact](https://www.sadasend.com/contact.md): Support, security, abuse, sales, privacy and press ## What makes SadaSend different - **Scoped keys** — A key does one job. Every key carries an explicit scope set, its own rate limit, and a mode. An agent gets a key that can send and read — never one that can mint more keys or delete a domain. - **Recipient allowlist** — Staging can never reach production. Restrict a key to specific addresses or domains. Your development key reaches your own team and nobody else — which prevents the single most expensive mistake in email. - **Approval mode** — A human clears the send. Flag a key and its sends land in pending_approval instead of the queue. Clear them from the dashboard or a webhook. Off by default, on for anything an agent holds. - **Dry run** — Compose without sending. Validate, render and check suppression, then return exactly what would have been sent. Agents self-correct without touching a real mailbox — which makes them markedly better at the job. ## Deliberately absent from the MCP server There is no `create_api_key`, no `delete_domain`, and no `remove_suppression` tool. An agent that can mint its own credentials or un-suppress a complainer has no ceiling. Those operations live in the dashboard, where a human is present. ## Optional - [Full text](https://www.sadasend.com/llms-full.txt): Every claim on the site in one file