Inboxy MCP server
42 tools over the Inboxy API: connect domains, order Google Workspace mailboxes, reveal credentials, push mailboxes to your sequencer and, with the billing permission, buy licenses and add funds from Claude, ChatGPT, Cursor, Codex, VS Code or any MCP-compatible agent. Connect with one-click sign-in or an API key; every call is scoped to your login and the workspace you choose.
https://mcp.inboxy.io- 1Open claude.ai/settings/connectors. In the Claude Desktop app it is Settings → Connectors.
- 2Click + Add custom connector.
- 3Name it Inboxy and paste this as the server URL:
https://mcp.inboxy.io. Leave the OAuth Client ID and Secret under Advanced settings empty.Add custom connector BETA
Connect Claude to your data and tools.
Inboxyhttps://mcp.inboxy.io1 Name it Inboxy and paste the server URL⌄ Advanced settingsOAuth Client ID (optional)OAuth Client Secret (optional)2 Leave OAuth Client ID and Secret empty. Inboxy registers itself.Only use connectors from developers you trust. Anthropic does not control which tools developers make available.
CancelAdd3 Click Add - 4Inboxy now appears under Connectors. Press Connect.
- 5An Inboxy sign-in page opens in your browser. Sign in, review what Claude will be able to do, and click Allow.
- 6Done. Ask Claude “which of my mailboxes are ready?” or “connect acme-outreach.com and tell me the nameservers”. Access follows your Inboxy login; disconnect any time from Connected apps.
Advanced: Claude Desktop JSON config (API key)
For a machine where you cannot sign in, Claude Desktop can also take an API key in claude_desktop_config.json:
{
"mcpServers": {
"inboxy": {
"url": "https://mcp.inboxy.io",
"headers": {
"Authorization": "Bearer <your ibx_k_ key>"
}
}
}
}Create a key in Inboxy → Settings → API and MCP. The ibx_k_... secret is shown once. A workspace key pins every tool to one workspace; an owner key works across all your workspaces.
.cursor/mcp.json. Claude connectors use OAuth only: do not paste an ibx_k_ key into the connector dialog.Quick setup
Copy the prompt below and paste it into a Claude Code session. Claude Code registers the server and tells you when to sign in.
Set up the Inboxy MCP server in Claude Code for me.
Register it as a streamable-HTTP MCP server named "inboxy" at user scope (so it is available in all my projects), pointing at https://mcp.inboxy.io. No API key is needed: the server uses OAuth. The exact command is:
claude mcp add --transport http --scope user inboxy https://mcp.inboxy.io
If an "inboxy" server already exists, remove it first with
claude mcp remove inboxy --scope user
and then add it again so it is not duplicated.
When that is done, tell me to run /mcp, pick "inboxy" and sign in with my Inboxy account, then open a new chat and ask "which of my mailboxes are ready?" to test it.Manual command
Or run it yourself, then type /mcp inside Claude Code, pick inboxy and sign in:
# Remove an existing entry (if any):
claude mcp remove inboxy --scope user
# Add the Inboxy MCP server:
claude mcp add --transport http --scope user inboxy https://mcp.inboxy.ioPrefer an API key instead of signing in? (CI, shared machines)
claude mcp add --transport http --scope user inboxy https://mcp.inboxy.io --header "Authorization: Bearer <your ibx_k_ key>"Create a key in Inboxy → Settings → API and MCP. The ibx_k_... secret is shown once. A workspace key pins every tool to one workspace; an owner key works across all your workspaces.
claude mcp add. They have separate MCP configurations: setting up one does not affect the other.- 1Open chatgpt.com/#settings and click Apps.
- 2Click Advanced settings.
- 3Turn on Developer mode and press Create app.
- 4Name it Inboxy, leave Authentication set to OAuth, and paste this as the Connection URL:
https://mcp.inboxy.io. Tick I understand and want to continue and press Create.There is no field for an API key or Bearer token. ChatGPT discovers Inboxy's OAuth settings automatically.
New App
NameInboxyConnection · Server URLhttps://mcp.inboxy.ioAuthenticationOAuth - 5Press Sign in with Inboxy, sign in and click Allow. Then ask ChatGPT about your mailboxes.
Advanced: OAuth connection details
Authorization server: https://api.inboxy.io
Authorize endpoint: https://api.inboxy.io/oauth/authorize
Token endpoint: https://api.inboxy.io/oauth/token
Registration: https://api.inboxy.io/oauth/register (dynamic, public clients)
PKCE: S256 required
Scopes: read write billing workspacesQuick setup
Copy the prompt below and paste it into a Codex chat. Codex configures everything for you.
Set up the Inboxy MCP server for me in Codex.
1. Detect my OS.
2. Add a streamable-HTTP MCP server named `inboxy` to my Codex config.toml (~/.codex/config.toml on Mac/Linux, %USERPROFILE%\.codex\config.toml on Windows), URL https://mcp.inboxy.io, bearer_token_env_var = "INBOXY_API_KEY". If an inboxy block already exists, update it instead of duplicating.
3. Then ask me for my Inboxy API key. Tell me I can generate one in the Inboxy app under Settings > API and MCP (the ibx_k_... key is shown once).
4. Set that key as a persistent INBOXY_API_KEY env var for my OS (zsh ~/.zshrc, bash ~/.bashrc, or Windows PowerShell user env var).
5. Tell me to fully quit and reopen Codex, then run /mcp to confirm the Inboxy tools appear.Manual setup (step-by-step)
- 1Create an API key. Create a key in Inboxy → Settings → API and MCP. The
ibx_k_...secret is shown once. A workspace key pins every tool to one workspace; an owner key works across all your workspaces. - 2Add the server to
~/.codex/config.toml:~/.codex/config.toml[mcp_servers.inboxy] url = "https://mcp.inboxy.io" bearer_token_env_var = "INBOXY_API_KEY" - 3Export the key in your shell profile:
export INBOXY_API_KEY=ibx_k_... - 4Restart Codex and run
/mcpto confirm the Inboxy tools appear.
Installs the server and runs the OAuth sign-in. No key needed.
Or with an API key
- 1Create an API key. Create a key in Inboxy → Settings → API and MCP. The
ibx_k_...secret is shown once. A workspace key pins every tool to one workspace; an owner key works across all your workspaces. - 2Add the MCP server. Open Cursor → Settings → MCP and click + Add new global MCP server. Paste this into
.cursor/mcp.json, replacing the placeholder with your key:.cursor/mcp.json{ "mcpServers": { "inboxy": { "url": "https://mcp.inboxy.io", "headers": { "Authorization": "Bearer <your ibx_k_ key>" } } } } - 3Restart Cursor (or run Developer: Reload Window). You should see inboxy under MCP servers with a green indicator.
- 4Use tools. Ask the agent which mailboxes are ready, to connect a domain, or to export mailboxes to Instantly.
.cursor/mcp.json with a live key. Add it to .gitignore. Rotate the key from Settings → API and MCP if it may have leaked.- 1Create an API key. Create a key in Inboxy → Settings → API and MCP. The
ibx_k_...secret is shown once. A workspace key pins every tool to one workspace; an owner key works across all your workspaces. - 2Add to VS Code settings. Open
settings.json(Cmd/Ctrl + Shift + P → Preferences: Open User Settings (JSON)) and add the MCP server block:VS Code settings.json{ "mcp": { "servers": { "inboxy": { "type": "http", "url": "https://mcp.inboxy.io", "headers": { "Authorization": "Bearer <your ibx_k_ key>" } } } } }Replace
<your ibx_k_ key>with your real key. Copilot discovers the Inboxy tools via MCP automatically. - 3Restart VS Code. Reload the window (Developer: Reload Window) so Copilot picks up the new server.
- 4Use tools. In Copilot Chat, ask about your domains or mailboxes.
Generic MCP client setup
Inboxy MCP uses the streamable HTTP transport. Any MCP-compatible client can connect with these details:
Server URL: https://mcp.inboxy.io
Transport: Streamable HTTP (stateless; no session id)
Authentication: OAuth 2.1 (sign in, no key) or
Authorization: Bearer <ibx_k_ key>
Discovery: https://mcp.inboxy.io/.well-known/oauth-protected-resource
https://api.inboxy.io/.well-known/oauth-authorization-serverAuthentication
OAuth 2.1 (Claude, ChatGPT, Cursor deep link): paste only the server URL. The client discovers Inboxy's authorization server, registers itself and you sign in on Inboxy. No key field.
API key (Codex, VS Code, scripts, most local clients): pass your ibx_k_... key as a Bearer token in the Authorization header.
Create a key
Create a key in Inboxy → Settings → API and MCP. The ibx_k_... secret is shown once. A workspace key pins every tool to one workspace; an owner key works across all your workspaces. Keys carry the scopes you choose: read, write, billing, workspaces.
Run it locally over stdio
{
"mcpServers": {
"inboxy": {
"command": "npm",
"args": ["run", "mcp"],
"cwd": "/path/to/infra-api",
"env": { "INBOXY_API_KEY": "ibx_k_...", "INBOXY_API_URL": "https://api.inboxy.io" }
}
}
}Tools
Reads cover domains, mailboxes, orders, tags, sequencers, exports, billing and the team. Writes connect domains and sequencers, tag and export mailboxes. Anything that spends money or deletes (marked confirm) first returns a quote or the affected items and only acts when called again with confirm: true; buying also needs the billing permission, which you tick on the sign-in page. Every tool acts in one workspace: pass workspace_id from get_current_context unless the key is a workspace key.
Context and workspaces
| Tool | What it does |
|---|---|
get_current_context | Who the token belongs to, its scopes, and the workspaces it can act in. Call this first. |
list_workspaces | Workspaces of the login with domain and mailbox counts. Use the id as workspace_id. |
switch_workspace | Checks a workspace id and returns it so later calls can pass it as workspace_id. The server keeps no session: always pass workspace_id on the next calls. |
create_workspacewrites | A new, empty workspace (separate domains, mailboxes and billing). Owner keys and OAuth only.1 parameter
|
Domains
| Tool | What it does |
|---|---|
search_domains | Whether a domain can be registered and its price. Buying is not available through the API yet; use connect_domain for domains the customer owns.1 parameter
|
list_domains | Domains in the workspace with status, DNS state and mailbox counts.4 parameters
|
get_domain | One domain with its DNS report.1 parameter
|
connect_domainwrites | Add a domain the customer owns. Returns the nameservers to set at the registrar.1 parameter
|
check_domain_dnswrites | Re-check nameservers and mail records from public DNS now.1 parameter
|
get_domain_dns_records | The nameservers and MX, SPF, DMARC, DKIM records the domain needs.1 parameter
|
remove_domainconfirm | Remove a domain that has no mailboxes. Needs confirm:true.2 parameters
|
Mailboxes and orders
| Tool | What it does |
|---|---|
list_mailboxes | Mailboxes with status, domain, setup stage and tags. Filter by status, domain or tag.6 parameters
|
get_mailbox | One mailbox, without credentials.1 parameter
|
reveal_mailbox_credentialswrites | Password, app password, 2FA secret and current code, plus SMTP/IMAP hosts. Logged. Only reveal when the person asked for the credentials.1 parameter
|
cancel_mailboxconfirm | Stop renewing a mailbox; it works until its renewal date. Needs confirm:true.2 parameters
|
uncancel_mailboxwrites | Keep a mailbox that was set to cancel.1 parameter
|
list_personas | Generated names and usernames to fill an order with.1 parameter
|
quote_order | What N mailboxes would cost now on this workspace. Nothing is created.1 parameter
|
create_orderconfirm | Create Google Workspace mailboxes on connected domains. Each item: a domain id, the sequencer connection id the mailboxes go to, and 1 to 20 senders (localPart + fullName). Charges licenses (card or wallet). Without confirm:true it returns the quote only.2 parameters
|
list_orders | Past orders.2 parameters
|
get_order | An order, its mailboxes and its history.1 parameter
|
export_mailboxeswrites | Push ready mailboxes to a connected sequencer. Returns a job to poll with get_export.2 parameters
|
Tags
| Tool | What it does |
|---|---|
list_tags | Mailbox tags of the workspace. |
create_tagwrites | A new mailbox tag.2 parameters
|
assign_tagwrites | Put a tag on mailboxes.2 parameters
|
unassign_tagwrites | Take a tag off mailboxes.2 parameters
|
Sequencers and exports
| Tool | What it does |
|---|---|
list_sequencer_platforms | Sequencers that can be connected and the credential fields each needs. |
list_sequencer_connections | Connected sequencer accounts (Instantly, Smartlead, ...). |
create_sequencer_connectionwrites | Connect a sequencer account. Credentials are verified first. Ask the person for the fields the platform needs (list_sequencer_platforms).2 parameters
|
list_exports | Export jobs and their progress.1 parameter
|
get_export | An export job with the result per mailbox.1 parameter
|
Billing and wallet
| Tool | What it does |
|---|---|
get_wallet | Prepaid balance and auto-recharge settings. |
list_wallet_transactions | Credits and charges on the wallet.1 parameter
|
top_up_walletconfirm | Start a Stripe Checkout for a top-up and return its URL for the person to pay in a browser. Needs confirm:true.2 parameters
|
list_plans | Available mailbox plans and prices. |
get_subscription | The workspace plan, renewal, licenses and whether it can order. |
start_subscriptionconfirm | Card subscription: returns a Stripe Checkout URL for a new one, or applies the change to a running one. Needs confirm:true.4 parameters
|
get_licenses | Mailbox and warmup licenses: total, in use, booked for next renewal. |
add_licensesconfirm | Buy more mailbox or warmup licenses now. Without confirm:true returns the quote only.3 parameters
|
list_invoices | Stripe invoices with PDF links. |
Team
| Tool | What it does |
|---|---|
list_team | People on the workspace and open invites. |
invite_team_memberwrites | Email someone an invite to the workspace.2 parameters
|
Manage or disconnect authorized clients in the app under Settings → API and MCP → Connected apps. Looking for the REST endpoints behind these tools? API reference