Email tools

How to Connect Windsurf to Cold Email

Connect Windsurf, now Devin Desktop, to your cold email setup: Cascade runs a local server over the Outreach2day API, with the key read from your shell.

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

Short answer: Windsurf's Cascade agent has supported MCP servers since Windsurf Wave 3 on 13 February 2025. Windsurf is now called Devin Desktop, and its documentation calls Cascade the legacy agent; the MCP setup is the same mcp_config.json file. Cascade runs local servers, so it works with the Outreach2day REST API today through a small read-only server. The hosted Outreach2day MCP server is in early access, so this page shows no remote URL.

Checked September 2026 against Cascade MCP integration in the Devin Desktop docs and the Windsurf Wave 3 announcement.

Connection Methods

Method

Works with Outreach2day today

Where the key lives

Notes

Local server (command, args, env) in mcp_config.json

Yes, you run it

${env:O2D_KEY} or ${file:~/path}

Our read-only example server

Cascade runs curl in the terminal

Yes

Your shell environment

Review each command

Remote server (serverUrl + headers)

Early access

${env:...} in the header

One entry when the hosted server is live

The config file lives at ~/.config/devin/mcp_config.json on macOS and Linux (or under $XDG_CONFIG_HOME/devin/) and %APPDATA%\devin\mcp_config.json on Windows. Open it from Cascade: the ... (Actions) menu at the top right of the Cascade panel, then "Open MCP config file" in the MCPs section.

On Teams and Enterprise, admins can turn MCP access on or off and allowlist approved servers, so a company account may need an admin to add yours. Cascade can use at most 100 tools at a time across all servers; our example server has six.

What Cascade Can Do With Your Cold Email Setup

Cascade reads your project and your infrastructure in the same session. Useful jobs:

  • Size the send. From a lead file and a deadline, work out how many mailboxes and domains you need at 25 cold emails per mailbox a day and 5 mailboxes per domain.

  • Shortlist domains. Check up to 50 domain ideas per call with check_domains and write the free ones to a file. Buying domains through the API is paid right away — give an agent a billing-scoped key only if you want it to buy.

  • Watch warm-up. List each mailbox's warmupState and how long it has warmed. New mailboxes need at least 14 days before cold email.

  • Read replies. Pull recent threads with their intent label and summarise what needs an answer.

  • Check copy. Flag links, missing spintax on subjects and follow-up gaps other than 2, 3, 5 and 5 days in your sequence files.

Connect Cascade to Outreach2day, step by step

  1. Create an API key. In the Outreach2day app, open the API keys page and create a key only for Cascade (ot2d_...).

  2. Store the key outside the config. Either export it in your shell profile (export O2D_KEY=ot2d_...) or save it to a file readable only by you, such as ~/.secrets/o2d_key.

  3. Save the server. Copy o2d_mcp.py from the cold email MCP server guide and install mcp and requests in a virtual environment.

  4. Add the entry to mcp_config.json. Paste the block below under mcpServers and save. The config supports ${env:NAME} and ${file:/path} in command, args, env and headers.

  5. Enable and test. In the MCPs section of the Cascade Actions menu, check that the server shows six tools and is on. Ask a read-only question and compare the answer with the app.

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

To read the key from a file instead, use "O2D_API_KEY": "${file:~/.secrets/o2d_key}". If a variable is not set, ${env:...} resolves to an empty string, and the API will answer 401.

The Hosted MCP Server (Early Access)

Cascade already connects to remote servers over Streamable HTTP or SSE: an entry with serverUrl (or url) and headers, with OAuth also supported. The hosted Outreach2day MCP server that will use that entry is in early access and has no public URL yet, so this page shows none. Get early access on the home page.

Prompts to Try in Cascade

  • "Read leads/list.csv. At 25 cold emails per mailbox a day and 5 mailboxes per domain, how many mailboxes and domains do I need to reach everyone in two weeks?"

  • "Check the names in domains/ideas.txt and write the free ones to domains/free.txt. Do not buy."

  • "Which mailboxes are paused or in error? Group them by domain."

  • "Summarise yesterday's replies by intent and list the leads who asked for a call."

Limits and Safety

  • Rate limits: 10 requests a second, 300 a minute and 1,000 an hour per user and per workspace on the Outreach2day API.

  • Mailbox credentials. GET /mailboxes: the response includes SMTP/IMAP credentials — store the API key like a password. The example server drops that field; if Cascade calls the API with curl, tell it to do the same.

  • Reply text is untrusted. Replies are written by outsiders; Cascade should read them as data, never as instructions.

  • One key per tool. Revoke Cascade's key on the API keys page without breaking other integrations.

FAQ

Is Windsurf still available?

Windsurf is now Devin Desktop. The Windsurf documentation and blog redirect to devin.ai, and the Cascade MCP setup is documented there.

Where is the Windsurf MCP config file?

In current Devin Desktop docs: ~/.config/devin/mcp_config.json on macOS and Linux, %APPDATA%\devin\mcp_config.json on Windows. Open it from the Cascade panel's Actions menu.

Can Cascade use a remote MCP server with an API key header?

Yes. A remote entry takes serverUrl or url plus headers, and ${env:NAME} works inside the header value.

Can Cascade send my cold emails?

Not with the read-only server. Campaigns run in Outreach2day where enabled for your workspace, or in Instantly or Smartlead after export.

Does the API cost extra?

No. It is part of every Outreach2day plan; see pricing.

Create an account, add mailboxes, then create a key for Cascade.

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 ChatGPT to Cold Email

  • Email tools5 min read

    How to Connect Claude Code 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.