How to Add a Remote MCP Server to Windsurf (Devin Desktop)
Where Devin Desktop keeps its MCP config after the Windsurf rename and the removal of Cascade, the url key Devin Local uses for a remote server, how authorization works, and the enterprise controls that can hide MCP.
Last verified October 1, 2026
How do I add a remote MCP server to Windsurf?
Add it to Devin Local's config file with a url field. Devin Local is now the only agent in Devin Desktop, and it keeps MCP servers in its own files:
~/.config/devin/mcp_config.json— user level, all projects (%APPDATA%\devin\mcp_config.jsonon Windows).devin/mcp_config.json— project scope, shared through version control.devin/mcp_config.local.json— local override, gitignored
The legacy Cascade agent, with its own settings panel and serverUrl examples, was removed in September 2026, so older guides that send you to Cascade's MCP settings no longer match what you see.
On an Enterprise plan, an admin must enable Devin Local and allowlist MCP servers first, so check with yours before you start.
The naming, first, because it is confusing
Windsurf became Devin Desktop on June 2, 2026, when Cognition consolidated its product line, and the docs moved to docs.devin.ai. Then, in v3.9.19 (September 8, 2026), Cognition removed the Cascade agent: "Devin Local is now the only agent available in Devin Desktop."
If your build still says "Windsurf" or still shows Cascade, you are on an older release. Cognition treats every release but the latest as deprecated, so updating is the simplest fix.
The config
{
"mcpServers": {
"my-server": {
"url": "https://mcp.example.com/mcp"
}
}
}
url is the only remote-server field Devin Local documents. An optional "transport" field takes "http" (Streamable HTTP, the default) or "sse" (legacy SSE); leave it out and Devin Local tries Streamable HTTP first and falls back to SSE on a non-authentication 4xx error.
Or skip the file entirely, if you have the Devin CLI installed:
devin mcp add -s user my-server https://mcp.example.com/mcp
Without -s user, that command saves to the gitignored .devin/mcp_config.local.json in the current project. Cognition notes the location changed in v3000.3 (Local 3.6) — older builds kept servers under an mcpServers key in config.json and migrate automatically on startup.
Coming from a Windsurf config
Devin Local imports MCP servers from the old ~/.codeium/windsurf/mcp_config.json by default (you can turn that off with "read_config_from": { "windsurf": false }). So a server you added in the Windsurf days may carry over on its own.
Cognition doesn't document whether an old serverUrl entry is converted during that import. If a server you expected is missing, don't debug the import — add it to Devin Local's own file with url.
Authorization
For OAuth servers, run devin mcp login <name> to open a browser window and authorize, or let Devin Local prompt you automatically when the server is first used. Servers that support dynamic client registration need no client credentials. Expired credentials show up as a Needs auth status in the MCP list, with an Authenticate button to sign in again. Each client keeps its own OAuth session, so authorizing in one tool does not carry to another.
If authorization will not trigger at all, a stdio fallback works — replace the url entry with a command / args pair running mcp-remote against the same URL. That is our own workaround rather than Cognition guidance; mcp-remote does not appear in their docs.
What usually goes wrong
- Config saved but the server never appears. Check that the entry is in one of Devin Local's files and uses
url, then rundevin mcp listto see what Devin Local loaded. An entry that only exists in the old Windsurf file depends on the import described above. - No MCP option at all. On Enterprise plans, an admin turns on the Devin Local agent and controls MCP access — MCP can be switched on or off for the team, and admins can allowlist servers or enforce an MCP registry so only approved servers connect. Ask your workspace admin.
- Devin Local connects but nothing happens. Its default configuration prompts for approval before every MCP tool call. Approve the prompt, or allow the server's tools for the session or permanently.
A worked example
Here is the same config with a real server. Tempreon is a hosted MCP server that carries your context between tools, so the entry is a URL and nothing else:
{
"mcpServers": {
"tempreon": {
"url": "https://api.tempreon.com/functions/v1/tempreon-mcp/mcp"
}
}
}
There is a reason this particular editor is a good place to connect a memory server: Devin Desktop natively hosts open models like GLM, Kimi, and DeepSeek alongside Claude and GPT, and because MCP lives in the agent rather than the model, all of them reach the same server through one connection. Swapping models does not touch your setup.
The full account-holder walkthrough is in the Windsurf setup doc.
Sources
The dated claims on this page were checked against these vendor documents. Client UIs move constantly, so if one of these has changed since the date shown, trust the vendor over this page — and tell us.
- Devin Desktop changelog — v3.9.19 Cascade removed (Sept 8, 2026); v3.0.12 Windsurf renamed — read 2026-10-01
- Devin Local MCP configuration — config paths, the url field, OAuth login — read 2026-10-01
- Configuration import — Devin Local reads MCP servers from the old Windsurf config — read 2026-10-01
- Devin Local — tool approval, Needs auth, Enterprise gating — read 2026-10-01
- Devin team settings — MCP toggle, allowlist, and registry enforcement — read 2026-10-01
Frequently asked questions
- I added an MCP server in Windsurf but it never appears. What's wrong?
- Check where the entry lives. Since September 2026 Devin Local is the only agent in Devin Desktop, and it reads .devin/mcp_config.local.json, .devin/mcp_config.json, or ~/.config/devin/mcp_config.json, with the field url. Devin Local can import servers from the old ~/.codeium/windsurf/mcp_config.json, but Cognition doesn't document whether a serverUrl entry converts, so add the server to Devin Local's own file with url. Run devin mcp list to see what it loaded.
- Where do I add an MCP server in Devin Desktop?
- Devin Desktop's agent is now Devin Local, which keeps MCP servers in its own config files. Add the server under mcpServers with a url entry in ~/.config/devin/mcp_config.json to use it in every project, or in .devin/mcp_config.json for one project. You can also run devin mcp add -s user followed by a name and the server URL. The old Cascade MCP settings were removed in September 2026.
- Why is there no MCP option in my Windsurf install at all?
- On Enterprise plans, an admin turns on the Devin Local agent and controls MCP access. MCP can be switched on or off for the team, and admins can allowlist servers or enforce an MCP registry so only approved servers connect. If MCP is missing entirely rather than failing to connect, ask your workspace admin whether it is enabled and whether your server needs to be allowlisted.