NuMail speaks the Model Context Protocol. Point Claude Code, Cursor, OpenAI Codex, or any MCP-compatible client at https://www.numail.ai/api/mcp and it can build and launch campaigns, add and suppress leads, check mailbox health, read the unibox, and send replies, by name, with no glue code, no scraping the dashboard.
▸ "Spin up a campaign for the leads in mercer.csv from tomas@mercer.com. Two steps, 3 days apart." list_mailboxes({ provider: "google" }) → tomas@mercer.com · healthy create_campaign({ name: "Mercer · Q3 outbound", mailboxIds: ["mbx_41a"], leads: [ … 1,204 rows from mercer.csv ], seqSteps: [{ delayDays: 0, … }, { delayDays: 3, … }] }) ✓ cmp_7d2 created · draft ▸ "Looks good. Launch it." launch_campaign({ campaignId: "cmp_7d2" }) ✓ launched · 1,204 leads enrolled ▸ "Who replied positive today? Draft short responses." list_replies({ classification: "positive" }) → 6 threads · reading… get_thread({ threadId: "thr_2c1" }) ✓ 6 short drafts ready for your approval
NuMail's MCP server is hosted and speaks Streamable HTTP. If your client can reach a remote MCP server with a header, it works. Here are the ones our customers wire up most.
Same https://www.numail.ai/api/mcp URL and Bearer header everywhere; only the config keys differ. Custom agent runtime? It's JSON-RPC over HTTPS POST, so any MCP SDK client connects.
No NuMail package to install or update: the server runs at https://www.numail.ai/api/mcp and your client sends the key in a header. Claude Desktop is the one exception: it reaches the server through the open-source mcp-remote bridge, which needs Node 18 or later. Mac, Windows, Linux.
In NuMail · Settings · MCP, click Generate key & copy config, or create a key with the mcp:* scope in Settings · API Keys. Each key reaches one workspace.
Drop this into your client's MCP config (Claude Code .mcp.json shown). Cursor, Windsurf and Zed take the same URL and header; Cline also needs "type": "streamableHttp"; Codex sets them in config.toml.
Claude Desktop only starts local servers from claude_desktop_config.json, so it goes through the mcp-remote bridge. Settings · MCP generates this block with your key in it. Where your Claude plan offers request headers on custom connectors, you can add the URL there instead.
Reload the client and the NuMail tools register automatically. Then just ask in plain language.
One tool per capability, each mapped to a NuMail REST endpoint. Names are stable and self-describing, so the agent picks the right one without prompting.
Four workflows that turn into a single sentence once the MCP server is connected.
Read the CSV, write the sequence, pick the sending mailbox, and launch. The agent chains list_mailboxes → create_campaign → launch_campaign.
Read every positive reply since yesterday, grouped by campaign, and have a short draft waiting on each one. Approve the good ones in a single follow-up.
Friday at 4pm: pause every active campaign in the workspace, then bring them all back on Tuesday, each lead picking up where it stopped: list_campaigns → pause_campaign, then resume_campaign.
Find the replies asking to stop, read each one, and suppress the lead across every campaign: list_replies → get_thread → suppress_lead.
The MCP server is live for every workspace at https://www.numail.ai/api/mcp, hosted by us, so there is no NuMail package to install and nothing to update. It is a thin layer over the REST API: each of the 14 tools above calls the same service code as the endpoint it maps to.
Every capability here also works over the REST API and SDKs today, so scripts and agents can share one workspace. New tools appear on the server with no change on your side. Start a trial and generate an MCP key in Settings · MCP.
One config block. https://www.numail.ai/api/mcp in the agent you already use.