{"id":495409,"name":"GetCourier","description":"Email inboxes for AI agents. GetCourier gives an agent a real email address in one HTTP call — no signup, no API key — and returns the verification code or magic link found in the incoming mail. Every message is delivered as untrusted data with SPF, DKIM and DMARC results. Inboxes are receive-only and expire after 72 hours on the free tier (3 inboxes an hour and 5 a day per IP). A hosted streamable-HTTP MCP server exposes the same 10 tools at https://getcourier.dev/mcp.","card_url":"https://getcourier.dev/.well-known/agent-card.json","endpoint":"https://getcourier.dev","protocol_version":"0.3.0","first_seen":"2026-10-28T12:27:44.700368+00:00","last_verified":"2026-10-28T14:28:57.467672+00:00","card":{"url":"https://getcourier.dev","name":"GetCourier","skills":[{"id":"create_inbox","name":"Create an email inbox","tags":["email","inbox","identity","provisioning","no-auth"],"examples":["curl -s -X POST https://getcourier.dev/alias"],"description":"Provision an email inbox for an agent with no signup and no API key. Returns the address, a read_token shown once, the 72-hour expiry and an Ed25519 did:key identity. POST /alias accepts an empty body."},{"id":"wait_for_code","name":"Wait for a verification code","tags":["email","verification-code","otp","magic-link","long-poll"],"examples":["curl -s \"https://getcourier.dev/v1/sandbox/inboxes/my-agent-k3xmqz/wait?timeout=30\" -H \"Authorization: Bearer <read_token>\""],"description":"Long-poll the inbox until a message containing a verification code or a magic link arrives, up to 55 seconds, and return the extracted code or link. Returns {message: null, timeout: true} with HTTP 200 if nothing arrives in time."},{"id":"read_messages","name":"Read inbox messages","tags":["email","read","untrusted-content"],"examples":["GET https://getcourier.dev/v1/sandbox/inboxes/{alias}/messages?limit=5","GET https://getcourier.dev/v1/sandbox/inboxes/{alias}/messages/{id}"],"description":"List or fetch the messages in an inbox with codes and links already extracted. Listing supports after (only messages newer than a given id) and limit (1-100, default 20). Message text is truncated to 4000 characters in the agent view and an inbox holds at most 100 messages."},{"id":"verify_sender","name":"Check sender authentication","tags":["email-authentication","spf","dkim","dmarc","prompt-injection-safety"],"examples":["{ \"auth\": { \"verdict\": \"pass\", \"spf\": \"pass\", \"dkim\": \"pass\", \"dmarc\": \"pass\" }, \"untrusted\": true }"],"description":"Every message carries untrusted: true, the marker \"UNTRUSTED EXTERNAL EMAIL\", and an auth block with the SPF, DKIM and DMARC results plus a combined verdict, so an agent can decide whether to trust the sender before acting on a code."},{"id":"delete_inbox","name":"Delete an inbox","tags":["email","inbox","cleanup","delete"],"examples":["DELETE https://getcourier.dev/v1/sandbox/inboxes/{alias}"],"description":"Delete an inbox so it stops accepting mail and its messages become unreadable. Use it when the signup it was created for is finished."}],"iconUrl":"https://getcourier.dev/favicon.svg","version":"4.1.0","provider":{"url":"https://getcourier.dev","organization":"GetCourier"},"security":[{"readToken":[]}],"extensions":{"mcp":{"url":"https://getcourier.dev/mcp","note":"Paid tools (create_account, get_balance, create_deposit, deposit_status) are live with USDC on Base and BTC on-chain; GET /v1/pricing is authoritative.","tools":["create_inbox","wait_for_code","list_messages","get_message","delete_inbox","create_account","get_balance","create_deposit","deposit_status","pricing"],"transport":"streamable-http","registryName":"dev.getcourier/getcourier","protocolVersion":"2025-06-18","registryVersion":"4.1.0"},"llmsTxt":"https://getcourier.dev/llms.txt","openapi":"https://getcourier.dev/openapi.json"},"description":"Email inboxes for AI agents. GetCourier gives an agent a real email address in one HTTP call — no signup, no API key — and returns the verification code or magic link found in the incoming mail. Every message is delivered as untrusted data with SPF, DKIM and DMARC results. Inboxes are receive-only and expire after 72 hours on the free tier (3 inboxes an hour and 5 a day per IP). A hosted streamable-HTTP MCP server exposes the same 10 tools at https://getcourier.dev/mcp.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0","securitySchemes":{"readToken":{"type":"http","scheme":"bearer","description":"Inbox-scoped read_token returned once by POST /alias, or an account_key (cak_...) for paid calls. Sent as Authorization: Bearer <token>; never accepted in the query string."}},"documentationUrl":"https://getcourier.dev/llms-full.txt","defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"preferredTransport":"HTTP+JSON","supportsAuthenticatedExtendedCard":false},"status":"verified","publisher_domain":"getcourier.dev","signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-28T14:28:57.467672+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://getcourier.dev/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-28T14:28:57.467672+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://getcourier.dev/.well-known/agent-card.json"],"skills":[{"skill_id":"verify_sender","name":"Check sender authentication","description":"Every message carries untrusted: true, the marker \"UNTRUSTED EXTERNAL EMAIL\", and an auth block with the SPF, DKIM and DMARC results plus a combined verdict, so an agent can decide whether to trust the sender before acting on a code.","tags":["email-authentication","spf","dkim","dmarc","prompt-injection-safety"],"quality_warning":false},{"skill_id":"create_inbox","name":"Create an email inbox","description":"Provision an email inbox for an agent with no signup and no API key. Returns the address, a read_token shown once, the 72-hour expiry and an Ed25519 did:key identity. POST /alias accepts an empty body.","tags":["email","inbox","identity","provisioning","no-auth"],"quality_warning":false},{"skill_id":"delete_inbox","name":"Delete an inbox","description":"Delete an inbox so it stops accepting mail and its messages become unreadable. Use it when the signup it was created for is finished.","tags":["email","inbox","cleanup","delete"],"quality_warning":false},{"skill_id":"read_messages","name":"Read inbox messages","description":"List or fetch the messages in an inbox with codes and links already extracted. Listing supports after (only messages newer than a given id) and limit (1-100, default 20). Message text is truncated to 4000 characters in the agent view and an inbox holds at most 100 messages.","tags":["email","read","untrusted-content"],"quality_warning":false},{"skill_id":"wait_for_code","name":"Wait for a verification code","description":"Long-poll the inbox until a message containing a verification code or a magic link arrives, up to 55 seconds, and return the extracted code or link. Returns {message: null, timeout: true} with HTTP 200 if nothing arrives in time.","tags":["email","verification-code","otp","magic-link","long-poll"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":2,"passed":2},"recent_checks":[{"card_url":"https://getcourier.dev/.well-known/agent-card.json","checked_at":"2026-10-28T14:28:57.467672+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://getcourier.dev/.well-known/agent-card.json","checked_at":"2026-10-28T12:27:44.700368+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-28T14:28:57.467672+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-28T12:27:44.700368+00:00","endpoint":"https://getcourier.dev","protocol_binding":"HTTP+JSON","protocol_version":"0.3.0","state":"unconfirmed","http_status":404,"detail":"Advertised HTTP+JSON interface returned a generic HTTP 404, not A2A TASK_NOT_FOUND. Publish the A2A service base URL with its standard task route; an ordinary REST resource URL does not establish A2A support","request_diagnostics":{"requests":[{"path":"/v1/tasks/localmark-probe-155af9fd-daeb-4bd4-8d0d-58b8bd5e1e0a","allow":[],"method":"GET","status":404,"version_header":"0.3","protocol_method":null,"redirect_followed":false}],"capture_version":1}},"declared_primary_endpoint":"https://getcourier.dev","selected_connection_interface":{"url":"https://getcourier.dev","protocolBinding":"HTTP+JSON","protocolVersion":"0.3.0"},"protocol_interface_checks":[{"endpoint":"https://getcourier.dev","protocol_binding":"HTTP+JSON","protocol_version":"0.3.0","selected":true,"state":"unconfirmed","checked_at":"2026-10-28T12:27:44.700368+00:00","http_status":404,"detail":"Advertised HTTP+JSON interface returned a generic HTTP 404, not A2A TASK_NOT_FOUND. Publish the A2A service base URL with its standard task route; an ordinary REST resource URL does not establish A2A support","binding_recorded":true}],"connection_selection_note":"The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.","x402_price_check":null,"events":[],"relationships":[],"verification":{"agent_card_url":"https://getcourier.dev/.well-known/agent-card.json","last_successful_card_check":"2026-10-28T14:28:57.467672+00:00","latest_card_check":{"checked_at":"2026-10-28T14:28:57.467672+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-28T14:28:57.467672+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-28T14:28:57.467672+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-28T12:27:44.700368+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":495409,"status":"not_tested","reason_code":"not_yet_tested","consent_status":"not_confirmed","latest_observation_status":null,"last_checked_at":null,"fixture_version":"1","reference_demonstration":false,"scope":"A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.","methodology_url":"https://localmark.ai/capability-tests","history":[]},"repair_links":{"agent_repair_url":"https://localmark.ai/agents/495409/repair","publisher_report_url":"https://localmark.ai/publishers/getcourier.dev/repair","diagnostics_json_url":"https://localmark.ai/publishers/getcourier.dev/repair/diagnostics.json","diagnostics_csv_url":"https://localmark.ai/publishers/getcourier.dev/repair/diagnostics.csv"},"_localmark":{"contribution":{"optional":true,"directory_access":"free","operator_authorization_required":true,"affects_rankings":false,"message":"LocalMark is free. Optional contributions help fund ongoing checks.","support_url":"https://localmark.ai/support","metadata_url":"https://localmark.ai/api/v1/support/contributions"}}}