InferIndex
by InferIndex · remote · no sign-in to list tools · v1.0.0 · published by GitHub user InferIndex
LLM API prices across 70+ providers: cheapest offer, comparisons, history and cost estimates.
8 tools: 1 do something that can't be undone, 4 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things4Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http inferindex https://mcp.inferindex.dev/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnprice_history
The server marks "price_history" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Can't be undone 1Claude Code: ask
price_historyPrice 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 tim…1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "price_history" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Price history of a model
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Changes things 4Claude Code: ask
cheapestCheapest current API offers for one model across direct providers and aggregators, in USD per 1M tokens (input, output, blended 3:1).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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 in detail and one short line per following offer. A condition that is absent was not published by the provider, it never means "no"; a flag not listed in signals is false.
Annotations the server declares
- title: Cheapest offers for a model
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
estimate_costEstimated 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 pric…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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: the cheapest in detail, then one short line per offer with its estimated cost.
Annotations the server declares
- title: Estimate the cost of a workload
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
gpu_rentalsRental offers for one GPU type: provider, price in USD per GPU per hour, number of GPUs in the published configuration, billing and region when published.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Rental offers for one GPU type: provider, price in USD per GPU per hour, number of GPUs in the published configuration, billing and region when published. One block per tier (guaranteed, community, spot), each with its own cheapest offer, also given per configuration (cheapest_by_gpu_count: the price per GPU of a single GPU and of a multi-GPU node are not comparable); tiers are never compared with each other. guaranteed: capacity the provider presents as not interrupted; community: third-party hosts; spot: interruptible capacity. Prices are as published by the provider, and dated. Get the GPU id from list_gpus.
Annotations the server declares
- title: Rental offers for one GPU, by tier
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
self_host_or_apiIs it cheaper to host an open-weights model yourself on rented GPUs, or to use the cheapest API offer?No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Is it cheaper to host an open-weights model yourself on rented GPUs, or to use the cheapest API offer? Returns a one-sentence verdict (headline) and the numbers behind it: the break-even volume in million tokens per day, the throughput the whole configuration must deliver for self-hosting to cost less (required_tokens_per_second: compare it with what your setup does), the break-even utilization when a throughput is known, the GPU configuration and its hourly price, and what the verdict rests on (confidence). Without a volume you still get the verdict and the break-even volume. It is an estimate: the throughput is a published measurement (measured), an estimate scaled from one (derived; estimated for a wide range), or a published minimum (lower_bound: a floor, valid for requests of up to 2,048 tokens in total, that can show self-hosting wins, never that the API is cheaper); or you give your own tokens_per_second. When no published figure decides, the headline gives the break-even volume and the required throughput, to compare with yours, rather than a yes or no, and may point out a dearer setup that published figures do decide (settled_alternative: for comparison, not a recommendation). headline_kind and headline_values give the headline as fields. It declines to give a number (status refused, with a reason) when it cannot do so reliably, for example a closed model, weights that do not fit the requested GPU, or a GPU nobody rents. Hardware rental only: the hourly price the provider publishes for the machine. It does not count the engineering to deploy and run the model, monitoring, redundancy, start-up time, or storage and network costs billed separately.
Annotations the server declares
- title: Self-host an open model or use the API?
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 3Claude Code: allow
compare_providersCurrent offers for one model, one line per provider and source (direct or via an aggregator), cheapest first (10 by default), with price, quantization, signals and training on prom…No findings
Why it is in this group
- The name "compare_providers" says "compare": a word for reading.
Description, as the server wrote it Current offers for one model, one line per provider and source (direct or via an aggregator), cheapest first (10 by default), with price, quantization, signals and training on prompts when published; the cheapest offer comes in detail. Pass detail: "full" for context, every published condition (data regions, sign-up) and reliability from official status pages on each offer.
Annotations the server declares
- title: Compare providers for a model
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_gpusGPU types whose rental price InferIndex tracks (H100, A100, L40S…), with the lowest price per GPU per hour in USD for each tier (guaranteed, community, spot) and the number of GPUs…No findings
Why it is in this group
- The name "list_gpus" says "list": a word for reading.
Description, as the server wrote it GPU types whose rental price InferIndex tracks (H100, A100, L40S…), with the lowest price per GPU per hour in USD for each tier (guaranteed, community, spot) and the number of GPUs of that configuration. Prices are per GPU per hour, as published by each provider, and dated. Tiers are different products and are never compared with each other.
Annotations the server declares
- title: GPU types tracked for rental prices
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_modelsFind the exact id of an LLM tracked by InferIndex from a name or partial name (e.g.No findings
Why it is in this group
- The name "search_models" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search models
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 http inferindex https://mcp.inferindex.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__inferindex__search_models",
"mcp__inferindex__compare_providers",
"mcp__inferindex__list_gpus"
],
"ask": [
"mcp__inferindex__cheapest",
"mcp__inferindex__price_history",
"mcp__inferindex__estimate_cost",
"mcp__inferindex__gpu_rentals",
"mcp__inferindex__self_host_or_api"
],
"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 inferindex. Review it before you use it.
