Standardized Email Tool Directory
To ensure interoperability across Claude, Cursor, ChatGPT, and custom LangGraph swarms, the email tooling ecosystem has converged on four core tool primitives.
| Tool Name | Purpose | Key Parameters | Return Type |
|---|---|---|---|
| send_email | Dispatches transactional message with allowlist check | to, subject, text, html, replyTo | { id, status, deliveredAt } |
| verify_domain_dns | Inspects SPF, DKIM, and DMARC status | domain | { spf: boolean, dkim: boolean, dmarc: string } |
| get_message_status | Checks delivery and bounce events | messageId | { id, event: "delivered" | "bounced", latencyMs } |
| inspect_allowlist | Returns authorized recipient domains for current key | none | { allowedDomains: string[], approvalMode: boolean } |
JSON Schema Definitions for send_email
Standard schema used by @sadasend/mcp-server for outbound delivery.
JSON
{
"name": "send_email",
"description": "Dispatches a transactional email to an authorized recipient.",
"inputSchema": {
"type": "object",
"properties": {
"to": {
"type": "string",
"format": "email",
"description": "Destination email address."
},
"subject": {
"type": "string",
"minLength": 1,
"description": "Clear subject line."
},
"text": {
"type": "string",
"description": "Plain-text email body."
},
"html": {
"type": "string",
"description": "Optional responsive HTML body."
},
"tags": {
"type": "array",
"items": { "type": "string" },
"description": "Metadata tags for categorization."
}
},
"required": ["to", "subject", "text"]
}
}Standard Error Codes
- -32602 (Invalid Params): Recipient email address format is invalid.
- 403 (Forbidden Allowlist Refusal): The recipient domain is outside the authorized key scope.
- 429 (Rate Limit Exceeded): The agent has exceeded its hourly sending budget.
Early Access
Building AI agents that send email?
Join the SadaSend early access waitlist to get scoped API keys, recipient allowlists, and Model Context Protocol (MCP) servers upon launch.