Windsurf MCP server: how to add servers to Cascade
windsurf.com now redirects to devin.ai/desktop. Cascade is an MCP client, so the practical questions are where its config file lives and which limits apply.
Checked 3 October 2026 · from Devin Desktop's Cascade MCP page, the Devin CLI and Devin MCP docs, the Analytics API spec and requests to docs.windsurf.com/mcp
One of 91 guides to monitoring and developer tools. Each covers what an AI coding agent can get out of the tool through MCP, the protocol that lets the agent query the tool directly.
Summary
On 3 October 2026 windsurf.com answers with a 308 redirect to devin.ai/desktop, and Windsurf's documentation now lives on docs.devin.ai. The editor's agent, Cascade, is an MCP client that calls servers you configure.
Cascade reads mcp_config.json. Devin Desktop's docs place it at ~/.config/devin/mcp_config.json on macOS and Linux, while Windsurf's own config directory is ~/.codeium/windsurf/.
Neither Windsurf nor Cognition has published an MCP server for Windsurf usage or settings. Credit and usage data comes from the Enterprise Analytics API on server.codeium.com.
How Windsurf works with MCP
Windsurf is an AI code editor owned by Cognition, the company behind Devin. It now ships as Devin Desktop with two agents: the legacy Cascade agent and Devin Local, the default for new tabs.
The two agents configure MCP differently. Cascade has no marketplace or one-click install, so servers go into mcp_config.json by hand. Devin Local uses the Devin CLI config files and has the MCP Marketplace.
Cognition does publish MCP servers for other products. Devin MCP at mcp.devin.ai manages Devin sessions, playbooks, knowledge and schedules, and DeepWiki MCP serves repository documentation.
https://docs.windsurf.com/mcp is a documentation search server named "Windsurf Docs". It exposes search_windsurf_docs and a read-only docs filesystem tool, and it answered without credentials on 3 October 2026.
Every vendor here gets the same four checks: official, maintained, distributed and usable. Windsurf passes 0 of them.
| Check | Result | Evidence |
|---|---|---|
| Official | Fail | Windsurf's MCP documentation covers Cascade as a client. The official server at docs.windsurf.com/mcp searches documentation and holds no account, usage or settings data. |
| Maintained | Not applicable | Applies to a server for Windsurf data, which Windsurf and Cognition have not published as of 3 October 2026. |
| Distributed | Not applicable | The official MCP registry returns zero results for "windsurf" on 3 October 2026. |
| Usable | Not applicable | Cascade's client-side support is documented: stdio, Streamable HTTP and SSE transports, OAuth on each, and up to 100 tools at once. |
| Part of the work | What Windsurf has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | Cascade and Devin Local agents in the editor | Client side. The agents call the MCP servers you add |
| AI cost management | Prompt credits, flex credits and ACUs per team | Not over MCP. The Analytics API returns them to an Enterprise service key |
Windsurf matters to an agent stack as the place servers are configured. Usage and credit questions go to the Analytics API, which only Enterprise plans can call.
What can an AI agent do with Windsurf?
Cascade uses at most 100 tools across every server
Cascade can use at most 100 tools at any given time. One large server can take most of that allowance by itself.
When the total is too high, tools you configured may be unavailable to the model in that session.
Guard: List unneeded tools in the server's disabledTools array, or switch whole servers off from the MCPs section of the Cascade panel.
Servers in a project's .devin folder do not reach Cascade
.devin/mcp_config.json and .devin/mcp_config.local.json are Devin CLI scopes, which Devin Local reads. Cascade's documentation lists only the user-level mcp_config.json.
Guard: Add servers Cascade needs to the user-level file, or run the task in a Devin Local tab.
How to configure Windsurf MCP for agents
- 1
Enterprise teams start with MCP off
Windsurf's docs say Enterprise users must turn it on manually in settings.
- 2
The first allowlist entry blocks every other server
Once an admin allowlists one server, all servers outside the allowlist are blocked for the team.
- 3
Allowlist IDs must equal config keys
The Server ID is case-sensitive and has to match the key in each user's
mcp_config.json. - 4
Registries leave Cascade unchanged
Custom MCP registries replace the Devin Local marketplace, so restrict Cascade with the allowlist instead.
Paste this into your agent’s instructions
When you answer inside Cascade, state: - Which MCP server and tool produced the answer. - That Cascade enables at most 100 tools at once, so a server may have tools switched off in this session. If no enabled tool covers the question, say so. Do not conclude that the data does not exist.
Do you need the MCP server at all?
To ask how Windsurf works, add the Windsurf Docs server at https://docs.windsurf.com/mcp. It answers from public documentation.
For usage and credits, call the Analytics API. GET /api/v2alpha/analytics/consumption returns credit or ACU consumption to a service key with Analytics Read permission.
For your code, pipelines and production systems, add each vendor's own server to Cascade. Windsurf's docs use GitHub's server as the worked example.
Configure Windsurf as the client. Pull Windsurf's own usage data from the Analytics API.
Windsurf integration setup
Cascade servers are added by editing mcp_config.json. Open it from the ... Actions menu in the Cascade panel, then the Open MCP config file icon in the MCPs section.
Local server (stdio)
Each entry under mcpServers names a command, its arguments and environment. On Windows the file is %APPDATA%\devin\mcp_config.json.
{"mcpServers":{"github":{
"command":"npx",
"args":["-y","@modelcontextprotocol/server-github"],
"env":{"GITHUB_PERSONAL_ACCESS_TOKEN":"<token>"},
"disabledTools":["create_repository"]}}}Remote server (HTTP)
Remote servers take serverUrl or url instead of a command, with any credential in headers. The URL should be the endpoint itself, usually ending in /mcp.
{"mcpServers":{"remote-http-mcp":{
"serverUrl":"https://<your-server>/mcp",
"headers":{"API_KEY":"Bearer ${env:AUTH_TOKEN}"}}}}Windsurf Docs search
The docs server is remote and needs no credentials.
{"mcpServers":{"windsurf-docs":{
"serverUrl":"https://docs.windsurf.com/mcp"}}}Every other client
Each block below is the configuration for one client, with the file path and the key that client expects.
Keep secrets out of the file
Cascade interpolates ${env:VAR_NAME} and ${file:/path/to/file} in command, args, env, serverUrl, url and headers. An unset environment variable resolves to an empty string.
"env":{"API_KEY":"${file:~/.secrets/api_key.txt}"}Devin Local agent
Devin Local shares its MCP setup with Devin CLI. devin mcp add writes to .devin/mcp_config.local.json by default, and -s project or -s user changes the scope.
devin mcp add -s user github -- npx -y @modelcontextprotocol/server-github devin mcp list
Devin MCP, if you use Devin
Devin MCP needs a cog_ service user key or personal access token. Enterprise keys also need an X-Org-Id header to pick the organization.
{"mcpServers":{"devin":{
"serverUrl":"https://mcp.devin.ai/mcp",
"headers":{"Authorization":"Bearer <API_KEY>",
"X-Org-Id":"<YOUR_ORG_ID>"}}}}Read-only access, permissions and security
Cognition disclaims tool-call failures
Its docs say MCP tool calls can run code from arbitrary server authors, so it does not assume liability for their failures.
Cascade exposes more than tools
It supports a server's tools, resources and prompts, so review all three before approving a server.
The env block is never allowlist-matched
Admin patterns cover the command and arguments, and users can set
envvalues freely.
Troubleshooting
- An allowlisted server is still blocked
- Check the argument count. Patterns are anchored, each argument is matched on its own, and the number of arguments must match exactly.
- An allowlist pattern blocks everyone
- Invalid regex patterns are logged and result in access denial. Escape
$,.,[,],(and)when you mean them literally.
What the vendor documents
Cognition's documentation covers Cascade's MCP support from the client side. It also states plainly that "Cascade does not have an MCP Marketplace or one-click install. Those are only available for the Devin Local agent."
Should you connect an agent to Windsurf?
Only as a client. Windsurf's own data is not available over MCP as of 3 October 2026, so use the Analytics API for usage. Best for devin Desktop users who want Cascade to call their GitHub, database or observability servers.
- Strongest fit
- Only as a client. Windsurf's own data is not available over MCP as of 3 October 2026, so use the Analytics API for usage.
- Main advantage
- Cascade handles stdio, Streamable HTTP and SSE servers, with OAuth and secret interpolation.
- Main weakness
- Cascade has no marketplace, and its 100-tool ceiling limits how many servers stay useful together.
- Operational risk
- The first admin allowlist entry automatically blocks every other server for the team.
From Oodle
One platform for agent traces and infrastructure
Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface.
See agent observabilityFrequently asked questions
Does Windsurf have an MCP server?
Not for Windsurf data. Cognition hosts a docs search server at docs.windsurf.com/mcp, and Devin MCP at mcp.devin.ai serves Devin rather than the editor.
Where is the Windsurf MCP config file?
It is mcp_config.json. Devin Desktop's docs put it at ~/.config/devin/mcp_config.json on macOS and Linux; Windsurf-branded installs keep config under ~/.codeium/windsurf/.
How many MCP tools can Cascade use?
100 at any given time, across all configured servers. The disabledTools array switches off tools you do not need.
Is Devin MCP the same as Windsurf MCP?
No. Devin MCP manages Devin sessions, playbooks and knowledge with a cog_ API key. It does not read Windsurf editor data.