Skip to content

io.github.Kromatic-Innovation/fermi

by Kromatic-Innovation · remote · no sign-in to list tools · v1.0.0 · published by GitHub user Kromatic-Innovation

Calibrated probability distributions from natural-language questions via REST and MCP.

Final · 1Changes · 1

3 tools: 1 do something that can't be undone, 1 change things and 1 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport sse fermi https://fermi.krobar.ai/mcp/sse/

Findings

Matches of fixed checks, with the text they matched.

1 info
  • The description is 2,261 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...credits, unknown provider, missing disclaimer acknowledgement)."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

3 tools

Can't be undone 1Claude Code: ask
  • buy_creditsPurchase credits using a saved payment method (off-session).No findings

    Why it is in this group

    • The description's first verb is "purchase": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Purchase credits using a saved payment method (off-session). Requires a prior Stripe Checkout session to have saved a card. Credits are $0.50 each. Use GET /api/v1/billing/pricing to confirm the current price. Args: credits: Number of credits to purchase (minimum 1). api_key: Your Fermi API key from POST /api/v1/accounts. Required. Returns: Dict with credits_purchased, new_balance, and payment_status. Raises: ToolError: if authentication fails, no payment method is on file, or the card is declined.
Changes things 1Claude Code: ask
  • feedbackSubmit feedback, a feature request, or a bug report to the Fermi team.No findings

    Why it is in this group

    • The description's first verb is "submit": a word for a change.
    Description, as the server wrote it
    Submit feedback, a feature request, or a bug report to the Fermi team. An email is sent to the team and a copy is sent to the address you provide. Args: feedback_type: One of "feedback", "feature_request", or "bug". message: Your feedback or request (10-5000 characters). Be specific. sender_email: Your email address. A confirmation copy is sent here. sender_name: Your name (optional). api_key: Your Fermi API key (optional). If provided, your account ID is attached to the message for context. Returns: Confirmation with status "sent". Raises: ToolError: if validation fails or email delivery fails.
Only reads 1Claude Code: allow
  • estimateReturn a calibrated probability distribution for a natural-language question.1 finding

    Why it is in this group

    • The description's first verb is "return": a word for reading.

    Findings

    • Info

      The description is 2,261 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...credits, unknown provider, missing disclaimer acknowledgement)."

      What this check looks for
    Description, as the server wrote it
    Return a calibrated probability distribution for a natural-language question. Args: question: The natural-language question (e.g. "What will the price of Bitcoin be in 6 months?"). unit: The unit the answer should be expressed in (e.g. "USD", "people", "meters"). target_horizon: When the estimate applies (e.g. "6 months", "2030", "current"). disclaimer_acknowledged: Must be true. Confirms you understand estimates are probabilistic decision-support only, not financial/medical/legal advice. requested_tier_id: Tier (1=fast sync, 2=grounded sync, 3=deep research async). Default 1. context: Optional extra context to condition the estimate. coverage_probability: Width of the confidence interval (0, 1). Default 0.9 (90% CI). source_inputs: Optional list of structured inputs (files, tables) for the model to consider. Each item needs source_type ("qualitative_text", "spreadsheet", or "structured_file") and either content (text) or structured_data (dict/list). callback_url: Optional webhook URL. When set, the completed or failed result is POSTed here with an HMAC signature, so you don't need to poll for async tiers. api_key: Your Fermi API key from POST /api/v1/accounts. Omit to use the anonymous tier. provider: Optional LLM provider selector ("openai" or "anthropic"). When omitted the server uses its configured default. Tier 1 supports both providers; tiers 2-3 currently accept "openai" only. model: Optional model id for the selected provider. Must match the model configured for (tier_id, provider); omit to accept the default. Returns: EstimateSuccessResponse as a dict: estimation_interval, distribution_family, distribution_parameters, point_estimate, reasoning_summary, assumptions, credits_charged, disclaimer, provider, and model. Raises: ToolError: if the estimate service rejects the request (bad tier, out of credits, unknown provider, missing disclaimer acknowledgement).

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport sse fermi https://fermi.krobar.ai/mcp/sse/

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__fermi__estimate"
    ],
    "ask": [
      "mcp__fermi__feedback",
      "mcp__fermi__buy_credits"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as fermi. Review it before you use it.