protogrid

Search / xyz.phase.ai/gateway

Phase Router

R1· needs a key

OpenAI-compatible LLM gateway: pay per request with an API key, signed receipt for each call.

v0.5.1 · active · website · descriptor JSON · versions

An agent can connect on its own if it already holds GATEWAY_TOKEN, X_PHASE_BYOK_ANTHROPIC, X_PHASE_BYOK_OPENAI.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality89good
Trust83of 100
Uptime, 30 days100%
Latency p50503 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "gateway": {
      "type": "http",
      "url": "https://mcp.ai.phase.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${GATEWAY_TOKEN}",
        "X-Phase-BYOK-Anthropic": "${X_PHASE_BYOK_ANTHROPIC}",
        "X-Phase-BYOK-OpenAI": "${X_PHASE_BYOK_OPENAI}"
      }
    }
  }
}
claude mcp add --transport http gateway https://mcp.ai.phase.xyz/mcp --header "Authorization: Bearer ${GATEWAY_TOKEN}" --header "X-Phase-BYOK-Anthropic: ${X_PHASE_BYOK_ANTHROPIC}" --header "X-Phase-BYOK-OpenAI: ${X_PHASE_BYOK_OPENAI}"
[mcp_servers.gateway]
url = "https://mcp.ai.phase.xyz/mcp"
bearer_token_env_var = "GATEWAY_TOKEN"
env_http_headers = { "X-Phase-BYOK-Anthropic" = "X_PHASE_BYOK_ANTHROPIC", "X-Phase-BYOK-OpenAI" = "X_PHASE_BYOK_OPENAI" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gateway": {
      "type": "remote",
      "url": "https://mcp.ai.phase.xyz/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:GATEWAY_TOKEN}",
        "X-Phase-BYOK-Anthropic": "{env:X_PHASE_BYOK_ANTHROPIC}",
        "X-Phase-BYOK-OpenAI": "{env:X_PHASE_BYOK_OPENAI}"
      }
    }
  }
}
{
  "mcpServers": {
    "gateway": {
      "type": "http",
      "url": "https://mcp.ai.phase.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${GATEWAY_TOKEN}",
        "X-Phase-BYOK-Anthropic": "${X_PHASE_BYOK_ANTHROPIC}",
        "X-Phase-BYOK-OpenAI": "${X_PHASE_BYOK_OPENAI}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=gateway&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmFpLnBoYXNlLnh5ei9tY3AiLCJoZWFkZXJzIjp7IkF1dGhvcml6YXRpb24iOiJCZWFyZXIgJHtHQVRFV0FZX1RPS0VOfSIsIlgtUGhhc2UtQllPSy1BbnRocm9waWMiOiIke1hfUEhBU0VfQllPS19BTlRIUk9QSUN9IiwiWC1QaGFzZS1CWU9LLU9wZW5BSSI6IiR7WF9QSEFTRV9CWU9LX09QRU5BSX0ifX0%3D"
}
{
  "servers": {
    "gateway": {
      "type": "http",
      "url": "https://mcp.ai.phase.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${GATEWAY_TOKEN}",
        "X-Phase-BYOK-Anthropic": "${X_PHASE_BYOK_ANTHROPIC}",
        "X-Phase-BYOK-OpenAI": "${X_PHASE_BYOK_OPENAI}"
      }
    }
  }
}
{
  "mcpServers": {
    "gateway": {
      "httpUrl": "https://mcp.ai.phase.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${GATEWAY_TOKEN}",
        "X-Phase-BYOK-Anthropic": "${X_PHASE_BYOK_ANTHROPIC}",
        "X-Phase-BYOK-OpenAI": "${X_PHASE_BYOK_OPENAI}"
      }
    }
  }
}
extensions:
  "gateway":
    enabled: true
    name: "gateway"
    type: streamable_http
    uri: "https://mcp.ai.phase.xyz/mcp"
    headers:
      "Authorization": "Bearer ${GATEWAY_TOKEN}"
      "X-Phase-BYOK-Anthropic": "${X_PHASE_BYOK_ANTHROPIC}"
      "X-Phase-BYOK-OpenAI": "${X_PHASE_BYOK_OPENAI}"
    timeout: 300

Placeholders to fill from your own secret store: ${GATEWAY_TOKEN}, ${X_PHASE_BYOK_ANTHROPIC}, ${X_PHASE_BYOK_OPENAI}. The registry never accepts secret values.

Quality 89 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene94 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations7 of 7 tools declare readOnlyHint or destructiveHint
  • warn
    tools.directory_hints3 of 7 tools declare all four hints; missing: receipt (destructiveHint); list_models (destructiveHint); quote (destructiveHint); …
  • pass
    tools.token_costabout 1,241 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stability83 · weight 15
  • warn
    stability.changes27 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
  • pass
    stability.new_linksno tool change named a new site
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 1,241 tokens to load them all · tool set 22769e82507f · tools last changed 2026-11-11 · checked 2026-11-14 06:30 UTC

