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.
mcpServers
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
{
"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:
{
"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.
- 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.