MCP SERVERS

Connect agents to any tool

One URL to search thousands of tools. Automatic OAuth token management. Six server types. Your agents get the right tool at the right time — without bloating the context window.

MCP Gateway — Servers Dashboard

Servers list with live status, tool counts, and connection details

HOW IT WORKS

Everything you need to manage MCP servers

Six Server Types

Support for Remote (HTTP/SSE), NPX (Node.js), UVX (Python), Container (Docker/K8s), Generated (AI-created from API docs), and Bundle (curated collections). Connect to any MCP server regardless of how it's hosted.

MCP Servers Catalog — curated and community servers with one-click import

Credentials That Never Expire

The gateway keeps OAuth tokens alive indefinitely. A background service refreshes tokens before they expire — with intelligent retry, exponential backoff, and rate-limit awareness. Your agents authenticate once and stay connected forever. No human re-authentication, no stale tokens, no surprise auth failures.

mcpgateway-sdk
from mcpgateway_sdk import MCPGateway
gw = MCPGateway()
 
# Check health across all servers
health = await gw.servers.health_all()
 
for name, status in health.items():
print(name, status)
 
# → github healthy
# → office365 healthy
# → slack healthy
 
print(len(health), "servers checked")
# → 12 servers checked
AES-256-GCM encrypted · per-user isolation · auto-refresh

Deep Server Management

Drill into any server to see its tools, OAuth connections, sync status, and credential health. Enable or disable individual tools, search across tool schemas, and sync on-demand to pick up upstream changes.

Server detail view — tools, OAuth connections, and sync status

Search, Then Execute

The biggest problem in production AI: tool sprawl. Anthropic says tool accuracy degrades past 30 tools. Cursor hard-caps at 40. With 5 MCP servers averaging 30 tools each, you burn 55K+ tokens on tool definitions before the agent does any work. MCP Gateway solves this with progressive tool loading. Instead of dumping every tool into the context window, the agent gets two meta-tools: SEARCH_TOOLS and EXECUTE_TOOL. Search by intent, get back the top matches with name and schema, then execute the one you need. Thousands of tools, two context slots. Configurable top-K results, three gateway modes (LIST, SEARCH+EXECUTE, AUTO), and the threshold is a setting you control.

mcpgateway-sdk
# Step 1: Agent searches by intent
results = await gw.tools.search("send an email")
 
for tool in results:
print(tool.tool_name, tool.score, tool.server_name)
 
# → O365__send_email 0.96 office365
# → GMAIL__send_message 0.89 google
 
# Step 2: Agent picks the best match and executes
result = await gw.tools.execute(
"O365__send_email",
{"to": "team@acme.com"}
)
247 tools across 12 servers → 2 context slots

AI Server Generation

Paste an API docs URL or OpenAPI spec. The Deep Agent analyzes the API, generates tool definitions, and deploys a working virtual MCP server. Review and approve before it goes live.

mcpgateway-sdk
# Create a generated MCP server from API docs
server = await gw.servers.create(
name="stripe-api",
type="generated",
description="Stripe API server"
)
 
print(server.id, server.status)
# → 550e8400-... pending
 
# Sync tools once generation completes
diff = await gw.servers.sync_tools(server.id)
# → 18 tools synced
Deep Agent: analyze → enrich → deploy · 18 tools generated

One URL, Every Tool

Point any MCP client — Claude Desktop, Cursor, VS Code, Windsurf — at the unified gateway endpoint. One URL and one API key gives your agent access to every registered server.

mcpgateway-sdk
# Connect any agent to all your servers
gw = MCPGateway(
url="https://your-domain.com",
api_key="mgw_usr_..."
)
 
# List all available servers
servers = await gw.servers.list()
print(len(servers), "servers connected")
 
# → 12 servers connected
# → 247 tools available via one endpoint
One URL · one API key · every tool

CONTEXT ENGINEERING

The right tool, at the right time

Anthropic's research shows tool accuracy collapses past 30-50 tools. Speakeasy benchmarks show static tool loading becomes infeasible at 200+ tools. With SEARCH+EXECUTE mode, MCP Gateway replaces hundreds of tool definitions with two meta-tools — bringing only what the agent needs into context, on demand.

55K+~500

tokens for tool definitions

1502

tools in context window

2-3x1x

cost per response

Based on Anthropic, Speakeasy, and MCPVerse benchmarks (2025-2026)

PYTHON SDK

pip install mcpgateway-sdk

Every operation is a method call. Build integrations, automate workflows, or manage servers programmatically.

mcpgateway-sdk
server = await gw.servers.create(
name="github",
type="remote",
url="https://api.githubcopilot.com/mcp/"
)
 
print(server.id, server.status)
# → 550e8400-... pending
6 server types supported
mcpgateway-sdk
result = await gw.servers.sync_tools(server.id)
 
print(result)
# → {"synced": 42, "server_id": "550e..."}
 
tools = await gw.servers.list_tools(server.id)
print(len(tools)) # → 42
Auto-generates vector embeddings
mcpgateway-sdk
results = await gw.tools.search(
"create a pull request",
limit=3
)
 
for r in results:
print(r.tool_name, r.server_name, r.score)
 
# → create_pull_request github 0.97
# → create_merge_request gitlab 0.91
pgvector-powered semantic matching · 23ms
mcpgateway-sdk
server = await gw.servers.create(
name="stripe-api",
type="generated"
)
 
print(server.id) # → 550e8400-...
print(server.status) # → pending
Deep Agent pipeline: parse → enrich → deploy
mcpgateway-sdk
# Full workflow: search, pick, execute
results = await gw.tools.search("create a pull request")
best = results[0] # → GITHUB__create_pull_request (0.97)
 
result = await gw.tools.execute(
best.tool_name,
{
"title": "Fix auth bug",
"base": "main"
}
)
 
print(result.result) # → PR #42 created
Search → pick → execute · all via one gateway endpoint

Ready to connect your agents?

Deploy MCP Gateway and give every agent in your organization access to every tool.