Connecting MCP Servers

Add remote MCP servers to your gateway and access all their tools through a single endpoint.

Overview

MCP Gateway Pro connects to remote MCP servers that support SSE (Server-Sent Events) or Streamable HTTP transport. Each server you add becomes available through your gateway, with tools automatically namespaced to prevent conflicts.

Note: The gateway connects to servers on your behalf, so you'll need to provide authentication tokens for servers that require them.

Where a server can be: at a public address, or at a private address in your VPC. Link-local addresses (169.254.0.0/16, which includes the instance metadata service) are never reachable. Two kinds of server are refused until an operator allows them on the instance with sudo appxenctl allow-upstream <name>: a server on the appliance itself (a loopback address, or a container on its own Docker networks) and a server behind a single-label host name (one without a dot). See Register MCP servers in the Platform docs.

Adding a Server

Navigate to MCP Gateway → Gateway in the console and click "Add Server" in the Custom Servers section. You'll need to provide:

  • Alias — A short name used to namespace tools (e.g., github)
  • URL — The server's endpoint URL
  • Transport — SSE or Streamable HTTP, as the server documents it (the servers below use Streamable HTTP)
  • Token — Authentication token (if required by the server)

Popular MCP Servers

GitHub Copilot MCP

Alias: github
URL: https://api.githubcopilot.com/mcp/
Token: ghp_your_personal_access_token

Create a Personal Access Token with the scopes you need (e.g., repo, read:user).

Neon Database

Alias: neon
URL: https://mcp.neon.tech/mcp
Token: your_neon_api_key

Get your API key from the Neon Console.

Supabase

Alias: supabase
URL: https://mcp.supabase.com/mcp
Token: your_supabase_access_token

Generate an access token in your Supabase project settings.

Zapier

Alias: zapier
URL: https://mcp.zapier.com/api/mcp/mcp
Token: your_zapier_api_key

Get your API key from Zapier Actions.

Tool Namespacing

When you connect multiple servers, tools are automatically namespaced using the server alias to prevent naming conflicts:

# Original tool name from GitHub server
get_me

# Namespaced tool name in gateway
github__get_me

# Calling the tool
{
  "method": "tools/call",
  "params": {
    "name": "github__get_me",
    "arguments": {}
  }
}

This allows you to connect multiple servers that might have tools with the same name (e.g., both GitHub and GitLab might have a list_repos tool).