# InboxPlease for AI agents

URL: https://www.inboxplease.com/agents

Developers & AI agents

By [Chris Aylott](https://www.inboxplease.com/founder), 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](https://www.inboxplease.com/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](https://www.inboxplease.com/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](https://www.inboxplease.com/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

| Interface | Plan | Rate limit | Auth |
| --- | --- | --- | --- |
| MCP server | Enterprise (EUR 299/mo) | 300 requests/min and 10 concurrent calls per key | Authorization: Bearer, inp_ key with the /mcp/ scope |
| REST API | Pro (EUR 79/mo) and Enterprise | 60 requests/min per key, 1 MB max request body | X-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.

| Task | Tool | Access |
| --- | --- | --- |
| Check which organization, plan and scopes a key has | `whoami` | Any MCP key |
| Check a domain: get the deliverability overview with recommendations | `get_deliverability_overview` | Feature scope |
| Check a domain: run a deliverability analysis | `domain_analysis` | Feature scope |
| Check a domain: read its latest Domain Health result | `get_domain_health` | Feature scope |
| List monitored domains and their latest health | `list_health_domains` | Feature scope |
| Read a domain's scan history | `get_domain_scan_history` | Feature scope |
| Read the result of one scan | `get_domain_scan` | Feature scope |
| Get a domain's full profile | `domain_profile` | Feature scope |
| Read reputation signals | `reputation_scores` | Feature scope |
| Get SEO/GEO metrics | `seo_geo_analysis` | Feature scope |
| Test inbox vs spam: start a placement test, manual or from a connected mailbox | `start_placement_test` | Action scope · owner/admin key |
| Test inbox vs spam: read inbox / tabs / spam per provider | `get_placement_result` | Feature scope |
| List placement tests | `list_placement_tests` | Feature scope |
| Analyse a raw email: authentication, sending IP, hops and content verdicts | `analyze_email` | Feature scope |
| Monitor warmup: list senders with status and inbox rate | `list_warmups` | Feature scope |
| Monitor warmup: read one sender's stats | `get_warmup_stats` | Feature scope |
| Pause a sender's warmup | `pause_warmup` | Action scope · owner/admin key |
| Resume a sender's warmup | `resume_warmup` | Action scope · owner/admin key |
| List connected mailboxes | `list_mailboxes` | Feature scope |
| Check a mailbox's connection status | `check_mailbox_connection` | Feature scope |
| Connect a mailbox: returns an OAuth link a person must open | `connect_mailbox` | Action scope · owner/admin key |
| Send email: see the remaining recipient budget | `get_send_quota` | Send scope |
| Send email: stage a preview (nothing is sent yet) | `send_email` | Send scope |
| Send email: confirm a previewed send | `confirm_send` | Send scope |
| Send email: check a send's outcome by its send_id, without sending again | `get_send_status` | Send scope |
| Campaigns: check that campaign sending is available for a sender | `get_campaign_capabilities` | Send scope |
| Campaigns: read recorded opens, clicks, replies and bounces for a send | `get_send_engagement` | Send scope |
| Read one known message by ID (mailboxes connected over IMAP only) | `read_email` | Read scope |
| Mark a known message as read | `mark_email_read` | Read scope |
| Star a known message | `star_email` | Read scope |
| Move a known message to inbox, sent, spam or important | `move_email` | Read 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](https://www.inboxplease.com/agents/outreach-please).

## Start with the free email test

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