Agent Skill

Give an AI agent its own email inbox

Give an AI agent a real email inbox with Sending: create the inbox, read the threads it receives, and reply. Use this when the agent has to receive mail, not just send it.

Skill agent-inbox · the same bytes agents read at /.well-known/agent-skills/agent-inbox/SKILL.md

An inbox for the agent

You need this when the agent has to receive: confirmations, customer replies, notifications from other services. Incoming mail becomes readable threads, not raw webhooks.

1. Create the inbox

list_inboxes
create_inbox { name: "support" }

The address can live on the shared domain (agents.sending.dev) or on a workspace domain that is already verified and has receiving enabled: receiving is a per-domain toggle under Communication › Domains, separate from verification for sending, because it takes over the inbound mail of the whole domain.

The shared domain needs no configuration: it is the quick way to try this out.

2. Read

list_threads { inboxId }
get_thread { threadId }

Folders are views over the state of the threads and over the outcome of the sender authentication checks, not labels you have to manage yourself.

3. Reply

reply_thread { threadId, html }                  # stays in the conversation
send_from_inbox { inboxId, to, subject, html }   # opens a new conversation

Use reply_thread to answer: it keeps the threading on the recipient's side. Opening a new thread to answer an existing message loses the thread for whoever is reading.

Sends from the inbox go through the same pipeline as the rest: they inherit tracking, the suppression list and the plan quota.

Who is allowed to write

Allow and block rules apply to the whole workspace:

list_email_rules
create_email_rule { type: "block" | "allow", pattern }
delete_email_rule { ruleId }

Allow takes precedence over block. Blocked messages are dropped on the way in.

Being told instead of polling

create_webhook { url, events: ["email.received", "email.sent", "email.bounced"] }
list_webhooks

Deliveries are HMAC signed (header Sending-Signature: t=,v1=): verify the signature before trusting the payload. Prefer the webhook over polling list_threads on a timer.

For volumes: get_agent_email_metrics.

Use it

Point your agent at the file, or paste it into a system prompt. The tools it names live on our MCP server, so an agent needs to be connected first and needs the scopes for what it is about to do.

Connect over MCP · Documentation · Raw markdown

The other skills

Start with Sending

Give your agent something worth sending.

3,000 messages a month, free. No card. The MCP endpoint is on every plan, including this one.