Skip to content
Back to Cooper Email

Card snapshot

cooperemail.com · 2026-10-02 11:04:44 UTC · ccca177f649c3d4df686277051cdfb66c66ef1d904adfe8444758bccff413c87

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.3.0",
  "name": "Cooper Email",
  "description": "Email inboxes for AI agents. Cooper creates real addresses at cooperemail.com in one call, sends and receives email (text, HTML, attachments), stores every message for search, delivers signed webhooks when mail arrives, and keeps a human owner in the loop by email. Agents call Cooper through its MCP server (https://cooperemail.com/mcp) or REST API (https://cooperemail.com/api/v1, OpenAPI at https://cooperemail.com/openapi.json).",
  "url": "https://cooperemail.com",
  "provider": {
    "organization": "Avatar 8 LLC",
    "url": "https://cooperemail.com"
  },
  "iconUrl": "https://cooperemail.com/cooper-logo-512.png",
  "version": "1.1.0",
  "documentationUrl": "https://cooperemail.com/docs",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {
    "oauth2": {
      "type": "oauth2",
      "description": "OAuth 2.1 authorization code flow with PKCE (S256). Dynamic client registration at /oauth/register. Access tokens (coop_at_\u2026) are sent as Authorization: Bearer.",
      "oauth2MetadataUrl": "https://cooperemail.com/.well-known/oauth-authorization-server",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://cooperemail.com/oauth/authorize",
          "tokenUrl": "https://cooperemail.com/oauth/token",
          "refreshUrl": "https://cooperemail.com/oauth/token",
          "scopes": {
            "email": "Create and manage Cooper inboxes; send, read, and search mail; manage webhooks and owners."
          }
        }
      }
    },
    "apiKey": {
      "type": "http",
      "scheme": "bearer",
      "description": "Cooper API key (coop_live_\u2026) from POST /api/v1/onboard or the cooper_onboard MCP tool, sent as Authorization: Bearer."
    }
  },
  "security": [
    {
      "oauth2": [
        "email"
      ]
    },
    {
      "apiKey": []
    }
  ],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "supportsAuthenticatedExtendedCard": false,
  "skills": [
    {
      "id": "create-inbox",
      "name": "Create an email inbox",
      "description": "Create a dedicated email address (username@cooperemail.com) for an agent in one call. Without credentials this also creates an account and returns an API key once. MCP: cooper_onboard, cooper_create_inbox, cooper_list_inboxes. REST: POST /api/v1/onboard, GET/POST /api/v1/inboxes.",
      "tags": [
        "email",
        "inbox",
        "onboarding",
        "agents"
      ],
      "examples": [
        "Create a Cooper Email inbox named research-bot and tell me its address.",
        "Give each of my support agents its own email address."
      ]
    },
    {
      "id": "send-email",
      "name": "Send email",
      "description": "Send real email from a Cooper inbox with text and/or HTML bodies and attachments. A client_id makes retries safe. MCP: cooper_send_message. REST: POST /api/v1/inboxes/{id}/messages.",
      "tags": [
        "email",
        "send",
        "smtp",
        "attachments"
      ],
      "examples": [
        "Email ada@example.com from my Cooper inbox that Tuesday works."
      ]
    },
    {
      "id": "read-and-search-email",
      "name": "Read and search email",
      "description": "List recent messages, read one in full (with quoted history stripped into extracted_text), and search every stored message by keyword, sender, recipient, or subject. MCP: cooper_list_messages, cooper_get_message, cooper_search. REST: GET /api/v1/inboxes/{id}/messages, GET /api/v1/search.",
      "tags": [
        "email",
        "inbox",
        "search",
        "read"
      ],
      "examples": [
        "Did anyone reply to my last email?",
        "Find the invoice email from Acme."
      ]
    },
    {
      "id": "inbound-webhooks",
      "name": "Inbound email webhooks",
      "description": "Register an HTTPS webhook that Cooper signs and POSTs when mail is received or sent, or when an owner task arrives, optionally filtered to one inbox. MCP: cooper_register_webhook. REST: /api/v1/webhooks.",
      "tags": [
        "webhooks",
        "events",
        "inbound",
        "email"
      ],
      "examples": [
        "Notify https://example.com/hooks/mail whenever my agent inbox receives email."
      ]
    },
    {
      "id": "human-in-the-loop",
      "name": "Human in the loop by email",
      "description": "Register a human owner (confirmed by email), send them progress, done, needs_input, or error updates in one thread, and turn their authenticated email replies (DMARC, or DKIM aligned with From) into tasks the agent answers in the same thread. MCP: cooper_add_owner, cooper_list_owners, cooper_notify_owner, cooper_get_tasks, cooper_reply_task. REST: /api/v1/inboxes/{id}/owners, /api/v1/updates, /api/v1/tasks.",
      "tags": [
        "human-in-the-loop",
        "approvals",
        "notifications",
        "email"
      ],
      "examples": [
        "Email me when you need my input on this task, and wait for my reply.",
        "Send the owner a progress update and mark the task done when they approve."
      ]
    },
    {
      "id": "billing",
      "name": "Plan and usage",
      "description": "Check the account's plan, monthly usage, and limits, and create a Stripe Checkout link for the human to upgrade. MCP: cooper_billing_status, cooper_upgrade_link. REST: GET /api/v1/billing, POST /api/v1/billing/checkout.",
      "tags": [
        "billing",
        "usage",
        "limits"
      ],
      "examples": [
        "How many emails have I sent this month?"
      ]
    }
  ]
}