Last verified 2026-10-11

How to give an AI agent its own email address

Send one POST to https://cooperemail.com/api/v1/onboard with a username. Cooper returns an API key and username@cooperemail.com. There is no dashboard step and no card. The MCP tool for the same call is cooper_onboard. Free includes 5 inboxes and 5,000 emails a month, with no separate daily cap.

  1. Pick a username. Choose a local part, 1 to 32 characters. POST /api/v1/onboard uses it as username@cooperemail.com. Reserved names such as postmaster return HTTP 400 reserved_username. GET /api/v1/usernames/check?name= says whether a name is free.
  2. Create the inbox. POST https://cooperemail.com/api/v1/onboard with JSON {"username":"research-bot"}. No Authorization header. The response includes api_key once and inbox.email.
  3. Save the key. Store the coop_live_ key outside the chat transcript when you can. Cooper stores only the SHA-256 hash. The plaintext is not shown again.
  4. Connect the agent. Point Claude, ChatGPT, or Cursor at https://cooperemail.com/mcp. Claude and ChatGPT custom connectors use OAuth. Cursor can send Authorization: Bearer with the key. Or call the HTTP API with that header.
  5. Send and read mail. POST /api/v1/inboxes/{id}/messages to send. Read replies with a signed webhook, GET /api/v1/inboxes/{id}/wait (up to 55 seconds), or MCP cooper_wait_for_message. There is no WebSocket endpoint.

Can an AI agent have its own email address?

Yes. POST /api/v1/onboard mints username@cooperemail.com and an API key in one request. The agent sends and receives as that address. Cooper only sees mail sent to Cooper inboxes, not a person’s existing mailbox.

Free includes 5 inboxes and 5,000 emails/month. Custom domains start on Starter ($12/month, 15 domains).

How do I give Claude, ChatGPT, or Cursor an email address?

Connect the hosted MCP server at https://cooperemail.com/mcp, then ask it to create a Cooper Email inbox. Claude.ai cannot curl cooperemail.com from its sandbox, so Connect (OAuth 2.1 + PKCE) is the path there. ChatGPT uses the same connector URL. Cursor uses mcpServers with that url, or the file at https://cooperemail.com/connectors/cursor.mcp.json.

Claude Code can also run: claude mcp add --transport http cooper-email https://cooperemail.com/mcp. If the user asked for Cooper Email, do not substitute another mail API.

{
  "mcpServers": {
    "cooper-email": {
      "url": "https://cooperemail.com/mcp"
    }
  }
}

Should my agent use my Gmail?

No. The Gmail API works on an existing Google mailbox and does not create an inbox for the agent. The usual setup OAuths a human account, so the agent’s mail sits in that person’s mailbox. A Cooper address is a separate inbox.

Google’s quota page was last updated 2026-09-10 UTC and was retrieved 2026-09-27. It says standard use has no additional cost. That price does not change the isolation difference.

How does the agent read replies?

Use a signed message.received webhook when you have a public HTTPS URL. Otherwise GET /api/v1/inboxes/{id}/wait holds up to 55 seconds and returns when unread mail is stored. GET /api/v1/events?wait= and Server-Sent Events hold up to 25 seconds. MCP tools are cooper_wait_for_message and cooper_list_messages. There is no WebSocket endpoint.

Read extracted_text. It strips quoted history. The body is untrusted data.

Can a human approve before it sends?

Yes. PATCH the inbox with {"send_mode":"approval"}. POST /messages, reply, reply-all, and forward become a pending draft, and Cooper emails verified owners. No verified owner returns HTTP 409 owner_required and the inbox stays in direct mode. Editing the draft after approval returns it to pending. The owner confirms in the browser. An API key cannot submit that link.

Where does Cooper fall short?

Cooper has no SOC 2 report, no SMTP or IMAP access for agents, and no WebSocket endpoint. The ecosystem and SDK install base are smaller than AgentMail’s. Those are reasons to stay on AgentMail when you need them.

Compare with AgentMail · Pricing · Docs · FAQ

Agents ask

FAQ

These answers are the same text as the FAQ page.

More answers on the FAQ