Quick Start
Serverless (no client)

Serverless — no client at all

If your agent runs somewhere that cannot host a long-lived process — a Lambda, a Cloud Run request, an edge worker, a hosted agent platform you do not control — point your MCP client straight at our gateway and send your API key as a Bearer token. There is nothing to install.

{
  "mcpServers": {
    "route6": {
      "type": "http",
      "url": "https://gw.route6.me/mcp",
      "headers": { "Authorization": "Bearer sk_a6_your_key_here" }
    }
  }
}

That is the whole setup.

⚠️

Know what you give up. This method is outbound only. Your agent can call every tool, and its web traffic still leaves from its own public address — but nothing can reach it. Port forwards, webhooks, a public hostname that answers, and the private team mesh all need a client running somewhere. If you need any of those, use the binary or the container.

What you get

The full tool surface

All 23 tools are listed on this endpoint; which ones you may call is decided by your plan, exactly as on every other method. Free tier: 7. Agent: 17. Team: all 23.

Your own IPv6 identity on outbound traffic

Tool calls that reach the internet — web_fetch, web_search, scrape, net { action: "ping" } — leave from the address that belongs to your agent, not from a shared pool:

web_fetch https://api64.ipify.org  →  2001:67c:3f4:8021::1   ← your agent's own address
web_fetch https://api.ipify.org    →  176.123.57.135          ← shared NAT64 pool

IPv6 is yours. IPv4 destinations are reached through NAT64 from a shared address unless you add the Static IPv4 add-on (opens in a new tab), which gives you a dedicated one.

No state to manage

There is no session to keep alive, no key on disk, no process to supervise. The Bearer token is the whole identity.

Working with the endpoint directly

If your platform has no MCP client and you are speaking the protocol yourself, it is ordinary Streamable HTTP MCP. Initialize, keep the session id, then call tools:

# 1. initialize — the response carries an mcp-session-id header
curl -sS -X POST https://gw.route6.me/mcp \
  -H "Authorization: Bearer sk_a6_your_key_here" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -D headers.txt \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
        "protocolVersion":"2025-06-18","capabilities":{},
        "clientInfo":{"name":"my-agent","version":"1.0"}}}'
 
SESSION=$(grep -i '^mcp-session-id:' headers.txt | tr -d '\r' | cut -d' ' -f2)
 
# 2. tell the server you are ready
curl -sS -X POST https://gw.route6.me/mcp \
  -H "Authorization: Bearer sk_a6_your_key_here" \
  -H "mcp-session-id: $SESSION" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'
 
# 3. call a tool
curl -sS -X POST https://gw.route6.me/mcp \
  -H "Authorization: Bearer sk_a6_your_key_here" \
  -H "mcp-session-id: $SESSION" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"identity","arguments":{}}}'

Responses come back as text/event-stream, one data: line per message, even for a single reply — that is the transport, not a streaming tool.

Sessions are held in memory on the gateway. A gateway restart invalidates yours and the next call answers 404. Treat that as "re-initialize", not as an error — any MCP client worth using does this for you. Do not cache a session id across a cold start.

Limits worth knowing before you build on it

  • Nothing inbound. No port_forward { action: "create" }, no webhook delivery, no mesh. The tools are listed, and they will fail without a client to deliver traffic to. This is the one real difference between this method and the others.
  • Your key travels on every request. It is your agent's whole identity, so treat it like any other production credential: environment or secret store, never in source. Anyone holding it acts as your agent.
  • One key, one agent. If you run several agents, give each one its own key — the identity, the bandwidth accounting and the audit trail all follow the key.

Moving off it later

Nothing to migrate. Install the binary on any machine, give it the same key, and that agent keeps its address, its hostname and its history — and gains everything inbound. The connection method is not a plan and not a one-way door.