Skip to content
Official MCP RegistryListed

io.github.Kromatic-Innovation/fermi

Part offermiMCP server

Calibrated probability ranges for forecasting questions, with the assumptions behind them.

First seen 2 Oct 2026. Evidence as of 10 Nov 2026.

6
Tools
From an anonymous probe
1
Source listings
Each with its own history
34
Recorded changes
Since first seen

Tools

ToolDescriptionBehaviour
buy_creditsBuys Fermi credits by charging the card saved on your account, and returns the new balance. Use this when the user explicitly asks to buy or top up Fermi credits. Returns credits_purchased, new_balance and payment_status. If no card is saved yet, nothing is charged: it returns a checkout_url for the user to save a card in a browser, then call this again. Credits pay for estimates on an account (see estimate_quantity_or_probability for tier costs). To see the balance first, use check_account_and_credits. To get an account, call POST https://fermi.kromatic.com/api/v1/accounts (it returns an api_key once; a new account starts with 3 credits), or sign in through your connector. If you cannot make HTTP requests, ask the user to do one of these. Cost: real money -- charges the saved card $0.50 per credit. Needs an account.Destructive
check_account_and_creditsReports who you are to Fermi and what you can spend: whether you are using Fermi without an account or with one, your credit balance or free estimates left today, and what each tier costs. Use this before a paid estimate to check the price or balance, after one to see what is left, or when the user asks about credits, free estimates or pricing. Returns billing (principal "anonymous" or "account", how you authenticated, credit_balance, anonymous_estimates_remaining_today and anonymous_quota_resets_at), tiers (credit_cost, delivery "sync" or "async" and whether it is available without an account, per tier), price_per_credit_usd, and recent_transactions (the account's last 10 credit movements; null without an account). Cost: free. Checking never spends credits and never uses up a free estimate.Read-only
estimate_quantity_or_probabilityEstimates an uncertain number, or the probability that an event happens by a date, from a question in plain language, and returns a calibrated range and probability distribution. Use this when the user asks how much, how many, how big or how long something is or will be (market size, cost, count, price, duration), or asks a yes/no question about the future: "will X happen by <date>?", "what are the odds / chances / likelihood of X?". For a yes/no question, set unit to "probability (0-1)": point_estimate is then Fermi's best probability that the event happens (0.15 means 15%), and estimation_interval is how far that probability could plausibly be off (e.g. 0.05 to 0.35); the beta distribution describes the same uncertainty. There is no separate yes/no verdict. Returns point_estimate, estimation_interval (low/high: the range that should contain the true value, or for a yes/no question the true probability, with probability coverage_probability, default 90%), the fitted distribution (distribution_family and distribution_parameters), reasoning_summary, assumptions, estimate_id, and next_steps.simulate. To combine several estimates into a model with a time axis and get percentiles, NPV or payback out, feed them into neumann (https://neumann.kromatic.com) as simulation root nodes -- every successful estimate carries a next_steps.simulate block with the arguments already prepared. (neumann is Kromatic's companion Monte Carlo simulation server; fermi itself does not simulate.) The neumann URLs above are production. A non-production fermi still emits next_steps.simulate against its own configured neumann base URL, so read that block rather than these links whenever you are not on the production host. Tiers: 1 = fast, answers in the same call, no web search, and the only tier available without an account. 2 = grounded, answers in the same call, searches the web. 3 = deep research, runs in the background: the call returns status "pending" and an estimate_id; read the result later with get_estimate_result. Tier 1 does not know today's date or recent news: for any question about the future, put today's date and relevant recent facts in context, and give an absolute date in target_horizon. Not for: running a simulation or combining estimates (use neumann); reading prediction-market prices or placing bets; financial, medical or legal advice. To get an account, call POST https://fermi.kromatic.com/api/v1/accounts (it returns an api_key once; a new account starts with 3 credits), or sign in through your connector. If you cannot make HTTP requests, ask the user to do one of these. Cost: without an account, 3 free tier-1 estimates per UTC day; once they are used up, calls are refused with a sign-in requirement until 00:00 UTC. With an account, tier 1/2/3 costs 1/3/10 credits ($0.50/$1.50/$5.00 at $0.50 per credit). Tiers 1 and 2 charge only if the estimate succeeds, and a failed call does not use up a free estimate; tier 3 charges when it starts and refunds if it fails. Every call is a new estimate and is charged again, even for the same question. `credits_charged` and `billing` in the result report what was spent.Changes data
get_estimate_resultReads one estimate you already requested, by its estimate_id. Use this when a tier-3 (deep research) estimate came back with status "pending" and you want to know whether it is finished, or to show an earlier estimate again. Tier-3 results are only delivered this way (or to a callback_url, which chat clients usually cannot receive). Returns status: "pending" (with retry_after_seconds: how long to wait before asking again), "completed" (with the same fields a finished estimate returns), or "failed" (with error_detail; any credits taken are refunded). You can only read estimates made with the same credentials. Without an account you are recognised by IP address and browser or client, so a different network or client may not find the estimate. To find an id you lost, use list_my_estimates. Not for: making a new estimate. Cost: free. Reading a result never spends anything.Read-only
list_my_estimatesLists the past estimates on your account, newest first. Use this when the user wants to find an earlier estimate ("what did I estimate last week?") or has lost an estimate_id. Returns estimates, each with estimate_id, created_at, question, unit, target_horizon, point_estimate, estimation_interval, distribution_family and status; and next_offset, the offset of the next page, or null on the last page. For an estimate's full detail, pass its estimate_id to get_estimate_result. Estimates made without an account cannot be listed. To get an account, call POST https://fermi.kromatic.com/api/v1/accounts (it returns an api_key once; a new account starts with 3 credits), or sign in through your connector. If you cannot make HTTP requests, ask the user to do one of these. Cost: free, but account only: without an account the call is refused with a sign-in requirement.Read-only
send_feedbackSends a short report about Fermi to the team that builds it. They read every report and use it to fix problems and decide what to build, so honest feedback, good or bad, is useful. Use this when: - a Fermi tool returned an error (send it right away), behaved unexpectedly or gave an estimate that looks wrong; - the user needs something no Fermi tool can do, or an option that is missing; - a description, output or error message was confusing; - a session in which you used Fermi is ending: send one short report even if everything worked. Knowing which tools did the job for which kind of question is useful data, not noise. Do not send one after a routine successful call mid-session. Put several points in one report. Only message is required. Fill in the other fields that apply so the team can act without guessing. Write in your own words. Never include personal data (names, email addresses, company names), the user's own numbers or private context, secrets or keys, or the conversation transcript; describe the question and any wrong result in general terms instead. Tell the user you are sending it. Add sender_email only if the user wants a reply; no copy is sent to it. If you are signed in, your account id is included. Returns status "sent". Cost: free. Works without an account.Changes data

