Direct answer

Add an MCP Server to Windsurf

Open the Windsurf MCP config file at ~/.codeium/windsurf/mcp_config.json, add a zambo entry under mcpServers with serverUrl set to https://zambo.dev/mcp, save, and refresh the MCP panel in Cascade. Windsurf then has the server connected: 153 tools in total, 35 on the default surface, memory shared with your other AIs, and a verifiable receipt for every tool call. The field name is the part everyone gets wrong, so this page puts it first.

Want to see what you are adding first? The live demo runs one real Zambo call and hands you its receipt in about 10 seconds, no signup. The endpoint you will add is https://zambo.dev/mcp, and any receipt can be checked free at zambo.dev/verify.

Updated October 20, 2026.

Why add an MCP server to Windsurf at all

Windsurf and its Cascade agent are strong inside your project: reading files, writing code across them, and explaining what changed. The ceiling appears the moment a job needs something outside the workspace: a live price instead of a remembered one, an audit of a public page, a search for people asking for work, a fact saved so a different AI can recall it next week, or a record of a step that a client can check without trusting your summary. An MCP server is how Cascade reaches past that ceiling. MCP, the Model Context Protocol, is the shared wiring that lets clients like Windsurf present outside tools to the model as named, callable tools inside the session.

People arrive at this page from two directions. Some searched for how to add an MCP server to Windsurf generally and want any working pattern. Others know the server they want, Zambo, the verifiable work layer for AI, and need the exact file and fields. Both need the same warning up front, because it is the one that saves the most time: Windsurf uses the field name serverUrl for a remote server in its config file. Guides written for other editors use url, and a config pasted with the wrong field saves cleanly, looks right, and never connects. This page mirrors the verified Windsurf flow exactly: one file, one entry, one refresh, one checked first call.

The config snippet

Open the Windsurf MCP config file at ~/.codeium/windsurf/mcp_config.json in any editor. If the file does not exist yet, create it. Add this entry, keeping any servers you already have:

{
  "mcpServers": {
    "zambo": {
      "serverUrl": "https://zambo.dev/mcp"
    }
  }
}

Note the field name: Windsurf uses serverUrl for a remote server like this one, where many other clients use url. There is no command, args, or env block, because Zambo is hosted: Windsurf connects out to the endpoint, and no local process is launched, installed, or kept updated. The address itself is exactly https://zambo.dev/mcp, one URL and no API key. Save the file when the entry is in place, with valid JSON throughout, because one trailing comma anywhere in mcp_config.json can stop every server in the file from loading, including servers that worked before you edited it.

Step by step, from the Windsurf window

First, open the config file at the path above rather than hunting through settings screens: the file is the source of truth and editing it directly removes any doubt about which config you changed. Second, paste the zambo entry under mcpServers, alongside any existing servers, and save. Third, go back to Windsurf, open the Cascade panel, open the MCP settings, and refresh the server list. Windsurf reads the file when you refresh, so a saved file with no refresh is the second most common reason a correct config looks dead. Fourth, confirm zambo appears as a connected server, and open its tools view if the panel offers one: you should see the Zambo tools, 35 on the default surface out of 153 in total.

Fifth, run the first call below before real work. Sixth, if anything in that sequence fails, work the troubleshooting list in order rather than editing at random: path, then field name, then JSON validity, then refresh, then a window reload. Almost every broken Windsurf MCP setup is one of those five, and changing two things at once hides which one it was. Teams should also note the scope: this file is a user level config on your machine, so the entry applies to your Windsurf workspaces there and does not change a teammate setup until they add the same entry on theirs.

Verify the connection properly

Back in Windsurf, open the Cascade MCP panel after refreshing and look for zambo in the connected servers list, then open its tools view. Run one small call, for example asking Cascade to use Zambo to look up a current price or audit a web page you know well, and open the receipt link in the result. Paste that receipt ID into zambo.dev/verify and run the free check: a match confirms the saved result was not changed after the fact. That loop, call, receipt, verify, is the whole point of running work through Zambo, and it is also the only end to end proof that the connection works, beyond a hopeful green dot in a settings panel.

A connected server with no tools listed usually means the config was saved in the wrong file, so check the path first. If you later want the full catalogue in a session, the same entry with https://zambo.dev/mcp?full=true exposes all 153 tools instead of the 35 tool default surface. Keep the default for daily coding: Cascade is also holding your codebase context, and a leaner tool list leaves the model sharper attention for it. Open the full surface for audits, exploration, and wide runs where you do not yet know which tool the job needs.

Good first jobs inside Windsurf

