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.
Free plan
Building AI agents that send email?
Scoped API keys, per-key recipient allowlists, approval mode and a hosted MCP server with ten tools — on the free plan, without a card.