Tool changes

  • sessionchangeddescription
    before

    Saved chat sessions on the Phase AI gateway: create one (returns an id and a shareable /s/<id> link), read its thread, list the wallet's sessions (wallet mode only: signed with the wallet key, no transaction), or delete one. Pass the id as `session` to chat and the gateway carries the context between turns and visits.

    after · 95% of words in common

    Saved chat sessions on Phase Router: create one (returns an id and a shareable /s/<id> link), read its thread, list the wallet's sessions (wallet mode only: signed with the wallet key, no transaction), or delete one. Pass the id as `session` to chat and the gateway carries the context between turns and visits.

  • list_modelschangeddescription
    before

    List models of the Phase AI gateway with prices (USD per 1M tokens, fee per call) and layer (flagship | open | class | free).

    after · 82% of words in common

    List models of Phase Router with prices (USD per 1M tokens, fee per call) and layer (flagship | open | class | free).

  • embedchangeddescription
    before

    Compute embeddings on the Phase AI gateway (paid from the Phase API key or the wallet).

    after · 79% of words in common

    Compute embeddings on Phase Router (paid from the Phase API key or the wallet).

  • chatchangeddescription
    before

    Run a chat completion on the Phase AI gateway, paid from the Phase API key or the wallet this server uses (free models cost nothing). Returns the answer, actual price, task id for the receipt and usage.

    after · 91% of words in common

    Run a chat completion on Phase Router, paid from the Phase API key or the wallet this server uses (free models cost nothing). Returns the answer, actual price, task id for the receipt and usage.

  • list_modelschangedoutput schema
  • usageremoved

    Spend and savings of the Fermat API key over the last N days (1 to 90, default 7): totals, per day and per model when the gateway has the history (source usage), otherwise the key's totals (source key). Key mode only.

  • route_explainremoved

    Explain one Fermat request from its public receipt: the model or class it named, the complexity level, the model and provider that served it, the price, the price of the class baseline model and the saving in percent, and the providers tried.

  • compareremoved

    Run one prompt on 2 to 4 Fermat models or classes at once and compare answer, price, tokens and speed; returns the cheapest, the most expensive and how many times more the expensive one cost. Spends credit for each model. Default models: the cheapest paid chat model, auto, and the most expensive open chat model.

  • docsremoved

    Fermat documentation in short: connect, pricing (with the live price table), savings, mcp, byok, data, receipts, limits.

  • sessionchangeddescription
    before

    Saved chat sessions on the Fermat gateway: create one (returns an id and a shareable /s/<id> link), read its thread, list the wallet's sessions (wallet mode only: signed with the wallet key, no transaction), or delete one. Pass the id as `session` to chat and the gateway carries the context between turns and visits.

    after · 93% of words in common

    Saved chat sessions on the Phase AI gateway: create one (returns an id and a shareable /s/<id> link), read its thread, list the wallet's sessions (wallet mode only: signed with the wallet key, no transaction), or delete one. Pass the id as `session` to chat and the gateway carries the context between turns and visits.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-4d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.ai.phase.xyz/mcp streamable-httpapi_key ${GATEWAY_TOKEN}yes100%503 ms2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-052026-11-14

Tools (7)

chatdestructiveRun a chat completion on Phase Router, paid from the Phase API key or the wallet this server uses (free models cost nothing). Returns the answer, actual price, task id for the receipt and usage.
embeddestructiveCompute embeddings on Phase Router (paid from the Phase API key or the wallet).
keyread-onlyBalance, daily cap and spend of the Phase API key this server pays with (key mode).
list_modelsread-onlyList models of Phase Router with prices (USD per 1M tokens, fee per call) and layer (flagship | open | class | free).
quoteread-onlyGet the price ceiling for a chat request without paying (the gateway's 402 quote).
receiptread-onlyFetch the public receipt of a paid request by task id (model, provider, tokens, price, settlement tx, request/response hashes, signatures) and its Merkle proof once the weekly epoch is closed.
sessiondestructiveSaved chat sessions on Phase Router: create one (returns an id and a shareable /s/<id> link), read its thread, list the wallet's sessions (wallet mode only: signed with the wallet key, no transaction), or delete one. Pass the id as `session` to chat and the gateway carries the context between turns and visits.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "xyz.phase.ai/gateway",
  "title": "Phase Router",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.ai.phase.xyz/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Phase API key as 'Bearer phk_...'"
        },
        {
          "name": "X-Phase-BYOK-Anthropic",
          "isSecret": true,
          "description": "Optional: your Anthropic API key, for Claude models"
        },
        {
          "name": "X-Phase-BYOK-OpenAI",
          "isSecret": true,
          "description": "Optional: your OpenAI API key, for GPT models"
        }
      ]
    }
  ],
  "version": "0.5.1",
  "websiteUrl": "https://router.phase.xyz",
  "description": "OpenAI-compatible LLM gateway: pay per request with an API key, signed receipt for each call."
}