Send from a client · Published 2026-09-22 · Updated 2026-09-28 · AgentiSend
Send email from Windsurf
To send email from Windsurf, add the AgentiSend MCP server to Windsurf with the config below, give it an API key that carries a budget, and ask Windsurf to send.
To send email from Windsurf, add the AgentiSend MCP server to Windsurf's mcp_config.json, give it an API key that carries a budget, refresh the MCP servers panel, and ask Windsurf to send. Windsurf then calls the same API your own code calls. Each send is checked against the key's ceiling before it is accepted, and a refusal names the next call in its fix.
A file in your home directory
Windsurf keeps its MCP servers in ~/.codeium/windsurf/mcp_config.json. That path sits under your home directory, outside any repository, so a real key saved there is not something a git push can carry off. The block is the object the console install dialog copies.
{
"mcpServers": {
"agentisend": {
"serverUrl": "https://api.agentisend.com/mcp",
"headers": {
"Authorization": "Bearer as_YOUR_API_KEY_HERE"
}
}
}
}Paste into ~/.codeium/windsurf/mcp_config.json, then refresh the MCP servers panel.
Put a key made for Windsurf alone where the placeholder is, save the file, and refresh the MCP servers panel so Windsurf reads it again.
The field that differs
Windsurf names the address serverUrl. Cursor, Claude Code and Claude Desktop call the same field url, and VS Code nests everything under servers. The header is identical everywhere: Authorization, then Bearer and the key. So copy this block rather than adapting one from another client's page; the field name is the one line that would be wrong.
Watch a bounce before a real one happens
The simulator's bounce address fails on purpose. The message moves to bounced, events and webhooks fire as they would for a real bounce, and nothing is added to your suppression list or counted against your standing. explain_email then returns the verdict and the steps to take, which is the call you want on hand the first time a real address bounces.
Use the agentisend MCP server. Call whoami and list the tools this key can reach. Send a test from any address to bounce@simulator.agentisend.com, then read get_email_events for that id until the bounce appears. Call explain_email on it and show me the verdict, the evidence and each suggested step.GET /emails/{id}/events is the same timeline over REST, and GET /emails/{id}/explain is the same verdict.
Its key and its ceiling
The key Windsurf holds is sending_access, from POST /api-keys, capped with PATCH /limits/keys/{id} by a person. Three refusals end a run rather than delay it: agent_budget_exceeded, approval_required and kill_switch_active. Each carries retryable: false and a fix, and none of them changes because the agent asked again.
The same limits from every client
Budgets, loop detection, approvals and the kill switch behave identically whichever client holds the key, so they are not repeated here. The guardrails checklist maps each item people are told to hand-write onto the request that already enforces it, and Email for AI agents names every control with its endpoint.
Next
- Email for AI agents names every control and the request that calls it.
- Email guardrails maps the usual checklist onto these same fields.
- The MCP guide has the install line for every client, including Windsurf.