InferIndex
Server Details
LLM API prices across 70+ providers: cheapest offer, comparisons, history and cost estimates.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- InferIndex/inferindex-docs
- GitHub Stars
- 0
TDQS
Scored across 5 tools
The tools are mostly distinct: search_models finds model IDs, price_history shows historical data, while cheapest, compare_providers, and estimate_cost all deal with current pricing. The latter three overlap somewhat in that they return price comparisons for a model, but their specific angles—cheapest winner, detailed provider comparison, and workload-based cost estimation—keep them separable.
compare_providers, estimate_cost, and search_models follow a clear verb_noun pattern, but cheapest is a single adjective and price_history is noun_noun. The naming is still readable and consistently snake_case, though the pattern is mixed.
Five tools is a well-scoped surface for an LLM pricing lookup and comparison service. Each tool serves a distinct pricing workflow without unnecessary bloat or redundancy.
The core pricing lifecycle is covered: model lookup, current offers, cheapest options, workload estimation, and price history. A minor gap is the lack of a general model/listing or provider metadata tool for exploration, but the main workflows are complete.
Available Tools
5 toolscheapestCheapest offers for a modelARead-onlyIdempotentInspect
Cheapest current API offers for one model across direct providers and aggregators, in USD per 1M tokens (input, output, blended 3:1). Stale prices, and flex/batch tiers, are excluded by default. Optional filters (context, tools, JSON, vision, region, no training on prompts, open sign-up) and usage (tokens per request, requests per day) to get an estimated cost per request and per month. Returns the winner and the first offers.
| Name | Required | Description | Default |
|---|---|---|---|
| json | No | Only offers that support JSON output | |
| limit | No | Number of offers to return (default 5, max 25) | |
| model | Yes | Model id or name, e.g. 'deepseek-v3.2', 'deepseek/deepseek-v4-pro', 'gpt-5.6-luna'. Use search_models when unsure. | |
| tools | No | Only offers that support tool calling | |
| region | No | Only providers that process data in this region: eu, us, … | |
| strict | No | Exclude offers whose provider does not publish the filtered information (by default they are kept and flagged) | |
| vision | No | Only offers that accept image input | |
| min_context | No | Minimum context window in tokens | |
| no_training | No | Only providers whose published terms say they do not train on your prompts | |
| no_waitlist | No | Only providers with open sign-up (no waitlist or invitation) | |
| cached_ratio | No | Share of input tokens served from the provider's prompt cache (0 to 1) | |
| include_tiers | No | Also include lower-priority service tiers, comma-separated: flex, batch (hidden by default) | |
| output_tokens | No | Output tokens per request, for the estimated cost | |
| prompt_tokens | No | Input tokens per request, for the estimated cost | |
| requests_per_day | No | Requests per day, to also get an estimated monthly cost |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safe-read profile is covered. The description adds valuable behavior beyond annotations by stating that stale prices and flex/batch tiers are excluded by default, and by explaining that usage parameters produce estimated costs per request and per month. No contradiction with annotations was found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey the core output, pricing unit, default exclusions, available filters/usage inputs, and the result shape. Every sentence earns its place, and the most important purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter read-only tool with no output schema, the description covers defaults, filter categories, usage-based estimation, and the returned result. It does not describe exact output fields or ordering beyond 'winner and first offers', and it relies on the schema for strict-filter behavior, but these gaps are minor given the schema's richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 15 parameters at 100% coverage, so the baseline is 3. The description adds useful conceptual structure by grouping parameters into filters versus usage counts and by clarifying that the usage parameters drive the estimated cost per request and per month, which is not evident from individual schema entries alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the cheapest current API offers for one model across direct providers and aggregators, with prices in USD per 1M tokens. It is specific enough to distinguish from search_models and price_history, though it does not explicitly contrast with the closely related estimate_cost or compare_providers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the purpose obvious and implies the intended use case — finding current cheapest offers for a model — but it never explicitly says when to use this tool instead of a sibling such as estimate_cost or price_history. There are no exclusions or alternative routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_providersCompare providers for a modelARead-onlyIdempotentInspect
Current offers for one model, one line per provider and source (direct or via an aggregator), cheapest first (10 by default), with price, context, quantization, published conditions (training on prompts, data regions, sign-up) and reliability from official status pages.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order (default blended); estimated_cost needs prompt_tokens or output_tokens | |
| limit | No | Number of offers to return (default 10, max 50) | |
| model | Yes | Model id or name, e.g. 'deepseek-v3.2', 'deepseek/deepseek-v4-pro', 'gpt-5.6-luna'. Use search_models when unsure. | |
| region | No | Only providers that process data in this region: eu, us, … | |
| strict | No | Exclude offers whose provider does not publish the filtered information (by default they are kept and flagged) | |
| no_training | No | Only providers whose published terms say they do not train on your prompts | |
| no_waitlist | No | Only providers with open sign-up (no waitlist or invitation) | |
| cached_ratio | No | Share of input tokens served from the provider's prompt cache (0 to 1) | |
| include_tiers | No | Also include lower-priority service tiers, comma-separated: flex, batch (hidden by default) | |
| output_tokens | No | Output tokens per request, for the estimated cost | |
| prompt_tokens | No | Input tokens per request, for the estimated cost | |
| requests_per_day | No | Requests per day, to also get an estimated monthly cost |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description only needs to add behavioral context. It does this well: cheapest-first ordering, 10-offer default, direct/aggregator sources, included fields, and reliability sourced from official status pages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence front-loads the core behavior and output contract without repeating annotations or schema. The long enumerations could be easier to scan as bullets, but every piece of information earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description wisely provides a compact return contract: one line per provider/source with price, context, quantization, conditions, and reliability. Combined with fully described parameters and non-destructive annotations, this is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some output-level context (default 10, sorted by price, fields like training conditions and reliability), but it does not add meaning to the individual parameters beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it compares current offers for one model, one line per provider and source. It also distinguishes itself from siblings like price_history by emphasizing 'current offers' and from cheapest by showing all providers/sources, not just the cheapest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly scopes usage to fetching current offers for a single model, with explicit output shape and ordering. The model parameter adds a concrete routing hint ('Use search_models when unsure'), though it does not explicitly contrast this tool with cheapest, estimate_cost, or price_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_costEstimate the cost of a workloadARead-onlyIdempotentInspect
Estimated cost of a workload on one model at each provider: cost per request, and per month if requests_per_day is given, taking the provider's tiered pricing and prompt-cache price into account. Offers sorted by estimated cost, cheapest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of offers to return (default 5, max 25) | |
| model | Yes | Model id or name, e.g. 'deepseek-v3.2', 'deepseek/deepseek-v4-pro', 'gpt-5.6-luna'. Use search_models when unsure. | |
| cached_ratio | No | Share of input tokens served from the provider's prompt cache (0 to 1) | |
| output_tokens | No | Output tokens per request, for the estimated cost | |
| prompt_tokens | No | Input tokens per request, for the estimated cost | |
| requests_per_day | No | Requests per day, to also get an estimated monthly cost |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true; the description adds meaningful behavior beyond that: it accounts for provider tiered pricing and prompt-cache price, and sorts offers by estimated cost ascending. These details tell the agent what factors influence results and output ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core purpose and scoping (one model, per provider), then key behaviors and sorting. Every clause earns its place; no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description adequately explains the return values: offers with cost per request and per-month cost (if requests_per_day is given). It could clarify what happens when token counts are omitted, but overall the tool's behavior is sufficiently complete for an agent to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters already have clear meanings. The description adds some linking context (requests_per_day triggers monthly cost; prompt-cache price affects cached_ratio), but it does not substantially extend the schema's parameter documentation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (estimate cost) on a specific resource (a workload on one model at each provider), and details the calculation: per-request and per-month cost, tiered pricing, prompt-cache price, and cheapest-first sorting. This clearly distinguishes it from siblings like price_history or search_models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context: estimating workload costs with optional token and request-volume inputs. It does not explicitly name alternatives or exclusions, but the sibling names differ enough (cheapest, compare_providers, price_history) that an agent can infer when estimate_cost is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_historyPrice history of a modelARead-onlyIdempotentInspect
Price history of one model: every offer tracked by InferIndex (daily or weekly min/max/last price in USD, or raw price changes), plus the official price of the model's lab over time. Give either days, or from/to (YYYY-MM-DD), or at (a date) for the prices in effect that day.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | A single date, YYYY-MM-DD: prices in effect that day | |
| to | No | End date, YYYY-MM-DD | |
| days | No | Number of days back from today (default 7) | |
| from | No | Start date, YYYY-MM-DD (with to, instead of days) | |
| limit | No | Maximum number of points (default 100, max 500) | |
| model | Yes | Model id or name, e.g. 'deepseek-v3.2', 'deepseek/deepseek-v4-pro', 'gpt-5.6-luna'. Use search_models when unsure. | |
| provider | No | Only this provider | |
| granularity | No | day (default), week, or raw price changes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds behavioral detail beyond that by specifying the data scope: 'every offer tracked by InferIndex', granularity options (daily/weekly min/max/last price, raw price changes), and the inclusion of the lab's official price over time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the resource ('one model') and the return content; the second gives a compact usage rule for date selection. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description needs to cover return content, which it does by listing USD min/max/last prices, raw changes, and official lab price. Missing details like ordering or pagination are minor and not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying that the date parameters are alternatives ('Give either days, or from/to, or at'), which is not made explicit in the individual parameter descriptions. It does not need to repeat schema details, so 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns 'Price history of one model', making the resource and scope clear. It contrasts with sibling tools like cheapest and compare_providers by focusing on historical tracking rather than comparisons or estimates, so an agent can distinguish it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to specify date windows ('Give either days, or from/to, or at'), which is parameter-level guidance. However, it does not explicitly state when to prefer this tool over search_models, cheapest, or compare_providers; the 'one model' phrase provides only weak inference rather than clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_modelsSearch modelsARead-onlyIdempotentInspect
Find the exact id of an LLM tracked by InferIndex from a name or partial name (e.g. 'deepseek', 'qwen3 max', 'claude opus'). Returns matching model ids and names, best match first.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Model name or part of it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. The description adds valuable context: it returns matching IDs and names, orders by best match first, and supports partial names. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the primary purpose front-loaded and no filler. Examples are embedded naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description appropriately states what is returned (IDs and names, best match first). It omits edge-case handling (e.g., no results) but is sufficient for a typical lookup scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single query parameter. The description adds examples and clarifies partial matching, which is helpful but only a modest enhancement over the schema's 'Model name or part of it'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and names the resource ('exact id of an LLM tracked by InferIndex'), with concrete examples. It clearly distinguishes this lookup tool from cost-focused siblings like cheapest and estimate_cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied for retrieving model IDs from names, but there are no explicit alternatives or when-not-to-use conditions. The tool's purpose makes the context clear, but it does not state exclusions or trade-offs versus sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
cheapest - First observed
compare_providers - First observed
estimate_cost - First observed
price_history - First observed
search_models
Related MCP Connectors
Live LLM API pricing: token prices, comparisons, cheapest-model lookups. No key required.
Live LLM API price + status radar across 11 providers, with public per-model price HISTORY.
LLM and GPU rental prices: model price lookup, GPU listings, cheapest-GPU search, price history
Compare LLM API pricing, estimate workload costs, and benchmark cloud compute. By OptimNow.
Related MCP Servers
- AlicenseAqualityAmaintenanceLive LLM API pricing: current token prices, model comparisons, cheapest-model lookups, and The LLM Price Index for 150+ models across 20+ providers, re-verified daily. No API key required.51MIT
- AlicenseAqualityAmaintenanceDaily-verified LLM API pricing dataset (44+ models, CN & global) with a hosted MCP server for live price queries and token cost estimation.2CC BY-4.0
- AlicenseNot gradedqualityBmaintenanceToken cost math for LLM API calls: current per-million-token rates for 69 models across 17 providers, with local arithmetic for estimates, comparisons and monthly budgets. Rates are verified and date-stamped.21 npm2MIT
- AlicenseNot gradedqualityDmaintenanceCompare AI inference pricing across 9 providers in real time. Routing recommendations, spend tracking, and budget alerts for AI agents.34 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.