ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Introduction
Getting Started
    Develop using the Portal
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingMCP - Quick start
    Develop Locally
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth
Concepts
Development
Policies
Handlers
API Keys
MCP Server
MCP Gateway
    IntroductionBetaQuickstartQuickstart (Local Dev)How it works
    Connect MCP clients
      OverviewClaude DesktopClaude CodeChatGPTCursorVS CodeOther clientsTest clients
    Authentication
    Configuration
    Observability
    ReferenceTroubleshooting
AI Gateway
Developer Portal
Monetization
Deploying & Source Control
Observability
Networking & Infrastructure
Account Management
Programming API
Build with AI
Zuplo CLI
Migration Guides
Platform LimitsSecuritySupportTrust & ComplianceChangelog
powered by Zudoku
Connect MCP clients

Connect MCP clients

The Zuplo MCP Gateway exposes each MCP route at a stable HTTPS URL that any modern MCP client can connect to. Clients speak the Streamable HTTP transport, complete an OAuth flow on first use, and then call tools, read resources, and run prompts through the gateway just as they would against any other remote MCP server.

This page covers the connection model and links to a step-by-step guide for each of the major clients.

The MCP route URL

Each MCP route in config/routes.oas.json is reachable at:

Code
https://{deploymentUrl}/{routePath}

The {deploymentUrl} is your project's deployment URL — for example acme-mcp-main-abc123.d2.zuplo.dev for a default Zuplo deployment, or a custom domain you configure for the project. The {routePath} is the path you set on the route in routes.oas.json. A typical convention is /mcp/<provider>-v<n>, so a Linear route looks like https://acme-mcp-main-abc123.d2.zuplo.dev/mcp/linear-v1.

For local development with zuplo dev, the URL is http://127.0.0.1:9000/{routePath} — for example http://127.0.0.1:9000/mcp/linear-v1. See Local development.

Transport

The gateway uses the Streamable HTTP transport defined in the MCP specification. Clients POST JSON-RPC requests to the MCP route URL. The gateway does not currently accept GET requests for server-sent event streams — it returns 405 Method Not Allowed — so configure your client to use Streamable HTTP, not the older two-endpoint HTTP+SSE transport.

For more on transports, see the MCP transports specification.

What happens on first connect

The first time a user connects, the gateway runs two distinct OAuth handshakes before any tool call reaches an upstream MCP server.

  1. Discovery. The client POSTs an MCP request to the route URL without an Authorization header. The gateway responds with 401 Unauthorized and a WWW-Authenticate header that points at the gateway's Protected Resource Metadata document (RFC 9728).
  2. Gateway login. The client opens the gateway's authorization endpoint in a browser. The gateway redirects the user to your identity provider — Auth0, Okta, Entra, Google, Cognito, or any of the other supported IdPs — to sign in. After login, the gateway issues an access token bound to the route URL and returns it to the client through the standard OAuth 2.1 Authorization Code with PKCE flow.
  3. Upstream consent. If the route's upstream MCP server requires per-user OAuth (Linear, Notion, Stripe, GitHub, and so on), the gateway shows a consent page with a Connect button for the upstream. Clicking Connect opens the upstream provider's OAuth flow in the same browser. Once the upstream is connected, the user clicks Authorize and the gateway returns the access token to the client.

After the first connect, subsequent requests reuse the issued access token and the stored upstream credentials. Tokens refresh automatically. If the gateway needs the user to re-consent to an upstream — for example, when an upstream provider revokes the gateway's credentials — the client receives a JSON-RPC error with a URL to open in the browser to complete re-consent.

For the full authentication model, see Authentication overview.

Client compatibility

The table below summarizes which MCP spec features each major client supports today. All clients listed here support remote Streamable HTTP and work with the Zuplo MCP Gateway.

ClientToolsPromptsResourcesRootsSamplingElicitationDCRCIMDApps
Claude Desktopyesyesyesyes––yes–yes
Claude.ai (web)yesyesyes–––yesyesyes
Claude Codeyesyesyesyes–yesyes––
ChatGPTyes–––––yesyesyes
Cursoryesyes–yes–yesyes–yes
VS Code (GitHub Copilot)yesyesyesyesyesyesyesyesyes
Windsurf (Cascade)yes–––––yes––
Gooseyesyesyesyesyesyesyes–yes
Gemini CLIyesyes––––yes––
GitHub Copilot CLIyes–––yesyesyes––
Postmanyesyesyes–yesyes––yes
MCPJamyesyesyes––yesyesyesyes
Continueyesyesyes–––––yes
LibreChatyes–––––yes––
JetBrains AI Assistantyes––––––––

Capability data is sourced from the official MCP clients page. Clients ship new features frequently; check the client's own documentation for the latest support status.

The gateway exposes whatever capabilities the upstream MCP servers expose. If an upstream server only ships tools, a client that supports resources won't see anything in resources/list for that server. The compatibility matrix above tracks what each client can consume, not what the gateway forwards.

Per-client guides

  • Claude Desktop — add via claude_desktop_config.json.
  • Claude Code — add via the claude mcp add CLI command.
  • ChatGPT — add via Settings → Connectors (Developer Mode required).
  • Cursor — add via .cursor/mcp.json or the one-click install link.
  • VS Code — add via .vscode/mcp.json or the code --add-mcp CLI command.
  • Other clients — Windsurf, Goose, Gemini CLI, GitHub Copilot CLI, Postman, MCPJam, Continue, LibreChat, JetBrains AI Assistant.

Related

  • How the MCP Gateway works
  • Authentication overview
  • Configuring the MCP Gateway with code
Edit this page
Last modified on May 27, 2026
How it worksClaude Desktop
On this page
  • The MCP route URL
  • Transport
  • What happens on first connect
  • Client compatibility
  • Per-client guides
  • Related