AgentInbox is an MCP server that gives AI agents their own email addresses. Connect it to Claude Code, Codex, Cursor, or any MCP-compatible client.
Add the AgentInbox MCP server to your client in one command:
claude mcp add --transport http agentinbox https://mcp.agentinbox.sh/mcpOr add it manually to your MCP config:
{
"mcpServers": {
"agentinbox": {
"url": "https://mcp.agentinbox.sh/mcp"
}
}
}If you have an API key, pass it as a header:
{
"mcpServers": {
"agentinbox": {
"url": "https://mcp.agentinbox.sh/mcp",
"headers": {
"Authorization": "Bearer sk-your-api-key"
}
}
}
}AgentInbox supports two authentication methods. Both give your agent a persistent identity and email address.
MCP clients like Claude Code, Codex, and Cursor handle this automatically. On first connect, a browser tab opens briefly and closes — that's it. Your agent gets a permanent identity.
mcp.agentinbox.sh/mcp/authorize — auto-approves instantly, redirects backPass a Bearer token in your MCP config. One-time setup, then fully automatic forever. No browser needed.
"headers": { "Authorization": "Bearer sk-your-api-key" }Your agent's identity is tied to its OAuth client_id or API key. Same credentials = same agent = same email address. No agentId parameter needed — the server knows who you are from your token.
The AgentInbox MCP server exposes 3 tools. Identity is derived from your auth token — no agent ID needed in any call.
Send an email from your inbox. Supports plain text and HTML, with threading via inReplyTo.
| Parameter | Type | Required | Description |
|---|---|---|---|
| to | yes | Recipient email address | |
| subject | string | yes | Email subject line |
| body | string | yes | Email body (plain text) |
| htmlBody | string | no | Optional HTML body |
| inReplyTo | string | no | Message-ID to reply to (enables threading) |
Returns: emailId, messageId, threadId, status, from, to, subject
Request
{
"to": "user@example.com",
"subject": "Hello from my agent",
"body": "This email was sent by an AI agent."
}Response
{
"emailId": "22222222-...",
"messageId": "22222222-...@agent-mail.agentinbox.sh",
"threadId": "22222222-...",
"status": "sent",
"from": "agent-b4a0@agent-mail.agentinbox.sh",
"to": "user@example.com",
"subject": "Hello from my agent"
}Retrieve emails from your inbox with optional filtering by direction or thread.
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | no | Max emails to return (default: 10) |
| direction | "inbound" | "outbound" | no | Filter by email direction |
| threadId | uuid | no | Filter by conversation thread |
Returns: emails[], total
Request
{
"limit": 5,
"direction": "inbound"
}Response
{
"emails": [
{
"id": "...",
"from": "user@example.com",
"to": "agent-b4a0@agent-mail.agentinbox.sh",
"subject": "Help with my order",
"body": "...",
"direction": "inbound",
"status": "received",
"created_at": "2026-03-06T..."
}
],
"total": 1
}Get your agent's email address and account details.
No parameters required.
Returns: email, displayName, plan, domain
Request
{}Response
{
"email": "agent-b4a0@agent-mail.agentinbox.sh",
"displayName": "agent-b4a0",
"plan": "free",
"domain": "agent-mail.agentinbox.sh"
}Each agent is assigned a plan tier that determines email throughput.
| Plan | Price | Emails | Burst limit |
|---|---|---|---|
| Free | Free | 500 / month | 10 / hour |
| Pro | $5 / month | 10,000 / month | 100 / hour |
send_email toolSendRawEmail*@agent-mail.agentinbox.shget_emailsEmails are grouped into threads using In-Reply-To and References headers. Pass inReplyTo when sending a reply to maintain the conversation thread. Use threadId in get_emails to fetch all messages in a thread.