Data as of

mcp-proxy for Windsurf: Setup & Config

Windsurf: mcp-proxy bridges MCP transport mismatches between clients and servers.

What you can do with mcp-proxy in Windsurf

Pick it to bridge existing MCP transports and route named local servers without replacing their tools.

  • Expose a local stdio server for network clients.
  • Pass authentication headers or OAuth2 credentials to an upstream service.

Before you start: mcp-proxy in Windsurf

  • mcp-proxy installed using uv or pipx
  • uvx and the mcp-server-fetch package for this documented example
  • An MCP-compatible client

This README example exposes a local fetch stdio server through the proxy. Install mcp-proxy with uv tool install mcp-proxy or pipx install mcp-proxy first. The opposite mode takes an upstream URL; choose --transport=streamablehttp for a Streamable HTTP upstream.

mcp-proxy Windsurf configuration

  1. Choose Windsurf configuration scope

    For mcp-proxy, open macOS/Linux: ~/.codeium/windsurf/mcp_config.json Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json. Merge into mcpServers; remote endpoints use serverUrl.

  2. Add mcp-proxy to Windsurf

    Use the mcp-proxy entry below in mcpServers. Keep mcp-proxy's documented sse connection fields and your other Windsurf entries.

  3. Check mcp-proxy in Windsurf

    mcp-proxy: Refresh MCP in Windsurf settings and inspect Cascade’s tools.

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

JSON
{
  "mcpServers": {
    "mcp-proxy": {
      "serverUrl": "http://127.0.0.1:8080/sse"
    }
  }
}

Troubleshooting mcp-proxy in Windsurf

  • For mcp-proxy, Windsurf reads serverUrl (127.0.0.1:8080), not url. Refresh the connection and check the tools exposed to Cascade.
  • mcp-proxy: check sse connectivity to 127.0.0.1:8080 from Windsurf; a stdio command is not a replacement for this endpoint.
  • Transport mismatch: mcp-proxy's catalog lists stdio; the displayed Windsurf configuration uses sse.
  • Known limitation: Wrapped server executables and dependencies must be available separately.
  • Known limitation: The default container image does not include uv.
  • Known limitation: Named-server timeout and transportType fields are ignored.
  • General Windsurf troubleshooting lives in the /clients/windsurf guide.

mcp-proxy — details. Windsurf guide

Frequently asked questions

Windsurf reads mcp-proxy under mcpServers in ~/.codeium/windsurf/mcp_config.json on macOS/Linux; Windows uses %USERPROFILE%\.codeium\windsurf\mcp_config.json.

Windsurf's mcp-proxy example uses sse. The mcp-proxy catalog lists stdio; these instructions follow the stored configuration instead.

Windsurf connects mcp-proxy to 127.0.0.1:8080 using serverUrl.

Yes. Set --transport=streamablehttp when connecting to an upstream that uses that transport.

No. The README explicitly says uv is not included by default and shows how to extend the image.