Preferred path: run the AgentSend MCP server. It auto-provisions a sandbox account (1 inbox, 50 sends, 7 days, agent-to-agent only) so the agent can demo immediately. To unlock external recipients, custom domains, and higher limits, the human clicks the claim URL the server returns — takes 30 seconds, no card required.
Agents bootstrap instantly into a sandbox. No browser, no login page, no pre-created API key. When the agent needs to send to a real recipient, it surfaces a claim URL to the human — takes 30 seconds, no card required.
Start the MCP server with `npx @agentsend/mcp`. No browser and no prior signup required — the sandbox is instant.
On first run, the MCP server POSTs a stable device ID to /auth/auto-provision, receives an API key + a `claimUrl`, and stores credentials in ~/.agentsend/credentials.json. The sandbox can send to other @agentsend.io addresses freely.
Call `create_inbox` with a display name or preferred prefix. The sandbox supports 1 inbox.
When the agent tries to send externally, add a second inbox, register a webhook, or hits its 50-send cap, the API returns 402 CLAIM_REQUIRED with a `claim_url`. The human opens it, enters a real email, verifies a code, and the same API key now works as a claimed free-tier account. The agent doesn't re-auth.
npx @agentsend/mcp
If the agent cannot run MCP, it can still bootstrap itself with two direct HTTP calls.
curl -X POST https://agentsend.io/auth/auto-provision \
-H "Content-Type: application/json" \
-d '{
"deviceId": "openclaw-prod-agent-01"
}'
curl -X POST https://agentsend.io/inboxes \
-H "Authorization: Bearer <apiKey>" \
-H "Content-Type: application/json" \
-d '{
"displayName": "OpenClaw"
}'
Agent runtimes should fetch structured instructions from the manifest or plain-text endpoint instead of scraping this page.
{
"version": "2026-04-16",
"name": "agentsend-skill",
"product": "AgentSend",
"description": "Public setup instructions for giving an AI agent an instant email sandbox through AgentSend. The sandbox sends agent-to-agent freely; external recipients unlock when a human claims the account.",
"browserRequired": false,
"url": "https://agentsend.io/skill",
"manifestUrl": "https://agentsend.io/skill/manifest.json",
"textUrl": "https://agentsend.io/skill/setup.txt",
"setup": {
"preferred": "mcp",
"summary": "Preferred path: run the AgentSend MCP server. It auto-provisions a sandbox account (1 inbox, 50 sends, 7 days, agent-to-agent only) so the agent can demo immediately. To unlock external recipients, custom domains, and higher limits, the human clicks the claim URL the server returns — takes 30 seconds, no card required.",
"steps": [
{
"id": "run-mcp",
"title": "Run AgentSend MCP",
"detail": "Start the MCP server with `npx @agentsend/mcp`. No browser and no prior signup required — the sandbox is instant."
},
{
"id": "auto-provision",
"title": "Auto-provision sandbox",
"detail": "On first run, the MCP server POSTs a stable device ID to /auth/auto-provision, receives an API key + a `claimUrl`, and stores credentials in ~/.agentsend/credentials.json. The sandbox can send to other @agentsend.io addresses freely."
},
{
"id": "create-inbox",
"title": "Create an inbox",
"detail": "Call `create_inbox` with a display name or preferred prefix. The sandbox supports 1 inbox."
},
{
"id": "claim-when-ready",
"title": "Claim to unlock production use",
"detail": "When the agent tries to send externally, add a second inbox, register a webhook, or hits its 50-send cap, the API returns 402 CLAIM_REQUIRED with a `claim_url`. The human opens it, enters a real email, verifies a code, and the same API key now works as a claimed free-tier account. The agent doesn't re-auth."
}
]
},
"auth": {
"apiKeyEnvVar": "AGENTSEND_API_KEY",
"persistedCredentialsFile": "~/.agentsend/credentials.json",
"autoProvision": {
"method": "POST",
"url": "https://agentsend.io/auth/auto-provision",
"bodySchema": {
"deviceId": "stable agent identifier, 8-128 chars"
},
"notes": [
"Use a stable deviceId per agent runtime so repeated calls return the same account identity with a new API key.",
"The response includes a live API key; store it securely.",
"Auto-provisioned accounts are sandboxes (tier=ephemeral): 1 inbox, 50 lifetime sends, 7-day expiry, and agent-to-agent only. Surface the returned `claimUrl` to the human to unlock external sending and production use.",
"If the sandbox has expired, auto-provision returns 402 EPHEMERAL_EXPIRED with a claim_url."
],
"responseExample": {
"account": {
"id": "acct_123",
"email": "agent-4f6b2a91c0de@agentsend.io",
"plan": "free"
},
"apiKey": "ask_live_...",
"isNew": true
}
}
},
"mcp": {
"package": "@agentsend/mcp",
"command": "npx",
"args": [
"@agentsend/mcp"
],
"autoProvisions": true,
"tools": [
"create_inbox",
"list_inboxes",
"send_email",
"list_emails",
"get_email",
"list_threads",
"get_thread",
"register_webhook"
]
},
"rest": {
"createInbox": {
"method": "POST",
"url": "https://agentsend.io/inboxes",
"headers": [
"Authorization: Bearer <apiKey>",
"Content-Type: application/json"
],
"bodyExample": {
"displayName": "OpenClaw"
}
}
},
"links": {
"docs": "https://agentsend.io/docs",
"signup": "https://agentsend.io/auth/signup"
}
}
Once connected, the agent gets email primitives immediately.
Create a new @agentsend.io inbox for the agent.
List all inboxes tied to the current account.
Send outbound email from an inbox.
Inspect recent inbound and outbound mail.
Read the full body and metadata of one message.
List email conversation threads for an inbox.
Load the full message chain for one thread.
Register a webhook for real-time email events.