fermi

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
74%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,368Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.07% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fermi": {
      "url": "https://fermi.krobar.ai/mcp/sse/"
    }
  }
}

Remote endpoints

https://fermi.krobar.ai/mcp/sse/sse

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡estimate(question, unit, target_horizon, disclaimer_acknowledged, requested_tier_id, ...)

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: ValueError: if the estimate service rejects the request (bad tier, out of credits, unknown provider, missing disclaimer acknowledgement).

Input Schema

{
  "type": "object",
  "properties": {
    "question": {
      "title": "Question",
      "type": "string"
    },
    "unit": {
      "title": "Unit",
      "type": "string"
    },
    "target_horizon": {
      "title": "Target Horizon",
      "type": "string"
    },
    "disclaimer_acknowledged": {
      "title": "Disclaimer Acknowledged",
      "type": "boolean"
    },
    "requested_tier_id": {
      "default": 1,
      "title": "Requested Tier Id",
      "type": "integer"
    },
    "context": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Context"
    },
    "coverage_probability": {
      "default": 0.9,
      "title": "Coverage Probability",
      "type": "number"
    },
    "source_inputs": {
      "anyOf": [
        {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Source Inputs"
    },
    "callback_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Callback Url"
    },
    "api_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Api Key"
    },
    "provider": {
      "anyOf": [
        {
          "enum": [
            "openai",
            "anthropic"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Provider"
    },
    "model": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Model"
    }
  },
  "required": [
    "question",
    "unit",
    "target_horizon",
    "disclaimer_acknowledged"
  ],
  "title": "estimateArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "estimateDictOutput"
}
🟡feedback(feedback_type, message, sender_email, sender_name, api_key)

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: ValueError: if validation fails or email delivery fails.

Input Schema

{
  "type": "object",
  "properties": {
    "feedback_type": {
      "enum": [
        "feedback",
        "feature_request",
        "bug"
      ],
      "title": "Feedback Type",
      "type": "string"
    },
    "message": {
      "title": "Message",
      "type": "string"
    },
    "sender_email": {
      "title": "Sender Email",
      "type": "string"
    },
    "sender_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sender Name"
    },
    "api_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Api Key"
    }
  },
  "required": [
    "feedback_type",
    "message",
    "sender_email"
  ],
  "title": "feedbackArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": {
    "type": "string"
  },
  "title": "feedbackDictOutput"
}
🟡buy_credits(credits, api_key)

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: ValueError: if authentication fails, no payment method is on file, or the card is declined.

Input Schema

{
  "type": "object",
  "properties": {
    "credits": {
      "title": "Credits",
      "type": "integer"
    },
    "api_key": {
      "title": "Api Key",
      "type": "string"
    }
  },
  "required": [
    "credits",
    "api_key"
  ],
  "title": "buy_creditsArguments"
}

Output Schema

{
  "type": "object",
  "additionalProperties": {
    "anyOf": [
      {
        "type": "integer"
      },
      {
        "type": "string"
      }
    ]
  },
  "title": "buy_creditsDictOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools