Other Clients

MCPGate exposes a standard MCP Streamable HTTP endpoint at https://api.mcpgate.sh/mcp. OAuth-capable clients connect with just the URL; clients without OAuth support use a Bearer token header with your API key.

Tip

OAuth clients (VS Code Copilot, Continue) — paste https://api.mcpgate.sh/mcp and authenticate in your browser.
Non-OAuth clients (Windsurf) — use the same URL with an Authorization: Bearer mgw_YOUR_API_KEY header.

VS Code Copilot#

VS Code 1.99+ with GitHub Copilot supports MCP servers natively. Create a .vscode/mcp.json file in your project root:

.vscode/mcp.json
json
{
  "servers": {
    "mcpgate": {
      "url": "https://api.mcpgate.sh/mcp"
    }
  }
}

Note

Note the top-level key is "servers", not "mcpServers"— this is VS Code's own format. Copilot Business and Enterprise plans require an admin policy to enable MCP servers.

VS Code will prompt you to authenticate with MCPGate via OAuth the first time you use the server.

Windsurf#

Windsurf does not yet support OAuth for MCP servers. Use a Bearer token header with your MCPGate API key instead. Edit ~/.codeium/windsurf/mcp_config.json:

~/.codeium/windsurf/mcp_config.json
json
{
  "mcpServers": {
    "mcpgate": {
      "serverUrl": "https://api.mcpgate.sh/mcp",
      "headers": {
        "Authorization": "Bearer mgw_YOUR_API_KEY"
      }
    }
  }
}

Note

Windsurf uses serverUrl (not url) as the config key. Replace mgw_YOUR_API_KEY with your API key from the MCPGate dashboard.

Continue.dev#

Add MCPGate to your Continue config file at .continue/config.yaml:

.continue/config.yaml
yaml
mcpServers:
  - name: mcpgate
    type: streamable-http
    url: https://api.mcpgate.sh/mcp

Continue supports OAuth — it will prompt you to authenticate with MCPGate in your browser on first use.

Cody (Sourcegraph)#

Cody currently supports stdio transport only and cannot connect to remote HTTP MCP servers like MCPGate. Check the Cody documentation for updates on remote MCP support.

General Requirements#

Your client must support the MCP Streamable HTTP transport. Clients that only support stdio transport (local processes) cannot connect to MCPGate directly.

Connecting via the MCP TypeScript SDK#

If you are building a custom integration using the official MCP TypeScript SDK:

connect.ts
typescript
import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'

const client = new Client({ name: 'my-app', version: '1.0.0' }, {})

const transport = new StreamableHTTPClientTransport(
  new URL('https://api.mcpgate.sh/mcp'),
  {
    requestInit: {
      headers: { Authorization: 'Bearer mgw_YOUR_API_KEY' }
    }
  }
)

await client.connect(transport)

const tools = await client.listTools()
console.log(tools)

The same pattern works with the Python MCP SDK using the streamablehttp transport module.

Troubleshooting#

If your client cannot connect, verify that it is attempting to reach the endpoint over HTTPS (not HTTP) and that it sends a proper MCP initialize request. Some older clients implement an earlier version of the MCP transport spec and may need an update. Check the MCPGate Activity log — even failed connection attempts are recorded with error details.