Add a Remote MCP Server to Windsurf, Cline, or Zed
To add an MCP server to Windsurf, edit mcp_config.json and add an entry under mcpServers. Use command and args for a local process, or serverUrl and headers for a remote server. Cline and Zed follow the same two-shape pattern with different file and field names, so this guide covers all three.
Step by step
- Open your editor's MCP config file. Windsurf: ~/.codeium/windsurf/mcp_config.json. Cline: cline_mcp_settings.json under the extension's global storage, or ~/.cline/mcp.json for the CLI. Zed: settings.json, under a context_servers key.
- Add the mcpifex entry. Add a remote-server block with https://mcpifex.com/mcp as the URL and an Authorization: Bearer header. Windsurf uses serverUrl, Cline uses type streamableHttp plus url, and Zed uses url plus headers.
- Generate an API key. Create an instance of a catalog server in the MCPifex portal, choose which tools are enabled, and generate an API key to paste in place of
. - Reload and verify. Save the file and reload the editor. Check its MCP status screen for a connected server with a nonzero tool count before asking the agent to use it.
Add a remote server to Windsurf
Say you have an API key for a hosted MCP server. Add this to ~/.codeium/windsurf/mcp_config.json (on Windows, %USERPROFILE%\.codeium\windsurf\mcp_config.json):
{
"mcpServers": {
"mcpifex": {
"serverUrl": "https://mcpifex.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_MCPX_KEY>"
}
}
}
}
You can also open the file from the UI: the MCPs icon in Cascade's panel, or Settings → Cascade → MCP Servers. The "View raw config" link goes to the same file. A local server uses command, args and an optional env block instead:
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-example"],
"env": {
"REQUIRED_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Windsurf accepts ${env:VAR_NAME} and ${file:/path} inside serverUrl, args, env and headers, so you don't have to hardcode a secret. Cascade also caps itself at 100 tools across all connected servers.
As of September 2026, Windsurf's MCP docs have moved. The old docs.windsurf.com/windsurf/cascade/mcp address redirects to docs.devin.ai/desktop/cascade/mcp, so bookmark the new one.
Add a remote server to Cline
Cline is a VS Code extension. Its config lives in the extension's global storage, at .../Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json. That path sits under Library/Application Support on macOS, %APPDATA% on Windows and ~/.config on Linux. The Cline CLI reads ~/.cline/mcp.json instead.
The easy way in is the MCP Servers icon in Cline's panel. Its Configure tab opens the file, and its Remote Servers tab adds a name and URL without editing JSON. A remote entry by hand looks like this:
{
"mcpServers": {
"mcpifex": {
"type": "streamableHttp",
"url": "https://mcpifex.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_MCPX_KEY>"
}
}
}
}
Don't leave out type. With a bare url, Cline falls back to the legacy SSE transport. That isn't an error, so a server that expects Streamable HTTP just fails in confusing ways. Always set "type": "streamableHttp".
Add a remote server to Zed
Zed keeps MCP config in its main settings file, under a context_servers key. That file is ~/Library/Application Support/Zed/settings.json on macOS and ~/.config/zed/settings.json on Linux. Open it from Settings → AI → MCP Servers, or run agent: open settings file or zed: open settings file from the command palette.
{
"context_servers": {
"mcpifex": {
"url": "https://mcpifex.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_MCPX_KEY>"
}
}
}
}
A remote entry only needs url and headers. If you leave out the Authorization header entirely, Zed starts its own MCP OAuth flow instead. That is handy for servers that support OAuth, and unnecessary when you already have a bearer token.
Check that it connected
Save the file and reload the editor. Windsurf's Cascade panel and Zed's MCP Servers screen show a tool count for each connected server, and Cline's Configure tab shows the same. A nonzero count means the server is up. Then ask the agent to use one of the tools.
If it doesn't connect
- Nothing appears in Zed. Zed's key is
context_servers, notmcpServers. - Nothing appears in Windsurf. Use
serverUrlfor remote servers. Windsurf ignores a plainurlfor that job. - Cline connects but calls fail. Check that
typeisstreamableHttp, as above. - 401 from the server. The key is missing, mistyped or revoked. MCPifex keys start with
mcpx_. - Invalid JSON. A missing comma after the previous entry is the usual cause.
Use one URL for every editor
All three editors speak the Streamable HTTP transport that replaced the older HTTP+SSE approach. So the blocks above differ only in field names, and one remote MCP server URL works in all of them.
MCPifex gives you that URL. You create an instance of a catalog server, such as PostgreSQL, in the portal and choose which tools are enabled. Destructive tools start off. Then you generate a key and paste it in place of <YOUR_MCPX_KEY>. Nothing in your editor config holds a database password. Revoking the key in the portal stops new calls within about a minute.
See API keys and authentication for the key details, hosted vs. self-hosted MCP for the trade-off, and the guides for Cursor and Claude Code. Check plan limits before adding many instances, and register for free to get a key.
Sources
Ready to connect?
Host any MCP server behind one endpoint and control exactly what your agents can reach.