{"name":"io.github.Kromatic-Innovation/fermi","slug":"kromatic-innovation-fermi","title":null,"description":"Calibrated probability distributions from natural-language questions via REST and MCP.","url":"https://mcp.market/server/kromatic-innovation-fermi","rating":null,"grade":"C","score":55,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":5,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-10-13T04:51:01.827Z","last_ok_at":"2026-10-13T04:51:01.827Z","latency_ms":214},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Kromatic-Innovation/fermi","website":null,"version":"1.0.0","remotes":[{"type":"sse","url":"https://fermi.krobar.ai/mcp/sse/"}],"packages":[],"tools":[{"name":"buy_credits","description":"Purchase credits using a saved payment method (off-session).\n\n    Requires a prior Stripe Checkout session to have saved a card.\n    Credits are $0.50 each. Use GET /api/v1/billing/pricing to confirm\n    the current price.\n\n    Args:\n        credits: Number of credits to purchase (minimum 1).\n        api_key: Your Fermi API key from POST /api/v1/accounts. Required.\n\n    Returns:\n        Dict with credits_purchased, new_balance, and payment_status.\n\n    Raises:\n        ValueError: if authentication fails, no payment method is on file,\n            or the card is declined.\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"credits":{"title":"Credits","type":"integer"},"api_key":{"title":"Api Key","type":"string"}},"required":["credits","api_key"],"title":"buy_creditsArguments"}},{"name":"estimate","description":"Return a calibrated probability distribution for a natural-language question.\n\n    Args:\n        question: The natural-language question (e.g. \"What will the price of\n            Bitcoin be in 6 months?\").\n        unit: The unit the answer should be expressed in (e.g. \"USD\", \"people\",\n            \"meters\").\n        target_horizon: When the estimate applies (e.g. \"6 months\", \"2030\",\n            \"current\").\n        disclaimer_acknowledged: Must be true. Confirms you understand estimates\n            are probabilistic decision-support only, not financial/medical/legal\n            advice.\n        requested_tier_id: Tier (1=fast sync, 2=grounded sync, 3=deep research\n            async). Default 1.\n        context: Optional extra context to condition the estimate.\n        coverage_probability: Width of the confidence interval (0, 1). Default\n            0.9 (90% CI).\n        source_inputs: Optional list of structured inputs (files, tables) for\n            the model to consider. Each item needs source_type\n            (\"qualitative_text\", \"spreadsheet\", or \"structured_file\") and\n            either content (text) or structured_data (dict/list).\n        callback_url: Optional webhook URL. When set, the completed or failed\n            result is POSTed here with an HMAC signature, so you don't need\n            to poll for async tiers.\n        api_key: Your Fermi API key from POST /api/v1/accounts. Omit to use the\n            anonymous tier.\n        provider: Optional LLM provider selector (\"openai\" or \"anthropic\").\n            When omitted the server uses its configured default. Tier 1\n            supports both providers; tiers 2-3 currently accept \"openai\" only.\n        model: Optional model id for the selected provider. Must match the\n            model configured for (tier_id, provider); omit to accept the\n            default.\n\n    Returns:\n        EstimateSuccessResponse as a dict: estimation_interval, distribution_family,\n        distribution_parameters, point_estimate, reasoning_summary, assumptions,\n        credits_charged, disclaimer, provider, and model.\n\n    Raises:\n        ValueError: if the estimate service rejects the request (bad tier, out of\n            credits, unknown provider, missing disclaimer acknowledgement).\n    ","write_action":false,"price_micros":0,"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"}},{"name":"feedback","description":"Submit feedback, a feature request, or a bug report to the Fermi team.\n\n    An email is sent to the team and a copy is sent to the address you provide.\n\n    Args:\n        feedback_type: One of \"feedback\", \"feature_request\", or \"bug\".\n        message: Your feedback or request (10-5000 characters). Be specific.\n        sender_email: Your email address. A confirmation copy is sent here.\n        sender_name: Your name (optional).\n        api_key: Your Fermi API key (optional). If provided, your account ID\n            is attached to the message for context.\n\n    Returns:\n        Confirmation with status \"sent\".\n\n    Raises:\n        ValueError: if validation fails or email delivery fails.\n    ","write_action":true,"price_micros":0,"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"}}],"scan":{"score":55,"grade":"C","scanned_at":"2026-09-27T22:33:24.183Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T22:33:24.187Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 451ms"]},"poisoning":{"score":13,"max":15,"notes":["3 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool estimate: …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). …"}],"inputs":{"probes":[{"url":"https://fermi.krobar.ai/mcp/sse/","reachable":true,"authRequired":false,"latencyMs":451,"serverInfo":{"name":"fermi","version":""}}],"packages":[],"repo":{"found":false,"owner":"Kromatic-Innovation","repo":"fermi","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":5}}}},"grade_history":[],"reviews":[]}