Skip to main content
Glama

Read estimate

get_estimate
Read-onlyIdempotent

Cost: free. Polling never spends quota or credits.

Poll the status/result of a previously requested estimate.

Use this for tier-3 (async) estimates. Tier 3 only delivers its
result via `callback_url`, which chat-UI MCP clients (Claude.ai,
ChatGPT, grok.com) cannot receive -- so poll this tool instead with
the `estimate_id` the `estimate` call returned.

Args:
    estimate_id: The `estimate_id` returned by a previous `estimate`
        tool call.
    api_key: Your Fermi API key from POST /api/v1/accounts. Estimates
        are scoped to the principal that created them -- pass the same
        api_key (or none, for the anonymous tier) used for the original
        `estimate` call, or this will report the estimate as not found.

Returns:
    The exact shape REST's `GET /api/v1/estimates/{estimate_id}`
    returns (same `EstimatePollResponse` model, so every field it
    declares is present -- null where not applicable to the current
    status):
    - Pending: "status": "pending", plus "retry_after_seconds".
    - Failed: "status": "failed", plus "error_detail".
    - Completed: "status": "completed", plus the same fields a sync
      `estimate` call returns (estimation_interval, distribution_family,
      distribution_parameters, point_estimate, reasoning_summary,
      assumptions, credits_charged, disclaimer, provider, model,
      next_steps).

    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.

Raises:
    ToolError: if `estimate_id` does not exist, or was not created by
        the resolved principal (same actionable 404 REST returns).

Input Schema

NameRequiredDescriptionDefault
api_keyNo
estimate_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly/idempotent/openWorld), it discloses cost behavior ('Polling never spends quota or credits'), the auth-scoping rule (same api_key as the originating call or the estimate reports as not found), and the failure mode (ToolError with a REST-equivalent 404). That is exactly the extra context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded (cost note, then one-line purpose, then usage), and the Args/Returns/Raises layout is scannable. However the Returns section is long and partly redundant with the existing output schema, and the free/no-credits point is made twice.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, routing, auth scoping, error behavior, and per-status response shapes, which is more than enough for a two-parameter poll tool with an output schema. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: `estimate_id` is tied to the prior `estimate` response, and `api_key` is explained as principal scoping with an explicit anonymous-tier option. Both parameters gain semantics the bare schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Poll the status/result of a previously requested estimate') and immediately scopes it to tier-3 async estimates, which distinguishes it from the sibling `estimate` tool. An agent can route between the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('Use this for tier-3 (async) estimates') and the reason the alternative fails (callback_url is unreachable for chat-UI MCP clients such as Claude.ai, ChatGPT, grok.com). It also names the prerequisite: use the `estimate_id` the `estimate` call returned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources