# io.github.Kromatic-Innovation/fermi (remote · fermi.kromatic.com)

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

- Trust score: 64/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `fermi.kromatic.com`: 64/100 (this document), [markdown](https://verifymcp.io/servers/kromatic-innovation-fermi/fermi-2.md), [page](https://verifymcp.io/servers/kromatic-innovation-fermi/fermi-2)

## Channel facts

- Endpoint: `https://fermi.kromatic.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (buy_credits).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3641 tokens (~455/item across 8 items; 6 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 8 days we've observed: 3 tool removals, 0 breaking changes, 0 auth/transport breaks, 5 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.Kromatic-Innovation/fermi MCP server?

io.github.Kromatic-Innovation/fermi is a hosted endpoint at https://fermi.kromatic.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http kromatic-innovation-fermi 'https://fermi.kromatic.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "kromatic-innovation-fermi": {
      "url": "https://fermi.kromatic.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "kromatic-innovation-fermi": {
      "type": "http",
      "url": "https://fermi.kromatic.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.kromatic-innovation-fermi]
url = "https://fermi.kromatic.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kromatic-innovation-fermi": {
      "type": "remote",
      "url": "https://fermi.kromatic.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add kromatic-innovation-fermi --url 'https://fermi.kromatic.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  kromatic-innovation-fermi:
    url: "https://fermi.kromatic.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "kromatic-innovation-fermi": {
      "Transport": "http",
      "Url": "https://fermi.kromatic.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add kromatic-innovation-fermi -t streamable-http -u 'https://fermi.kromatic.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "kromatic-innovation-fermi": {
      "type": "http",
      "url": "https://fermi.kromatic.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-31 (score 64, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “send_feedback” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 387 → 455
- [cosmetic] “send_feedback” added an optional parameter “what_happened”
- [cosmetic] “send_feedback” added an optional parameter “user_goal”
- [cosmetic] “send_feedback” added an optional parameter “tool_name”
- [cosmetic] “send_feedback” added an optional parameter “suggestion”
- [cosmetic] “send_feedback” added an optional parameter “impact”
- [cosmetic] “send_feedback” added an optional parameter “expected”
- [cosmetic] “send_feedback” added an optional parameter “estimate_id”
- [cosmetic] “send_feedback” added an optional parameter “error_text”
- [cosmetic] “send_feedback” reworded the description of “sender_name”
- [cosmetic] “send_feedback” reworded the description of “sender_email”
- [cosmetic] “send_feedback” reworded the description of “feedback_type”
- [cosmetic] “send_feedback” reworded the description of “message”
- [cosmetic] “send_feedback” made “sender_email” optional
- [cosmetic] “send_feedback” made “feedback_type” optional

### 2026-10-30 (score 64, +5)

- [security regression] Stability: 0.03 → fail
- [security regression] Tool “whoami” was removed
- [security regression] Tool “get_estimate” was removed
- [security regression] Tool “feedback” was removed
- [security regression] Tool “estimate” was removed
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “buy_credits” rewrote its description, which is the text the model reads
- [functional improvement] Tool coverage: 0% → 100%
- [functional improvement] Schema quality: 437 → 387
- [functional] First check of Schema quality: 100
- [functional] Destructive annotations: pass → 100
- [functional] New prompt “estimate_then_simulate”
- [functional] New resource “tiers”
- [functional] New resource “neumann-bridge”
- [functional] New tool “send_feedback”
- [functional] New tool “list_my_estimates”
- [functional] New tool “get_estimate_result”
- [functional] New tool “estimate_quantity_or_probability”
- [functional] New tool “check_account_and_credits”
- [cosmetic] “buy_credits” reworded the description of “credits”
- [cosmetic] “buy_credits” reworded the description of “api_key”
- [cosmetic] “buy_credits” made “api_key” optional
- [cosmetic] Tool “buy_credits” changed its title: Buy Fermi credits → Buy Fermi credits with your saved card

### 2026-10-29 (score 59, 0)

- [security] Tool “buy_credits” rewrote its description, which is the text the model reads
- [security] Tool “estimate” rewrote its description, which is the text the model reads
- [security] Tool “feedback” rewrote its description, which is the text the model reads
- [security] Tool “get_estimate” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 371 → 437
- [functional improvement] Stability: unverified → 0.03
- [functional] Schema quality: good → excellent
- [functional] New tool “whoami”
- [cosmetic] Tool “buy_credits” changed its title: Buy credits → Buy Fermi credits
- [cosmetic] Tool “estimate” changed its title: Estimate → Create new estimate
- [cosmetic] Tool “feedback” changed its title: Send feedback → Send feedback to the Fermi team
- [cosmetic] Tool “get_estimate” changed its title: Get estimate → Read estimate

### 2026-10-28 (score 59)

First indexed and scored.

## MCP tools (6)

### `estimate_quantity_or_probability` (~1420 tokens)

Estimate a number, or the probability an event happens by a date

Estimates 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 resul…

Input parameters:

- `api_key`: Your Fermi API key. Omit it if your connector is already signed in, or to use Fermi without an account. Get one with POST https://fermi.kromatic.com/api/v1/accounts (returned once).
- `callback_url`: Optional URL that receives the finished or failed result as a signed POST, so a server need not keep asking. Chat clients usually cannot receive it: read the result with get_estimate_result instead.
- `context`: Anything the estimate should take into account. For a question about the future always include today's date ("Today is 2026-10-30."), plus recent facts or news, and the user's own numbers or definiti…
- `coverage_probability` (number): How likely the returned interval is to contain the true value, strictly between 0 and 1. Default 0.9, a 90% interval. Use 0.95 for a "95% interval", 0.8 for an "80% range".
- `disclaimer_acknowledged` (boolean, required): Must be true. Confirms the result is a probabilistic estimate for decision support, not financial, medical or legal advice. A call with false is refused.
- `model`: Optional model id for that provider. It must be the model configured for that tier and provider, so normally omit it.
- `provider`: Optional AI provider for the estimate, "openai" or "anthropic". Omit to use the default. Tiers 2 and 3 accept only "openai".
- `question` (string, required): The question in plain language, one quantity or one event per call. Quantity: "How many hotel rooms will Lisbon have in 2030?". Yes/no event: "Will any EU country make a four-day work week law before…
- `requested_tier_id` (integer): 1 = fast: answers in the same call, no web search; the only tier without an account. 2 = grounded: answers in the same call, searches the web; account only. 3 = deep research: runs in the background…
- `source_inputs`: Optional documents or data for the estimate to use. Each item has source_type ("qualitative_text", "spreadsheet" or "structured_file") and either content (text) or structured_data (an object, or a li…
- `target_horizon` (string, required): When the answer applies. Prefer an absolute date or year: "by 2027-06-30", "2030", "end of 2028", or "current" for a value today. Turn relative phrases like "in the next 12 months" into a date, becau…
- `unit` (string, required): Unit of the answer, e.g. "USD", "people", "hotel rooms", "days". For a yes/no event question use "probability (0-1)": the answer is then a probability between 0 and 1 (0.15 = 15%).

Output parameters:

- `assumptions` (array): The assumptions the estimate rests on.
- `billing` (object): Who this call was billed to and what is left. Present on every Fermi result.
- `confidence_level` (string): Set only from coverage_probability: "high" for 0.95 or more, "medium" for 0.9 up to 0.95, "low" below 0.9. It is not a judgement of the estimate's quality.
- `coverage_probability` (number): Chance the interval contains the true value (0.9 = 90%).
- `created_at` (string): When it was made (ISO 8601).
- `credits_charged` (integer): Credits this estimate cost (0 without an account).
- `credits_refunded` (integer|null): When failed: credits given back.
- `decomposition_suggestions` (array|null): Sub-questions (sub_question, reasoning) worth estimating separately to sharpen this one. Each would be a new estimate call at the usual cost.
- `disclaimer` (string): Not financial advice notice.
- `distribution_family` (string): Shape of the fitted probability distribution: normal, log_normal (positive and right-skewed), uniform, constant, beta (values between 0 and 1, used for probabilities and rates), triangle, gamma, expo…
- `distribution_parameters` (object): Parameters of that distribution by name, e.g. alpha and beta for beta, mu and sigma for log_normal.
- `error_detail` (string|null): When failed: what went wrong.
- `estimate_id` (string): Id of this estimate, for get_estimate_result and list_my_estimates.
- `estimation_interval` (object): The range that should contain the true value with probability coverage_probability. For a probability question, both ends are probabilities between 0 and 1.
- `model` (string): Model that produced it.
- `next_steps` (object|null): Ready-made input for neumann, Kromatic's Monte Carlo simulation server. simulate.root_node (distribution_type and distribution_params) can be added to a neumann model as one uncertain input; when the…
- `point_estimate` (number): The single best value. For a yes/no question asked with unit "probability (0-1)", this is the probability that the event happens (0.15 = 15%).
- `provider` (string): AI provider that produced it.
- `range_high` (number): Same as estimation_interval.high.
- `range_low` (number): Same as estimation_interval.low.
- `reasoning_summary` (string): How the estimate was reached, in a few sentences.
- `request_id` (string): Id of this request, for support.
- `research_sources` (array|null): Tiers 2 and 3: web sources used (url, title, snippet, relevance_note).
- `retry_after_seconds` (integer|null): When pending: seconds to wait before reading it again.
- `status` (string): Only on results that are not finished yet or that come from get_estimate_result: "pending" (tier 3 still running), "completed" or "failed".
- `tier_id` (integer): The tier that produced it (1, 2 or 3).
- `verification_flags` (array|null): Tier 3: issues the second check raised.
- `verification_summary` (string|null): Tier 3: what a second check found.

### `get_estimate_result` (~265 tokens)

Get the result of an estimate you already requested

Reads 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.

Input parameters:

- `api_key`: The same api_key used when the estimate was requested (omit it if none was used, or if your connector is signed in). Estimates are visible only to the credentials that made them.
- `estimate_id` (string, required): The estimate_id returned by estimate_quantity_or_probability or listed by list_my_estimates.

Output parameters:

- `assumptions` (array|null): The assumptions the estimate rests on.
- `billing` (object): Who this call was billed to and what is left. Present on every Fermi result.
- `confidence_level` (string|null): Set only from coverage_probability: "high" for 0.95 or more, "medium" for 0.9 up to 0.95, "low" below 0.9. It is not a judgement of the estimate's quality.
- `coverage_probability` (number|null): Chance the interval contains the true value (0.9 = 90%).
- `created_at` (string|null): When it was made (ISO 8601).
- `credits_charged` (integer|null): Credits this estimate cost (0 without an account).
- `credits_refunded` (integer|null): When failed: credits given back.
- `decomposition_suggestions` (array|null): Sub-questions (sub_question, reasoning) worth estimating separately to sharpen this one. Each would be a new estimate call at the usual cost.
- `disclaimer` (string|null): Not financial advice notice.
- `distribution_family` (string|null): Shape of the fitted probability distribution: normal, log_normal (positive and right-skewed), uniform, constant, beta (values between 0 and 1, used for probabilities and rates), triangle, gamma, expo…
- `distribution_parameters` (object|null): Parameters of that distribution by name, e.g. alpha and beta for beta, mu and sigma for log_normal.
- `error_detail` (string|null): When failed: what went wrong.
- `estimate_id` (string|null): Id of this estimate, for get_estimate_result and list_my_estimates.
- `estimation_interval` (object|null): The range that should contain the true value with probability coverage_probability. For a probability question, both ends are probabilities between 0 and 1.
- `model` (string|null): Model that produced it.
- `next_steps` (object|null): Ready-made input for neumann, Kromatic's Monte Carlo simulation server. simulate.root_node (distribution_type and distribution_params) can be added to a neumann model as one uncertain input; when the…
- `point_estimate` (number|null): The single best value. For a yes/no question asked with unit "probability (0-1)", this is the probability that the event happens (0.15 = 15%).
- `provider` (string|null): AI provider that produced it.
- `range_high` (number|null): Same as estimation_interval.high.
- `range_low` (number|null): Same as estimation_interval.low.
- `reasoning_summary` (string|null): How the estimate was reached, in a few sentences.
- `request_id` (string|null): Id of this request, for support.
- `research_sources` (array|null): Tiers 2 and 3: web sources used (url, title, snippet, relevance_note).
- `retry_after_seconds` (integer|null): When pending: seconds to wait before reading it again.
- `status` (string|null): Only on results that are not finished yet or that come from get_estimate_result: "pending" (tier 3 still running), "completed" or "failed".
- `tier_id` (integer|null): The tier that produced it (1, 2 or 3).
- `verification_flags` (array|null): Tier 3: issues the second check raised.
- `verification_summary` (string|null): Tier 3: what a second check found.

### `list_my_estimates` (~290 tokens)

List your past estimates (account only)

Lists 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.

Input parameters:

- `api_key`: Your Fermi API key. Required unless your connector is signed in. Get one with POST https://fermi.kromatic.com/api/v1/accounts.
- `limit` (integer): How many estimates to return, 1 to 100. Default 20.
- `offset` (integer): How many of the newest estimates to skip, for paging: pass the previous page's next_offset. Default 0.

Output parameters:

- `billing` (object): Who this call was billed to and what is left. Present on every Fermi result.
- `estimates` (array): Your estimates, newest first.
- `next_offset` (integer|null): Pass as offset for the next page; null on the last page.

### `send_feedback` (~704 tokens)

Send feedback or a bug report to the Fermi team

Sends 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.

Input parameters:

- `api_key`: Optional Fermi API key. If given, the account id is attached so the team can look into it.
- `error_text`: The error code and message the tool returned, if any. Remove any personal data or private context it quotes.
- `estimate_id`: The estimate_id the report is about, if an estimate was involved.
- `expected`: What you expected to happen instead.
- `feedback_type` (string): What kind of report this is. bug: a tool errored or broke. wrong_result: it ran but the estimate looks wrong. unmet_use_case: the user needed something no tool does. feature_request: a missing option…
- `impact`: How much it cost the user. blocked: could not finish. workaround: finished another way. minor: an annoyance. none: no cost, for example praise.
- `message` (string, required): The report, in your own words, 10 to 5,000 characters. Say what you tried, what happened and what you expected. Leave out names, companies, the user's numbers or private context, and the conversation…
- `sender_email`: Optional. The user's email address, only if they want a reply and gave it to you. Do not invent one. No copy is sent to it.
- `sender_name`: The user's name. Optional; only with sender_email.
- `suggestion`: What would have helped: a fix, a new feature or clearer wording.
- `tool_name`: The Fermi tool the report is about, for example estimate_quantity_or_probability.
- `user_goal`: What the user was trying to do, as a general task in a few words, for example "forecast a market size". No names, company names or figures.
- `what_happened`: What actually happened, in general terms, without the user's numbers.

Output parameters:

- `billing` (object): Who this call was billed to and what is left. Present on every Fermi result.
- `message` (string): Confirmation text, including whether the team can reply.
- `status` (string): "sent".

### `buy_credits` (~252 tokens)

Buy Fermi credits with your saved card

Buys 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.

Input parameters:

- `api_key`: Your Fermi API key. Omit it if your connector is signed in with permission to buy credits.
- `credits` (integer, required): How many credits to buy, at least 1. Each is charged at the price in this tool's cost line.

Output parameters:

- `billing` (object): Who this call was billed to and what is left. Present on every Fermi result.
- `checkout_url` (string): No card saved: open this in a browser to save one, then call buy_credits again.
- `credits_added` (integer): 0 when a checkout_url is returned instead.
- `credits_purchased` (integer): Credits bought by this call.
- `new_balance` (integer): Credit balance after it.
- `payment_status` (string): Card payment status.

### `check_account_and_credits` (~215 tokens)

Check your account, credits and free estimates left

Reports 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.

Input parameters:

- `api_key`: Your Fermi API key. Omit it to ask about your connector's signed-in account, or about your free allowance without an account.

Output parameters:

- `billing` (object): Who this call was billed to and what is left. Present on every Fermi result.
- `price_per_credit_usd` (number): What one credit costs to buy, in US dollars.
- `recent_transactions` (array|null): The account's last 10 credit movements (entry_type, amount, request_id, created_at); null without an account.
- `tiers` (array): Each tier's price and availability.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/kromatic-innovation-fermi/fermi-2#diagnostics

## Score history

- 2026-11-05: 64
- 2026-11-04: 64
- 2026-11-03: 64
- 2026-11-02: 64
- 2026-11-01: 64
- 2026-10-31: 64
- 2026-10-30: 64
- 2026-10-29: 59
- 2026-10-28: 59

## Common questions

### What is the io.github.Kromatic-Innovation/fermi MCP server?

io.github.Kromatic-Innovation/fermi is an MCP server listed in the public MCP registry as io.github.Kromatic-Innovation/fermi. Calibrated probability ranges for forecasting questions, with the assumptions behind them. This page covers its hosted endpoint (https://fermi.kromatic.com/mcp).

### Is the io.github.Kromatic-Innovation/fermi MCP server safe to use?

io.github.Kromatic-Innovation/fermi scores 64 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.Kromatic-Innovation/fermi MCP server expose?

io.github.Kromatic-Innovation/fermi exposes 6 tools: estimate_quantity_or_probability, get_estimate_result, list_my_estimates, send_feedback, buy_credits, check_account_and_credits. Their descriptions and schemas cost roughly 3,146 tokens of context every time the server is loaded.

### Does the io.github.Kromatic-Innovation/fermi MCP server require authentication?

No. We connected to io.github.Kromatic-Innovation/fermi without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the io.github.Kromatic-Innovation/fermi MCP server still maintained?

io.github.Kromatic-Innovation/fermi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://fermi.kromatic.com/mcp
- Repository: https://github.com/Kromatic-Innovation/fermi
- Changelog RSS feed: https://verifymcp.io/servers/kromatic-innovation-fermi/fermi-2.xml
- Changelog JSON feed: https://verifymcp.io/servers/kromatic-innovation-fermi/fermi-2.json
- HTML version of this page: https://verifymcp.io/servers/kromatic-innovation-fermi/fermi-2
