Email tools

How to Connect Cursor to Cold Email

Connect Cursor to your cold email setup: the agent calls the Outreach2day API or a local MCP server to check domains, mailboxes, warm-up and replies.

Max Korolev
Max KorolevFounder & CEO, Outreach2dayPublished 5 min read
On this page

Short answer: Cursor's agent has supported MCP servers since version 0.45 (January 2025), and since Cursor 1.0 (June 2025) remote servers can use OAuth or fixed headers. You connect Cursor to Outreach2day today in one of two ways: the agent calls the REST API from your terminal with your key in an environment variable, or you run a small local MCP server over the same API. Both read domains, mailboxes, warm-up state and replies. The hosted Outreach2day MCP server is in early access, so there is no URL to paste yet.

Checked September 2026 against Cursor's MCP documentation, the Cursor 0.45 changelog and the Cursor 1.0 changelog.

Connection Methods

Method

Works with Outreach2day today

What the agent can do

Setup

Agent runs curl or a script against the REST API

Yes

Every API endpoint your key allows

Key in an env variable, one prompt

Local MCP server (stdio) in .cursor/mcp.json

Yes, you run it

The tools you write: read-only in our example

Python script plus one JSON entry

Hosted Outreach2day MCP server (url + headers)

Early access

Domains, mailboxes, warm-up, replies as tools

One JSON entry when it is live

Cursor is a good fit when your cold email work already lives in files: lead CSVs, copy drafts, a script that sizes domains for a volume. The agent reads the repo and the API in the same session.

What Cursor Can Do With Your Cold Email Setup

With the API key available to the agent, Cursor can:

  • Domains: check which names are free with POST /check_domains (up to 50 at a time) and list the workspace's domains with GET /domains. Buying domains through the API is paid right away — give an agent a billing-scoped key only if you want it to buy.

  • Mailboxes: list mailboxes and their status with GET /mailboxes. New mailboxes are ordered in the app; the API lists and edits them.

  • Warm-up: read warmupState per mailbox with GET /warmup/mailboxes, and start or pause warm-up with POST /warmup/operations and an idempotency key.

  • Replies: list reply threads with a replyIntent label with GET /threads.

  • Campaigns: draft sequences and copy in your repo. The campaign API is not enabled for every workspace yet; if you send from Instantly or Smartlead, the export endpoints add your mailboxes there.

Connect Cursor to Outreach2day, step by step

  1. Create an API key for Cursor. In the app, open the API keys page and create a key only for this use (ot2d_...). A key acts as your user in every workspace you belong to, so a separate key is easy to revoke.

  2. Put the key in your shell, not in the repo. Add export O2D_KEY=ot2d_... to your shell profile or a git-ignored .env, and note your workspace ID from GET /workspaces.

  3. Tell the agent where the API is. Start a chat with: "The Outreach2day API is at https://public.outreach2day.com, auth is Authorization: Bearer $O2D_KEY, docs at dev.outreach2day.com. Never print the key." Review each terminal command the agent proposes before it runs.

  4. Optionally add a local MCP server. Save the read-only server from our cold email MCP server guide and register it in ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project), as below.

  5. Check the tools. In Cursor's settings, confirm the server is listed with its tools. Ask "list my domains" and compare the answer with the app.

The local server entry. Cursor fills ${env:NAME} from your environment, so the key stays out of the file:

{
  "mcpServers": {
    "outreach2day": {
      "type": "stdio",
      "command": "/path/to/.venv/bin/python",
      "args": ["/path/to/o2d_mcp.py"],
      "env": {
        "O2D_API_KEY": "${env:O2D_KEY}",
        "O2D_WORKSPACE_ID": "${env:O2D_WORKSPACE_ID}"
      }
    }
  }
}

The Hosted MCP Server (Early Access)

Cursor can already talk to remote servers: an entry with a url and headers instead of a command. The hosted Outreach2day MCP server that will use that format is in early access and has no public URL yet, so this page shows no remote config. When it is generally available, this section will carry the one entry to add. Get early access on the home page.

Prompts to Try in Cursor

  • "Read leads/q4.csv, count rows, and tell me how many mailboxes I need at 25 cold emails per mailbox per day to reach everyone in 10 working days."

  • "Check whether these 10 domain ideas are free, and write the free ones to domains.txt. Do not buy anything."

  • "Which mailboxes have been warming for less than 14 days? Output a table with address, domain and start date."

  • "Lint copy/sequence.md: no links in any step, spintax on every subject, follow-up gaps 2, 3, 5 and 5 days."

More, grouped by task, in Cursor prompts for cold email.

Limits and Safety

  • Rate limits: 10 requests a second, 300 a minute, 1,000 an hour, 10,000 a day per user and per workspace. Over the limit the API answers 429 with Retry-After.

  • Mailbox credentials: GET /mailboxes lists your mailboxes. The response includes SMTP/IMAP credentials — store the API key like a password. Our MCP example drops that field in code.

  • Reply text is untrusted. Replies are written by outsiders. The agent should treat them as data, never as instructions.

  • Spending: Buying domains through the API is paid right away — give an agent a billing-scoped key only if you want it to buy.

FAQ

Does Cursor support remote MCP servers?

Yes. An entry with url (and optional headers) connects to a remote server over Streamable HTTP or SSE; an entry with command starts a local stdio server. Cursor 1.0 added OAuth for servers that support it.

Is there an Outreach2day MCP URL I can paste into Cursor?

Not yet. The hosted server is in early access. Today Cursor works through the REST API or a local server you run.

Can Cursor buy domains or order mailboxes?

It can call POST /domains/purchase. Buying domains through the API is paid right away — give an agent a billing-scoped key only if you want it to buy. Mailboxes are ordered in the app.

Where does Cursor store MCP settings?

In ~/.cursor/mcp.json for all projects or .cursor/mcp.json inside a project. Commit the project file only if it holds no secrets; use ${env:NAME} for keys.

Can Cursor send cold emails?

Not through Outreach2day's public API unless campaigns are enabled for your workspace. It can draft and lint the copy, prepare lead files and add mailboxes to Instantly or Smartlead through the export endpoints.

Create an account, add mailboxes, then create a key for Cursor on the API keys page.

Get an API key

Free guide

Send 100,000 cold emails a month

How to send 100,000 cold emails a month while keeping quality, engagement and conversion rates high: domains, mailboxes, warm-up, leads, copy and scaling.

Step-by-step playbook · 19 min read
  • Email tools5 min read

    How to Connect Claude Code to Cold Email

  • Email tools5 min read

    How to Connect ChatGPT to Cold Email

  • Email tools5 min read

    How to Connect Claude to Cold Email

See deliverability issues before they kill performance

Monitor mailbox health in real time, spot degradation early, and keep warmup, protection, and sending in one place.