Home · Guides

Windsurf and Cline

Both work. Both have one non-obvious default that produces a correct-looking config doing nothing, and neither tells you.

Windsurf: the file applies to the legacy agent

The file is ~/.codeium/windsurf/mcp_config.json on macOS, Windows and Linux, with mcpServers as the key. Reach it from the MCPs icon at the top right of the Cascade panel, or Devin Settings, Cascade, MCP Servers. The documentation now lives under the Devin Desktop product name and the Windsurf docs URL redirects there.

Here is the catch. mcp_config.json applies to the legacy Cascade agent only. The Devin Local agent, which is the default for new tabs, takes its servers from the Devin CLI config files instead. So a perfectly correct entry in this file can be entirely invisible in a fresh tab, with no error anywhere.

The second hard number is a ceiling: Cascade reaches at most 100 tools at once, and every enabled server spends from it. That matters here specifically, because the office-suite bundle in this repository exposes every child server's tools through one connection. One tools/list against a built v0.20.0 bundle on 2026-09-07 returned 292 tools from 31 child servers. In Windsurf that one entry is nearly three times the ceiling on its own. Install the two or three servers you actually use.

{
  "mcpServers": {
    "invoice": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/Users/you/mcp-servers/servers/invoice/dist/index.js"]
    }
  }
}

Windsurf also documents an install deeplink of its own, windsurf://windsurf-mcp-registry?serverName=<server-name>.

Cline: type selects the transport, and omitting it picks the old one

Cline is the one client here with an unsafe transport default. type selects the transport, and leaving it out falls back to the legacy SSE transport. Point a streamable HTTP endpoint at it without type and you will spend an afternoon debugging a server that is fine.

{
  "mcpServers": {
    "invoice": {
      "type": "streamableHttp",
      "url": "https://mcp.zovo.one/mcp/invoice/t/YOUR_TOKEN"
    }
  }
}

For a local server, ~/.cline/mcp.json for the CLI. The editor extension keeps its settings JSON reachable from the panel rather than by path: the MCP Servers icon in the top toolbar, the Configure tab, then Configure MCP Servers near the bottom. From a terminal, cline mcp opens an interactive wizard and cline config mcp --json reads or writes the same thing non-interactively.

Local entries also carry disabled and an autoApprove array. The second one is worth setting deliberately: it decides which tools run without asking you first.

No full-app restart in Cline. The MCP settings actions include restarting an unresponsive server if its tools do not appear.

Where the URLs come from

mcp/connect mints a free anonymous token and prints a ready URL per server, token already in the path. Free terms are stated there: 600 calls an hour, free-tier server limits, and a data space kept 30 days and refreshed for another 30 on every write.

Client facts on this page were read off each client's own documentation on 2026-09-02 and are recorded with their source URLs in billing/src/setup.js. Per-server pages are under setup/windsurf and setup/cline.

Questions

Which Windsurf agent am I in?

New tabs default to the Devin Local agent, and Cascade is the legacy one that reads mcp_config.json. If the file is correct and the tools are absent in a fresh tab, that is the first thing to check rather than the last.

How do I stay under Windsurf's 100-tool ceiling?

Count what you have enabled. The servers in this repository run from 6 tools on per-diem and asset-register to 15 on kanban, counted in data/tools.json, so three or four servers is comfortable and the 292-tool office-suite bundle is not.

What is autoApprove for?

A per-server list of tool names Cline may call without asking. Read-only tools are reasonable candidates. Anything that writes a file, issues a document or spends a free-tier slot is worth leaving off it, because the point of the prompt is that you see the call before it happens.

Does Cline support stdio servers?

Yes, with command and args like every other client, and an env object next to command. type matters most for remote servers, where the fallback to legacy SSE is what bites.

Related

All MCP servers and prices · All guides · Buy the bundle $39