SendForAI
com.sendforai/mcpVersion 0.1.1Transactional and broadcast email at cost. Your agent signs up, tests and sends; no API key.
Status
Responds204 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:14 UTC
- Latency
- 204 ms
- Remotes responding
- 1 of 1
- Sign-in
- API key
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://sendforai.com/mcpResponds204 msNo sign-in
Claude Code
claude mcp add --transport http sendforai https://sendforai.com/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'Replace <YOUR_TOKEN> before running.
Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: sendforai
Remote MCP server URL: https://sendforai.com/mcp
This server expects the header Authorization.Cursor
{
"mcpServers": {
"sendforai": {
"url": "https://sendforai.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Replace <YOUR_TOKEN> before running.
VS Code
code --add-mcp '{"name":"sendforai","type":"http","url":"https://sendforai.com/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'Replace <YOUR_TOKEN> before running.
Streamable HTTP
npm: @sendforai/mcp 0.1.1Package only
npm (npx)
claude mcp add sendforai -- npx -y @sendforai/mcp@0.1.1Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
23 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
add_creditReturns a checkout_url for your human operator to add prepaid credit (minimum $10). Use it when a send returns balance_required. $5 is taken only in months you send to anyone outside your own domains (10,000 emails included), then $0.11/1k at cost. Pass auto_topup: true to let their saved card refill the balance automatically, always within the budget they set. Never pay it yourself; hand the link over. account.topped_up appears in list_events when they finish. | Not declared | Not declared | Not declared | Not declared |
add_domainLet this account send from another domain with the same key. First publish DNS TXT _sendforai.<domain> = "v=sfa1; delegate=<identity domain>" (if you have DNS access) or hand that record to your operator, then call this. If the record is not visible yet the response says exactly what to publish. Up to 50 domains, no fee; each keeps its own reputation and warmup. | Not declared | Not declared | Not declared | Not declared |
billing_portalA Stripe billing portal link for your operator: update the saved card and download receipts. | Not declared | Not declared | Not declared | Not declared |
cancel_broadcastCancel a broadcast before or during sending. Emails already sent stay sent; the unsent remainder is cancelled. | Not declared | Not declared | Not declared | Not declared |
create_broadcastCreate a broadcast to subscribed contacts (optionally filtered by contact data). By default it waits for a human: the response includes approval_url. Hand that link to your operator; clicking it sends. Use dry_run to see recipients, cost, and lint first. | Not declared | Not declared | Not declared | Not declared |
get_accountBalance, whether this month's $5 sending fee is paid, auto top-up, the monthly usage budget (used and remaining), emails used and included remaining, and every sending domain. Check this before a large send. | Not declared | Not declared | Not declared | Not declared |
get_broadcastStatus, cost, approval_url (while awaiting approval), and progress (sent, queued, failed, cancelled, resumes_at) once sending starts. | Not declared | Not declared | Not declared | Not declared |
get_capacityHow many emails can be sent right now: daily cap, sent today, remaining, warmup stage, and when the window resets. | Not declared | Not declared | Not declared | Not declared |
get_domain_statusIdentity, SES verification status, DNS records still needed, and current sending capacity for the configured domain. | Not declared | Not declared | Not declared | Not declared |
get_pricingPublic, machine-readable pricing. Use it to compute cost before committing to a send. | Not declared | Not declared | Not declared | Not declared |
get_usageEmails sent this period, SES cost, what has been billed, included allowance remaining, and a projection to period end. | Not declared | Not declared | Not declared | Not declared |
import_contactsBulk import up to 10,000 contacts per call, deduplicated by email. Available in a sending month; on the free build tier the error explains what to do. | Not declared | Not declared | Not declared | Not declared |
list_contactsPage through contacts. | Not declared | Not declared | Not declared | Not declared |
list_domainsEvery domain this account can send from, with role (identity or delegated), status, SES status, warmup stage and daily cap. | Not declared | Not declared | Not declared | Not declared |
list_eventsPull delivery, bounce, complaint, broadcast, and unsubscribe events by cursor. No webhook endpoint needed. Keep next_cursor between calls. | Not declared | Not declared | Not declared | Not declared |
plan_emailEverything send_email does except sending. Returns cost, capacity after send, suppression hits, and lint warnings with fixes. Call this before send_email when cost or deliverability matters. | Not declared | Not declared | Not declared | Not declared |
send_broadcastStarts sending an approved broadcast in the background (status: sending). Poll get_broadcast for progress. Large Member broadcasts continue after the daily cap resets. Returns a 409 with the approval_url if a human has not approved it yet. | Not declared | Not declared | Not declared | Not declared |
send_emailSend a transactional email from the configured domain. Response includes id, cost, capacity, lint, and a signed receipt. | Not declared | Not declared | Not declared | Not declared |
set_auto_topupTurn auto top-up off, or change its amount. Turning it on requires a saved card from a human-completed add_credit. | Not declared | Not declared | Not declared | Not declared |
set_budgetLowering the budget applies immediately. Raising it returns an approval_url that only your human operator can approve; hand it over. Use when a send returns budget_exceeded. | Not declared | Not declared | Not declared | Not declared |
upsert_contactStore a contact for broadcasts. Contacts are unlimited on every plan. Data is arbitrary JSON you can filter on later. | Not declared | Not declared | Not declared | Not declared |
verify_domainCreate the SES identity for a domain on this account (default: the configured identity domain) and return the DKIM and MAIL FROM records to publish. Idempotent; call again to re-check. | Not declared | Not declared | Not declared | Not declared |
whoamiThe identity this server acts as, how it authenticates, and whether it is a sandbox. | Not declared | Not declared | Not declared | Not declared |
Details
- Registry status
- Active
- Published
- Nov 14, 2026
- Updated
- Nov 14, 2026
- Repository
- Not given
- Categories (suggested)
- CommunicationFinance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared