Developers & AI agents

InboxPlease for AI agents

By Chris Aylott, Founder

InboxPlease is an email deliverability platform that diagnoses why email lands in spam. Through its MCP server (Enterprise plan) or REST API (Pro and Enterprise plans), an AI agent can get a deliverability overview, read Domain Health, run inbox placement tests, analyse emails, and monitor or pause warmup. No tool browses or searches your inbox, and mailboxes connected through the standard InboxPlease app are send-only.

Set up the connection

Create an inp_ API key in the dashboard (Settings → API keys) and tick only the scopes the agent needs. New to InboxPlease? Run the free email test first.

MCP server

Add the server to Claude Code with the key in an Authorization header. Other MCP clients connect to the same https://api.inboxplease.com/mcp endpoint (MCP over Streamable HTTP). Details are on /features/mcp.

Claude Code
# Connect InboxPlease to Claude Code
claude mcp add --transport http inboxplease \
  https://api.inboxplease.com/mcp \
  --header "Authorization: Bearer inp_YOUR_API_KEY"

REST API

Send the key in the X-API-Key header to any endpoint under https://api.inboxplease.com/api/v1/developer. GET /whoami returns the key's identity, organization, plan and scopes, so it is the quickest check that a key works. The endpoint list is on /features/rest-api.

curl
# Who is this key? Returns organization, plan and scopes.
curl https://api.inboxplease.com/api/v1/developer/whoami \
  -H "X-API-Key: inp_YOUR_API_KEY"

Plans and limits

InterfacePlanRate limitAuth
MCP serverEnterprise (EUR 299/mo)300 requests/min and 10 concurrent calls per keyAuthorization: Bearer, inp_ key with the /mcp/ scope
REST APIPro (EUR 79/mo) and Enterprise60 requests/min per key, 1 MB max request bodyX-API-Key header, inp_ key

Access is gated by plan: the MCP server needs Enterprise, and the REST API needs Pro or Enterprise. REST access is checked against the plan on every call, so a downgrade removes it immediately. Free plans and expired trials have no API access.

What the tools do and do not do

The tools diagnose and monitor. No tool edits DNS or changes a domain's or mailbox's configuration; those changes stay with a person.

The only actions are pausing or resuming warmup, starting a placement test, returning an OAuth link for a person to connect a mailbox, with the opt-in send scope, sending email, and, with the opt-in read scope, marking, starring or moving a known message.

Tools by task

Every MCP tool, each listed once, with its exact name.

TaskToolAccess
Check which organization, plan and scopes a key haswhoamiAny MCP key
Check a domain: get the deliverability overview with recommendationsget_deliverability_overviewFeature scope
Check a domain: run a deliverability analysisdomain_analysisFeature scope
Check a domain: read its latest Domain Health resultget_domain_healthFeature scope
List monitored domains and their latest healthlist_health_domainsFeature scope
Read a domain's scan historyget_domain_scan_historyFeature scope
Read the result of one scanget_domain_scanFeature scope
Get a domain's full profiledomain_profileFeature scope
Read reputation signalsreputation_scoresFeature scope
Get SEO/GEO metricsseo_geo_analysisFeature scope
Test inbox vs spam: start a placement test, manual or from a connected mailboxstart_placement_testAction scope · owner/admin key
Test inbox vs spam: read inbox / tabs / spam per providerget_placement_resultFeature scope
List placement testslist_placement_testsFeature scope
Analyse a raw email: authentication, sending IP, hops and content verdictsanalyze_emailFeature scope
Monitor warmup: list senders with status and inbox ratelist_warmupsFeature scope
Monitor warmup: read one sender's statsget_warmup_statsFeature scope
Pause a sender's warmuppause_warmupAction scope · owner/admin key
Resume a sender's warmupresume_warmupAction scope · owner/admin key
List connected mailboxeslist_mailboxesFeature scope
Check a mailbox's connection statuscheck_mailbox_connectionFeature scope
Connect a mailbox: returns an OAuth link a person must openconnect_mailboxAction scope · owner/admin key
Send email: see the remaining recipient budgetget_send_quotaSend scope
Send email: stage a preview (nothing is sent yet)send_emailSend scope
Send email: confirm a previewed sendconfirm_sendSend scope
Send email: check a send's outcome by its send_id, without sending againget_send_statusSend scope
Campaigns: check that campaign sending is available for a senderget_campaign_capabilitiesSend scope
Campaigns: read recorded opens, clicks, replies and bounces for a sendget_send_engagementSend scope
Read one known message by ID (mailboxes connected over IMAP only)read_emailRead scope
Mark a known message as readmark_email_readRead scope
Star a known messagestar_emailRead scope
Move a known message to inbox, sent, spam or importantmove_emailRead scope
  • Any MCP key

    whoami only reports the key's own organization, plan and scopes.

  • Feature scope

    An opt-in scope for that feature, ticked when the key is created. Never granted by default.

  • Action scope · owner/admin key

    An opt-in scope that only works on a key created by an owner or admin of the organization. The agent is told to confirm with you before it acts.

  • Send scope

    The opt-in send scope. Sending needs a key created by an owner or admin.

  • Read scope

    A separate opt-in scope on an owner/admin key. It works only on mailboxes connected over IMAP; mailboxes connected through the InboxPlease app are send-only.

Safety

  • Scopes are opt-in. Nothing is granted by default. Each scope is ticked when the key is created, and a key can be restricted to specific tools, sender addresses or mailboxes.
  • Sending is two-phase. send_email stages a preview and a single-use token; nothing is sent until confirm_send. A send is limited to 5 recipients, and every staged send is recorded with each state change.
  • Reading is opt-in and narrow. No tool browses or searches an inbox. With the separate read scope, read_email fetches one message whose ID the agent already has, and only from a mailbox connected over IMAP. Mailboxes connected through the InboxPlease app are send-only, and message content is labelled as untrusted.
  • A person connects mailboxes. connect_mailbox returns an OAuth link that a person has to open; an agent cannot complete the connection itself.
  • Untrusted content is labelled. Content an attacker could control, such as email bodies, headers and subjects, is labelled as untrusted in tool output.

A reference app built on it

Outreach Please is a reference outreach app built only on the public REST API and MCP server. Its server holds the inp_ key, stages every send with send_email and calls confirm_send only after a person approves the preview, and checks Domain Health before a campaign goes out, with an optional placement test. See how Outreach Please is built.

Start with the free email test

See how one of your emails authenticates and where it lands before you connect an agent.