All documentation
On this page

Set-up documentation

Connect your mailbox to Windsurf

Windsurf is the only client that calls the URL serverUrl rather than url. And its documentation now lives under the Devin brand, which confuses everyone.

Time About 2 minutes
Where Settings, Cascade, MCP Servers
It needs URL only, probably
Top-level key mcpServers
URL key serverUrl

The URL key is serverUrl

Not url. Windsurf is the only client in this section that spells it that way, so a block copied from Cursor, VS Code, Zed, Cline or LibreChat arrives here with no URL in it as far as Windsurf is concerned.

It fails the way a wrong key always fails: the file parses, nothing in it is recognised, and the editor starts with no server attached. No error message names the missing field.

The configuration

~/.codeium/windsurf/mcp_config.json macOS and Windows, one path
{
  "mcpServers": {
    "work-mail": {
      "serverUrl": "https://mcp.mailbox-mcp.com/db/mcp/YOUR-MAILBOX-KEY"
    }
  }
}

No type and no transport: neither is documented for a remote HTTP server. The UI route is Settings, Cascade, MCP Servers, or the MCPs icon at the top right of the Cascade panel.

Its documentation is branded Devin now

Worth knowing before you go looking. docs.windsurf.com redirects to docs.devin.ai, and the page you land on is titled for Devin Desktop and uses "Devin" and "Windsurf" interchangeably throughout.

Nothing is wrong. Cognition owns both and the MCP documentation is shared. But if you follow a search result and find yourself reading about a product you are not using, that is why, and it is the right page. The settings screens it describes are the ones in Windsurf.

Signing in, and the fallback

Windsurf's documentation says OAuth is supported for each transport type. It does not say whether that includes the dynamic client registration this server uses, and we would rather tell you that than assume. So: paste the block above with no credential in it and see whether Windsurf offers to sign you in.

If it does not, and reports the server as unauthorised instead, create an access token in the control panel and add a headers block:

~/.codeium/windsurf/mcp_config.json Fallback: token instead of sign-in
{
  "mcpServers": {
    "work-mail": {
      "serverUrl": "https://mcp.mailbox-mcp.com/db/mcp/YOUR-MAILBOX-KEY",
      "headers": {
        "Authorization": "Bearer YOUR-ACCESS-TOKEN"
      }
    }
  }
}

Tell us which way it went and this page will say so definitely rather than offering you both.

Check that it worked

Try this first

Look through my inbox for anything about the deploy that failed and tell me who noticed first.

Nothing is marked read by asking. If Cascade lists the tools but every call fails, the mailbox credential in the control panel is the thing to check rather than this file.

The free tier is 5 MCP calls a day on any mailbox, with no card, which is enough to try this before deciding whether it belongs in your editor.

Where to go next

The key table is worth a glance if you also run Cursor or VS Code: all three use a different combination of key names for the same server.

What we could not confirm
  • Whether Windsurf can register a client dynamically. Its page says OAuth is supported "for each transport type" and does not say how.

Read 30 August 2026 Every value on this page came off Devin Desktop documentation: Cascade MCP on that day. docs.windsurf.com 307s here and the page says Devin and Windsurf interchangeably. If it has changed since, tell us and we will read it again.