AI Clients

Windsurf

Windsurf reads MCP servers from its own config file. The entry is the same shape as Cursor's — only the path differs.

Add the server

Edit the Windsurf MCP config and add the remote server entry, then restart the editor.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-ads": {
      "url": "https://mcp-ads.com/mcp-slim"
    }
  }
}

Authorise

The first tool call opens a browser window for the one-time OAuth authorisation. You sign in on mcp-ads.com, approve the grant, and return to the editor; nothing about your ad accounts is stored in the config file.

  1. Restart Windsurf and check the server list

    Cascade reads the config at startup. Open the MCP panel in Cascade after restarting and confirm mcp-ads is listed with a tool count rather than an error.

  2. Trigger the sign-in

    Ask Cascade anything that needs a tool. The browser opens on mcp-ads.com; approve the grant and close the tab when told you can return.

  3. Verify it works

    The first real tool call should return the platforms connected in your MCP Ads dashboard and the accounts on each. An empty list means the server is reachable but nothing is connected yet.

    Try this first
    Using mcp-ads, list the platforms I have connected and
    the accounts on each.
Tip

If nothing happens on the first call, check the JSON is valid. A trailing comma is the usual culprit, and most editors will not warn you about it in a config file.

Troubleshooting

  • The server is not listed after a restart: the file is in the wrong place or is not valid JSON. The path is ~/.codeium/windsurf/mcp_config.json, and the codeium directory is hidden; on macOS use Cmd+Shift+G in the file dialog or open it from the terminal.
  • The OAuth window is blocked: Windsurf opens the system browser, and a popup blocker or a locked-down browser profile can swallow it. The authorisation URL is printed in Cascade's MCP output; open it manually in any browser.
  • "A server with this URL already exists": the same URL appears twice, usually under two different names after an edit. Keep one entry and restart.
  • The wrong config path was edited: Windsurf also has a settings UI for MCP that writes to the same file. If you edited a file under ~/.windsurf instead, Cascade will not see it; move the entry to the path above.

Go further

Common questions

Is the config identical to Cursor's?

The mcpServers object is the same shape. Only the file path differs — Windsurf uses ~/.codeium/windsurf/mcp_config.json.

Do I need a Windsurf paid plan?

MCP support depends on your Windsurf plan rather than on MCP Ads. If the editor does not read MCP servers at all, that is the thing to check first.

Does the grant carry over from Cursor or Claude?

No. Each client authorises separately in the browser, because each holds its own token. The MCP Ads account and the platform connections behind it are shared, so the second sign-in is quick and nothing has to be reconnected.

Ready to connect?

Start free, connect the platforms you use, and run your first workflow from Claude in minutes.