MCP gateway
Every MCP server your agents use, behind one endpoint.
Register a server once with its token. Every agent adds one MCP endpoint on its own API key and gets all the tools, filtered by allowlists and the key’s tool policy, with every call logged.
Live
- Endpoint
- /mcp/org
- Servers per organization
- up to 20
- Tool names
- server__tool
- Web search in a request
- $0.01 a search
- Web fetch in a request
- $0.001 a fetch
- Code sandbox in a request
- $0.05 a container-hour, 1-minute minimum
- Remote MCP in a request
- no fee, tokens only
What it does for an agent
- One endpoint per agent
- Claude Code, OpenCode, Hermes Agent or any MCP client adds one URL and one header.
- Tokens stored once
- Server headers are sealed at rest and never returned; GET /v1/mcp-servers shows only their names.
- Allowlists and tool policy
- Limit a server’s tools for everyone, and each agent’s through its key’s deny and allow lists.
- A call log
- Time, server, tool, status and latency for every call; arguments only for keys that keep bodies.
- Revoke in one place
- Revoke an agent’s key and it loses every tool behind the gateway at the same moment.
- Safe by address
- Public https only, checked before every call, redirects never followed.
Copy, paste, run
Register once with an admin key, then point each agent at the endpoint.
curl: register a server
bash
1
# Register a server once (admin key). Its tools appear as tickets__<tool>.2
curl https://api.relayswitch.io/v1/mcp-servers \3
-H "Authorization: Bearer $ADMIN_KEY" -H "Content-Type: application/json" \4
-d '{5
"name": "tickets",6
"url": "https://mcp.example.com/mcp",7
"headers": {"Authorization": "Bearer TICKETS_TOKEN"},8
"tool_allowlist": ["search_tickets", "get_ticket"]9
}'Claude Code
bash
1
claude mcp add --transport http relayswitch https://api.relayswitch.io/mcp/org \2
--header "Authorization: Bearer $RELAYSWITCH_API_KEY"OpenCode
json
1
// opencode.json2
{3
"$schema": "https://opencode.ai/config.json",4
"mcp": {5
"relayswitch": {6
"type": "remote",7
"url": "https://api.relayswitch.io/mcp/org",8
"enabled": true,9
"headers": { "Authorization": "Bearer {env:RELAYSWITCH_API_KEY}" }10
}11
}12
}Hermes Agent
yaml
1
# ~/.hermes/config.yaml2
mcp_servers:3
relayswitch:4
url: "https://api.relayswitch.io/mcp/org"5
headers:6
Authorization: "Bearer sk-relay-..."curl: list tools, read the log
bash
1
curl https://api.relayswitch.io/mcp/org \2
-H "Authorization: Bearer $RELAYSWITCH_API_KEY" \3
-H "Content-Type: application/json" \4
-H "Accept: application/json, text/event-stream" \5
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'6
7
# Recent calls: server, tool, status, latency (admin key).8
curl "https://api.relayswitch.io/v1/mcp-servers/calls?limit=20" -H "Authorization: Bearer $ADMIN_KEY"The MCP endpoints
| Endpoint | What it does | Key |
|---|---|---|
POST /mcp/org | Your registered servers’ tools, as server__tool | API key |
/v1/mcp-servers | Register, list, change and remove servers | Admin key |
GET /v1/mcp-servers/calls | Recent tool calls with status and latency | Admin key |
POST /mcp | list_models, list_media_models, estimate, proof and chat | None, or an API key for chat |
Agent setup guides
FAQs
Questions
For agent builders.
One MCP endpoint for every agent
Register your servers, hand each agent its key, read every call in one log.