Exa MCP server in Windsurf give Cascade the live web.
One serverUrl entry in mcp_config.json and Windsurf's Cascade agent can search the web, crawl pages, and pull current code context through Exa.
Windsurf's Cascade agent plans multi-step edits well, but its knowledge of libraries and APIs ends at its training data. Exa (github.com/exa-labs/exa-mcp-server, 4.6k stars) closes that gap over MCP with fast, intelligent web search and crawling, plus a code-context search tool that fetches current documentation and examples — useful precisely when Cascade is writing against a dependency that changed last month.
Because Exa is a hosted remote server, Windsurf setup is a single JSON entry pointing at a URL. No local package, no command path, nothing for Windsurf to spawn.
Where Windsurf keeps MCP config
Windsurf reads MCP servers from a single global file: ~/.codeium/windsurf/mcp_config.json. There is no per-project variant — every server you add is available in every workspace. You can reach the file two ways: open Windsurf Settings > Cascade > MCP Servers and click Add Server, which manages the file for you, or edit it directly in any editor.
Before adding it, you can inspect Exa's probed tool list on its live Loomal listing at https://loomal.ai/marketplace/exa to see exactly which tools Cascade will gain.
The config
Exa exposes a hosted MCP endpoint, and Windsurf supports remote servers through the serverUrl field — no command or args needed. Get an API key from your Exa dashboard and add:
{
"mcpServers": {
"exa": {
"serverUrl": "https://mcp.exa.ai/mcp?exaApiKey=YOUR_EXA_API_KEY"
}
}
}Refresh and verify
Windsurf doesn't watch the file for changes. After saving, go back to Settings > Cascade > MCP Servers and hit the refresh control (or restart Windsurf outright). The Exa entry should turn green with a tool count next to it.
Then open a Cascade conversation and ask for something that requires fresh information — release notes, a current API signature, anything post-cutoff. You'll see Cascade propose an Exa tool call; results land in context and get cited in the response.
Troubleshooting in Windsurf
If the server shows red or zero tools after a refresh, start with the JSON itself — a trailing comma or a stray quote in mcp_config.json fails silently more often than it should. Next, verify the exaApiKey value: an invalid key connects at the transport level but can surface as missing tools or failing calls.
Two Windsurf-specific gotchas: first, the file lives under ~/.codeium/ (the Codeium directory), not under anything named windsurf in your home folder — people regularly create the wrong path and wonder why nothing loads. Second, Windsurf caps the number of active MCP tools across all servers; if you run several servers, an over-limit toolset can leave some tools unavailable, so disable servers you aren't using. When in doubt, a full quit-and-restart re-reads the configuration cleanly.
Why remote packaging matters here
Most MCP servers Windsurf users install are stdio processes spawned via npx, which drags in Node-version and PATH headaches. Exa's remote-only packaging avoids all of it — the most common failure class simply doesn't exist. If you pair Exa with heavier extraction tooling, browse the search category for servers that specialize in deep crawling and structured scraping.
FAQ
How do I install Exa in Windsurf?
Nothing installs locally. Open Windsurf Settings > Cascade > MCP Servers > Add Server, or add an exa entry with a serverUrl field to ~/.codeium/windsurf/mcp_config.json, then refresh the MCP server list. Windsurf connects to Exa's hosted endpoint over HTTPS.
Where is Windsurf's MCP config file?
At ~/.codeium/windsurf/mcp_config.json — note the .codeium parent directory. It's a single global file; Windsurf has no project-scoped MCP config, so servers you add are available in every workspace.
Exa doesn't appear in Cascade after setup — what now?
Validate the JSON syntax first, then confirm you refreshed the server list or restarted Windsurf, since the file isn't hot-reloaded. If the server connects but tools fail, the exaApiKey query parameter is the likely culprit. Also check you haven't exceeded Windsurf's active-tool limit across servers.
Does Exa cost anything to use this way?
The MCP server software is free and open source, but the hosted endpoint authenticates with an Exa API key, and Exa's own usage pricing applies to searches beyond any free allowance. Check Exa's docs for current rates.
Browse more MCP servers for Windsurf.
Live tool lists for every server, before you edit a config file.