Fermi is Kromatic’s estimation MCP server. Ask it a quantitative question in plain language and it returns a calibrated probability distribution — an interval, a point estimate, the distribution family and its parameters, and the reasoning and assumptions behind them.
Getting started is one HTTP call: POST /api/v1/accounts returns an API key, which you pass as an X-API-Key header (REST) or as an api_key tool argument (MCP). Then point an MCP client at the Streamable HTTP transport at https://fermi.kromatic.com/mcp.
Fermi serves its own machine-readable discovery documents — server.json, /.well-known/mcp.json, llms.txt and agents.md — from https://fermi.kromatic.com. They are the canonical source for machine clients; this page is the human-readable version.
Fermi turns a natural-language question into a quantitative estimate with an explicit uncertainty range, so an agent can reason about a number instead of inventing one. Use it when you need a defensible order-of-magnitude answer — market sizes, adoption rates, cost or duration ranges — together with the assumptions that produced it.
Fermi estimates a distribution, not a fact. It is not a lookup service for values that can simply be measured, and it does not replace your own judgement about whether the framing of a question is sound. Every estimate is returned with a disclaimer, and you must acknowledge it on the request.
MCP-native clients connect to the Streamable HTTP transport at:
https://fermi.kromatic.com/mcpTwo other transports are available for clients that need them: a Server-Sent Events transport at https://fermi.kromatic.com/mcp/sse/ (messages are posted to https://fermi.kromatic.com/mcp/sse/messages/), and a plain HTTP mirror of the tool surface at https://fermi.kromatic.com/mcp/tools for listing and https://fermi.kromatic.com/mcp/tools/estimate for calling. Prefer Streamable HTTP unless your client only speaks SSE.
Fermi authenticates with an account API key. Create an account with a single unauthenticated POST — no body, no browser, no human approval:
curl -X POST https://fermi.kromatic.com/api/v1/accountsThe 201 response carries account_id, api_key and created_at. The key is shown once — Fermi stores only a hash of it — so save it when you receive it.
X-API-Key header on REST calls, or as the api_key argument on an MCP tool call. Do not put a raw API key in Authorization: Bearer — that header is reserved for opaque tokens, and a raw key sent there is rejected with a 401.The Streamable HTTP transport also accepts opaque bearer tokens prefixed fmi_oat_ (access) or fmi_pat_ (personal access), minted by POST /api/v1/tokens and shown in plaintext exactly once. Token minting is gated, so ask us via the contact form if your integration needs one; the API-key path above is the supported route for most agents.
Sending no credentials at all is allowed for a small trial allowance, rate-limited per client. It exists so you can try one call before signing up, not as a way to run an integration — create an account for anything beyond a first look.
| Tool | Description |
|---|---|
estimate | Return a calibrated probability distribution for a natural-language question. Takes the question, the unit the answer should be expressed in, a target_horizon, and disclaimer_acknowledged: true; optionally a requested_tier_id, free-text context, a coverage_probability (default 0.9) and source_inputs. |
feedback | Send feedback, a feature request or a bug report to the Fermi team. Takes a feedback_type, a message and a sender_email. |
buy_credits | Buy additional credits off-session with a payment method already saved on the account. Takes the number of credits and your api_key. |
The live tool descriptors, including the full argument schemas, are served by Fermi itself at https://fermi.kromatic.com/mcp/tools. Treat that endpoint as authoritative if it ever disagrees with this table.
The same estimate over the REST surface, which is the easiest way to see the response shape before wiring up an MCP client:
curl -X POST https://fermi.kromatic.com/api/v1/estimates \
-H "X-API-Key: <your api_key>" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"question": "What will the price of Bitcoin be in 6 months?",
"requested_tier_id": 1,
"unit": "USD",
"target_horizon": "6 months",
"disclaimer_acknowledged": true
}'The response carries the estimation_interval (its low and high) at the requested coverage_probability, a point_estimate, the distribution_family and its distribution_parameters, a reasoning_summary, the list of assumptions, and the credits_charged for the call.
Idempotency-Key is required on POST /api/v1/estimates. Reusing the same key returns the original estimate instead of spending credits twice on a retry.
Any MCP client that can reach a Streamable HTTP transport works: point it at https://fermi.kromatic.com/mcp and pass your key as the api_key argument on each tool call. On the SSE transport there are no per-call headers at all, so the api_key argument is the only way to authenticate there.
Fermi is a paid, per-credit product. A new account starts with a small grant of free credits so you can try it immediately, and each estimate spends credits according to the tier you request — a deeper tier costs more than a quick one. A Kromatic membership does not include Fermi access or a discount; the two are priced separately.
The current price per credit is published by the service itself at https://fermi.kromatic.com/api/v1/billing/pricing, so it is always the live number rather than a figure copied onto this page. Once your starter credits run out you can buy more against a saved payment method, or reach us through the contact form to talk about a higher-volume arrangement.
Fermi runs warm: at least one machine stays up, so requests are served without a cold start. An estimate call still takes as long as the underlying model needs to reason — expect seconds, not milliseconds, and set your client timeout accordingly.
Questions? Reach out via our contact form.