Give Cascade jobs that cross the workspace boundary, because those are the jobs the connection exists for. Ask it to audit the public page your project deploys before it changes a line, and save the findings to memory so the next session starts from them. Ask it to verify a live figure behind a decision, a price, a status, a claim on a page, through a Zambo tool instead of from training memory, and keep the receipt next to the change. Ask it to package finished client work as a handover, one link with the goal, steps, outputs, and receipts, instead of a chat summary the client has to take on faith. Each job exercises a different part of what you just connected, and each leaves behind an asset, a saved fact, a checkable record, a deliverable link, that a closed editor session would not.

What the connection unlocks

One connection changes four things at once, and it helps to keep them separate, because people usually come for the first and stay for the other three. Tools: your AI stops being limited to conversation and can run real jobs, lookups, checks, audits, file and data work, lead finding, and more, through the 153 tools on the Zambo endpoint, with 35 loaded on the default surface so the session stays focused. Memory: facts you explicitly save with memory_remember are held on your Zambo account and come back with memory_recall, in this client and in any other AI connected to the same account, so a decision saved today is present next week without you retyping the backstory. Continuity: work state saved in one AI can be opened in another, so hitting a limit or changing tools mid job means continuing, not restarting. Receipts: each saved tool result is filed with a verifiable receipt in the AER-1 format, draft-zambo-aer1-24, and anyone can check it free at zambo.dev/verify with no signup.

The flagship on top of those four is handover: when a job is done, the goal, the steps in order, the outputs, and the receipts travel in one link that a client or teammate opens with no account and accepts or flags. Try the shape before you rely on it: run a job end to end at the live demo, open the record it produces, then follow a recorded day at zambo.dev/today. The endpoint itself, https://zambo.dev/mcp, is the same one URL for every client on this page and every sibling guide, which is the point: connect once per client, keep one account, and let the work, the memory, and the proof accumulate in one place instead of scattering across apps.

What it costs

You can start on the free tier, and checking a receipt is always free. For $0.99, a Day Pass covers 24 hours of full use, framed for this page as one full day of connected work where every job you run leaves a record you can show someone. Ongoing use is the Zambo Pass at $29 a month or $290 a year, and $19 a month for $ZAMBO holders; see pricing for the current tiers. Humans pay by PayPal or card through PayPal; agents pay USDC on Base through x402. Nothing about the connection itself costs anything: the config entry, the command, and the first verification call are all free to try.

Troubleshooting

Honest limits

Three edges, stated plainly. First, Windsurf reads this config at the user level, so the entry applies to your Windsurf workspaces on that machine; it does not change anyone else setup. Second, Zambo receipts prove the saved result of a tool call was not changed after the fact; they do not prove the result was correct, so read the output the way you would read any tool output, and let tests and review judge the code Cascade writes. Third, if Windsurf changes its config format in a future release, the entry may need its field names updated to match; the endpoint, your account, your saved memory, and your receipts are unaffected, because none of them live in the config file.

Frequently asked questions

How do I add an MCP server to Windsurf?

Open the Windsurf MCP config file at ~/.codeium/windsurf/mcp_config.json, add a zambo entry under mcpServers with serverUrl set to https://zambo.dev/mcp, save the file, and refresh the MCP panel in Cascade. Zambo then appears as a connected server with 153 tools in total and 35 on the default surface. The same pattern adds any remote MCP server to Windsurf; only the name and address change.

Why does the Windsurf config use serverUrl instead of url?

Windsurf uses the serverUrl field for remote MCP servers in its mcp_config.json file. Using url instead is the most common reason a pasted config saves cleanly but the server never connects. Keep the address itself exactly https://zambo.dev/mcp, and if you adapt a guide written for Cursor, Cline, or another client, translate the field name instead of pasting it unchanged.

How do I verify Zambo is connected in Windsurf?

Open the Cascade MCP panel after refreshing and look for zambo in the connected servers list, then open its tools view. Run one small call and open the receipt link in the result. Pasting that receipt ID into zambo.dev/verify and getting a match confirms the full path from Windsurf to a checkable record is working, from the config file through to the public record.

What do I get once Zambo is connected to Windsurf?

Cascade gains Zambo tools for prices, web checks, lead work, memory, handover, and more, and every tool call returns a public receipt page. Memory saved through Zambo is stored server-side, so context saved in Windsurf can be recalled later in Claude, Cursor, ChatGPT, or Grok when they are connected to the same Zambo account. Work state can also move between clients, so a job started in Windsurf can continue in another connected AI.

How much does Zambo cost in Windsurf?

You can start on the free tier, and checking a receipt is free. A Day Pass costs $0.99 one time for 24 hours of full use. The Zambo Pass is $29 a month or $290 a year, and $19 a month for $ZAMBO holders. Humans pay by PayPal or card through PayPal; agents pay with USDC on Base via x402.

Related