Other Clients

MCPGate exposes a standard MCP Streamable HTTP endpoint at https://mcpgate.sh/mcp. All supported clients connect using OAuth — paste the URL and authenticate in your browser when prompted.

Tip

OAuth is the only supported authentication method. Paste https://mcpgate.sh/mcp into your client and complete the browser authorization flow to connect.

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://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#

Add MCPGate to your Windsurf config file at ~/.codeium/windsurf/mcp_config.json:

~/.codeium/windsurf/mcp_config.json
json
{
  "mcpServers": {
    "mcpgate": {
      "serverUrl": "https://mcpgate.sh/mcp"
    }
  }
}

Note

Windsurf uses serverUrl (not url) as the config key. After adding the entry, restart Windsurf and complete the OAuth flow when prompted.

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://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' }, {})

// MCPGate uses OAuth — the SDK will redirect to the authorization URL
// on the first request. Handle the 401 response to initiate the OAuth flow.
const transport = new StreamableHTTPClientTransport(
  new URL('https://mcpgate.sh/mcp')
)

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.