{
  "name": "fermi",
  "description": "Calibrated probability estimates from natural-language questions.",
  "version": "0.1.0",
  "transport": {
    "streamable_http": {
      "url": "https://fermi.krobar.ai/mcp",
      "status": "live",
      "auth": "bearer",
      "note": "Real MCP Streamable-HTTP transport (recommended). Connect with the mcp Python SDK or any Streamable-HTTP client. Authenticate with an opaque bearer token: 'Authorization: Bearer fmi_pat_...' (or 'fmi_oat_...'). One header authenticates every tool call. Mint a token via POST /api/v1/tokens."
    },
    "sse": {
      "url": "https://fermi.krobar.ai/mcp/sse/",
      "messages_url": "https://fermi.krobar.ai/mcp/sse/messages/",
      "status": "live",
      "note": "Real MCP SSE-transport server. Connect with the mcp Python SDK or any MCP client. SSE tool calls don't carry per-call HTTP headers, so pass api_key as an argument to the estimate tool instead of a bearer."
    },
    "http": {
      "url": "https://fermi.krobar.ai/mcp/tools",
      "call_url": "https://fermi.krobar.ai/mcp/tools/estimate",
      "note": "HTTP adapter mirroring the MCP tool contract. For MCP-native clients, prefer the streamable_http transport above."
    }
  },
  "auth": {
    "type": "api_key",
    "header": "X-API-Key",
    "bearer_note": "The MCP Streamable-HTTP transport at /mcp additionally accepts opaque 'Authorization: Bearer fmi_pat_/fmi_oat_' tokens minted via POST /api/v1/tokens. Omitting credentials uses the anonymous tier unless the server rejects anonymous MCP calls.",
    "signup_url": "https://fermi.krobar.ai/api/v1/accounts",
    "note": "POST /api/v1/accounts with no body to create an account and receive an API key (3 starter credits).",
    "channel_attribution_note": "Directories/registries may tag the arrivals they send by passing an identifiable marker as the 'X-Fermi-Channel' header or a '?channel=' (alias '?ref=') query param on the first authenticated call. Optional; affects nothing about the response. Only authenticated arrivals are attributed."
  },
  "tools": [
    {
      "name": "estimate",
      "description": "Return a calibrated probability distribution for a natural-language question."
    },
    {
      "name": "feedback",
      "description": "Submit feedback, a feature request, or a bug report to the Fermi team."
    }
  ],
  "docs": {
    "quickstart": "https://fermi.krobar.ai/llms.txt",
    "full": "https://fermi.krobar.ai/agents.md",
    "openapi": "https://fermi.krobar.ai/openapi.json",
    "swagger": "https://fermi.krobar.ai/docs"
  }
}