Change history

  1. send_feedback: input schema changed (+error_text, +estimate_id, +expected, +impact, +suggestion, +tool_name, +user_goal, +what_happened)
  2. send_feedback: description changed (+"Sends" +"short" +"about Fermi")
  3. server instructions changed (+"When a tool fails, the user needs something Fermi cannot do, or a session where you used Fermi ends (even a smooth one), call send_feedback with a short report in your own words (no personal data, secrets or transcript).")
  4. whoami: tool removed
  5. send_feedback: tool added
  6. list_my_estimates: tool added
  7. get_estimate_result: tool added
  8. get_estimate: tool removed
  9. feedback: tool removed
  10. estimate_quantity_or_probability: tool added
  11. estimate: tool removed
  12. check_account_and_credits: tool added
  13. buy_credits: title changed
  14. buy_credits: input schema changed
  15. buy_credits: description changed (+"Buys Fermi credits by charging" +"on your account, and returns the new balance." +"this when")
  16. buy_credits: annotations changed
  17. server instructions changed (+"answers forecasting questions with" +"estimates." +"estimate_quantity_or_probability for either kind of question: how much / how many ("How many hotel rooms will Lisbon have in 2030?"), or will an event happen by a date ("Will any EU country make a four-day work week law before 2030?" -- set unit to "probability (0-1)"; point_estimate is")
  18. whoami: tool added
  19. get_estimate: title changed
  20. get_estimate: description changed (+"Cost: free. Polling never spends quota or credits." +"Plus the MCP-only `billing` block every Fermi tool response carries (`charged_to` is "none" -- polling is free; the charge, if any, happened on the `estimate` call that created the record). REST's `GET /api/v1/estimates/{estimate_id}` does not carry it: REST callers have `GET /api/v1/accounts/me` instead.")
  21. get_estimate: annotations changed
  22. feedback: title changed
  23. feedback: input schema changed
  24. feedback: description changed (+"Cost: free." +""sent", plus the `billing` block every Fermi tool response carries -- `charged_to` is "none" here, because sending feedback spends neither quota nor credits." -""sent".")
  25. feedback: annotations changed
  26. estimate: title changed
  27. estimate: description changed (+"Cost: spends quota. Anonymous callers get 3 free tier-1 estimates per UTC day (`anon_simple_estimate_daily_limit`). With an account it debits `credit_cost_for_tier(tier)` credits (tier 1/2/3 = 1/3/10), and `credits_charged` in the response reports the amount." +"Plus a `billing` block saying who this call was billed to and what is left: principal ("anonymous" or "account"), auth_source, charged_to ("anonymous_quota" or "credits"), credits_charged, credit_balance, and anonymous_estimates_remaining_today with the UTC instant the anonymous allowance resets. Call `whoami` to read the same block without making an estimate.")
  28. estimate: annotations changed
  29. buy_credits: title changed
  30. buy_credits: input schema changed
  31. buy_credits: description changed (+"Cost: charges the saved card $0.50 per credit (see GET /api/v1/billing/pricing)." +"payment_status, plus the `billing` block every Fermi tool response carries. Its `credit_balance` is the POST-purchase balance, and `charged_to` is "none": this call spends money, not credits." -"payment_status.")
  32. buy_credits: annotations changed
  33. MCP URL changed from "https://fermi.krobar.ai/mcp/sse/" to "https://fermi.kromatic.com/mcp" (registry)
  34. Description changed (registry)
Source listings
SourceListingFirst seenLast seenVersions
Official MCP Registryio.github.Kromatic-Innovation/fermi2 Oct 202610 Nov 20262