LumboxLumbox Docs

MCP Server

Connect Claude and other agents.

MCP Server

The Lumbox MCP server gives AI tools direct access to email: create inboxes, wait for OTPs, send and reply, drive a browser. 103 tools.

Hosted transport is Streamable HTTP. Do not pick SSE.

URLhttps://mcp.lumbox.co/mcp
Alsohttps://api.lumbox.co/mcp
TransportStreamable HTTP
AuthAuthorization: Bearer ak_...

If a client uses SSE against a JSON URL you get:

Could not connect to the MCP server or list its tools — SSE error: Invalid content type, expected "text/event-stream".

Switch the transport to Streamable HTTP and use a /mcp URL above.

Assistable (createassistants.com)

Integrations → MCP Servers → Add server:

FieldValue
NameLumbox
Server URLhttps://mcp.lumbox.co/mcp
TransportStreamable HTTP
Auth tokenyour ak_... key (sent as Bearer)

https://api.lumbox.co/mcp works the same way. The REST root https://api.lumbox.co is not an MCP URL unless the client sends Streamable HTTP or Accept: text/event-stream.

Claude Code / Cursor / any HTTP client

Get an API key at app.lumbox.co → Settings → API Keys.

Claude Code (hosted HTTP):

claude mcp add --transport http lumbox https://mcp.lumbox.co/mcp

Then sign in, or send Authorization: Bearer ak_your_key_here.

Cursor / Claude Desktop / Windsurf — add to .cursor/mcp.json or claude_desktop_config.json:

{
  "mcpServers": {
    "lumbox": {
      "url": "https://mcp.lumbox.co/mcp",
      "headers": {
        "Authorization": "Bearer ak_your_key_here"
      }
    }
  }
}

Local stdio (npx)

For a local process instead of the hosted URL:

claude mcp add lumbox --env LUMBOX_API_KEY=ak_your_key_here -- npx -y @lumbox/mcp-server
{
  "mcpServers": {
    "lumbox": {
      "command": "npx",
      "args": ["-y", "@lumbox/mcp-server"],
      "env": {
        "LUMBOX_API_KEY": "ak_your_key_here",
        "LUMBOX_API_URL": "https://api.lumbox.co"
      }
    }
  }
}

Use it

Once connected, your AI agent can:

"Create an inbox called github-bot"
"Send an email to user@example.com saying hello"
"Wait for a verification email from github.com"
"What's the OTP code in my latest email?"

Environment Variables

VariableDefaultDescription
LUMBOX_API_KEY(required)Your API key (ak_...)
LUMBOX_API_URLhttps://api.lumbox.coAPI server URL
STEEL_API_URL(required for browser)Steel Browser URL (e.g. http://localhost:3000)
STEEL_API_KEY(optional)Steel API key if auth is enabled

Self-Hosted / Local Development

If you're running the API locally:

{
  "mcpServers": {
    "lumbox": {
      "command": "node",
      "args": ["/path/to/lumbox/apps/mcp-server/dist/index.js"],
      "env": {
        "LUMBOX_API_KEY": "ak_your_key_here",
        "LUMBOX_API_URL": "http://localhost:3001"
      }
    }
  }
}

Build first: cd apps/mcp-server && npx tsc

Authentication

Clients send a Bearer token:

Authorization: Bearer ak_your_key_here

OAuth 2.1 also works on the hosted URL. See authentication.

Session flow (Streamable HTTP)

  1. Initialize - POST /mcp with Bearer token + initialize request
  2. RPC calls - POST /mcp with Mcp-Session-Id header
  3. Server messages - GET /mcp with Mcp-Session-Id (event stream for that session)
  4. Terminate - DELETE /mcp with Mcp-Session-Id

Legacy SSE (GET /sse, then POST /messages) is accepted as a fallback. Prefer Streamable HTTP.

Docker

docker build -t lumbox-mcp apps/mcp-server/
docker run -p 3002:3002 -e LUMBOX_API_URL=http://api:3001 lumbox-mcp

Available Tools (103)

Inbox Management

ToolDescription
create_inboxCreate a new email inbox (returns email address)
list_inboxesList your inboxes, newest first (paginated: limit, cursor)
get_inboxGet inbox details and email count
delete_inboxDelete an inbox and all its emails

Email (Core Agent Tools)

ToolDescription
wait_for_emailBlock until a matching email arrives (with filters)
get_otpGet the latest OTP/verification code
list_emailsList emails with filters (sender, category, date)
read_emailRead full email with parsed OTP, links, summary
search_emailsSearch across all inboxes

Send / Reply / Forward

ToolDescription
send_emailSend an email from an inbox
reply_to_emailReply with auto-threading headers
forward_emailForward an email to another address

Threads

ToolDescription
list_threadsList conversation threads
get_threadGet all emails in a thread

Domain Management

ToolDescription
add_domainAdd a custom domain (returns DNS records)
verify_domainCheck DNS and activate domain
list_domainsList all domains

SMTP Configuration (BYOS)

ToolDescription
configure_smtpConfigure outbound SMTP provider
list_smtp_configsList SMTP configurations
test_smtp_configTest an SMTP config

Thread Routing

ToolDescription
assign_threadAssign an agent to a thread
unassign_threadRemove an agent from a thread
list_thread_agentsList agents on a thread
create_routing_ruleAuto-route emails by sender/subject/category
list_routing_rulesList routing rules
delete_routing_ruleDelete a routing rule

Webhooks

ToolDescription
create_webhookRegister a webhook for email events
list_webhooksList webhooks
test_webhookTest a webhook
delete_webhookDelete a webhook

Browser Automation

ToolDescription
browser_navigateNavigate to URL, returns accessibility tree
browser_snapshotGet current page state with element refs
browser_clickClick element by ref (@e1, @e2...)
browser_typeType text into input by ref
browser_selectSelect dropdown option
browser_evalRun JavaScript on page
browser_screenshotTake screenshot
browser_save_stateSave cookies + localStorage
browser_load_stateRestore saved session
browser_closeClose browser session

See Browser Automation for details.

Skills (Compound Actions)

ToolDescription
skill_signup_with_emailNavigate + fill email + submit + wait for OTP - all in one call
skill_login_with_emailNavigate + enter email + submit + wait for magic link/OTP
skill_verify_emailWait for verification email + click the link

Credential Vault

ToolDescription
store_credentialSecurely store a password/API key/TOTP secret (encrypted, never returned)
login_with_credentialAuto-inject credentials into login form via Steel (fields blurred, auto-submit)
use_credential_in_browserFill credential into a specific form field (for non-login fields)
list_credentialsList stored credentials (metadata only, never values)
delete_credentialPermanently delete a credential

See Credential Vault for security details.

Contact Lists & Marketing

ToolDescription
create_contact_listCreate a contact list for marketing
list_contact_listsList contact lists
add_contactsAdd contacts to a list
list_contactsList contacts in a list
remove_contactRemove a contact
delete_contact_listDelete a contact list
send_marketing_emailSend to all contacts in a list

AI Configuration (BYOK)

ToolDescription
configure_aiSet up AI provider and API key
get_ai_configView AI configuration