Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
LLM API prices across 70+ providers: cheapest offer, comparisons, history and cost estimates.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.inferindex.dev/mcpRun this in your terminal
claude mcp add --transport http inferindex https://mcp.inferindex.dev/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"inferindex": {
"url": "https://mcp.inferindex.dev/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"inferindex": {
"type": "http",
"url": "https://mcp.inferindex.dev/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.inferindex.dev/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 9, 2026. The maker wrote them, not us; we show them as plain text.
search_modelsFind 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.
cheapestCheapest 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
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 prompts when published; the cheapest offer comes in detail. Pass detail: "full" for context, every publi
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 time. Give either days, or from/to (YYYY-MM-DD), or at (a date) for the prices in effect that day.
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 price into account. Offers sorted by estimated cost, cheapest first: the cheapest in detail, then one sh
provider_rankingProviders ranked by how far below or above the market their prices are: each provider's median gap to the market, in percent (score_pct, negative when below the market), where the market of a model is the median blended 3:1 price of its providers, counted only on models with at l
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 of that configuration. Prices are per GPU per hour, as published by each provider, and dated. Tiers
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. One block per tier (guaranteed, community, spot), each with its own cheapest offer, also given per configuration (cheapest_by
self_host_or_apiIs 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 sel
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026
The registry name was verified with the GitHub account InferIndex, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 252 ms (HTTP 200)
No sign-in needed
Read 9 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
InferIndex finds the cheapest provider for a given LLM, across more than 60 tracked pricing sources — direct provider APIs and aggregators/routers — with price history and promotion detection.
Live API: https://api.inferindex.dev
Service status: https://status.inferindex.dev (external uptime monitoring)
This repository holds the public documentation, examples and (eventually) a client SDK for that API. The backend itself — collection, parsers, data model — lives in a separate private repository.
curl "https://api.inferindex.dev/cheapest?model=deepseek/deepseek-v3.2"
_Example response as of 2026-10-07 — prices, providers and statuses change._
{
"query": "deepseek/deepseek-v3.2", "model": { "id": "deepseek/deepseek-v3.2", "name": "DeepSeek: DeepSeek V3.2" }, "other_matches": [], "sort": "blended", "cheapest": { "provider": "GMICloud", "via": "openrouter", "via_name": "OpenRouter", "offer_url": "https://openrouter.ai/models", "offer_url_kind": "pricing", "tier": "standard", "input_per_1M": 0.2088, "output_per_1M": 0.3096, "cache_read_per_1M": 0.0216, "blended_per_1M": 0.234, "currency": "USD", "quantization": "fp8", "quantization_source": "declared", "context_length": 163840, "promo": true, "also_via": [ "kilo" ], "unverified": [] }, "offers": [ { "provider": "GMICloud", "via": "openrouter", "via_name": "OpenRouter", "blended_per_1M": 0.234, "…": "…" }, { "provider": "Nous Portal", "via": "nous", "via_name": "Nous Portal", "blended_per_1M": 0.234, "…": "…" } ], "hidden_tiers": { "flex": 1 }, "filters_unknown": {}, "strict": false }
Prices are in USD per million tokens, converted at the day's ECB rate when the source publishes another currency. blended_per_1M is (3 × input + output) / 4, a rough proxy for a typical chat workload. Each offer appears once, at its cheapest source: via is "direct" or the aggregator it comes from, and also_via lists other sources selling the same offer. promo is false unless a promotion was detected, in which case confidence and price_before_promo are filled in.
Early / actively developed. The API is public and free to use, without authentication, but there is no uptime guarantee, no versioned API contract yet, and endpoints or response shapes may change. If you build something on it, expect to adjust when they do. Feedback and issues are welcome.
Service status: https://status.inferindex.dev (external uptime monitoring). It shows current and past availability; it is not an uptime guarantee.
Provider pricing pages disagree, change without notice, and rarely show what resellers actually charge for the same model. InferIndex collects prices from more than 60 sources, each read from its own listing on its own schedule (from hourly to daily depending on the source), stores every change, and answers "who is cheapest for model X right now" from that history — client requests never trigger a live call to a provider.
Cache-Control: public, max-age=300 (5 minutes) (except /health/ready, never cached). On the custom domain, responses are additionally held in Cloudflare's edge cache for the same 5 minutes./cheapest, /history, /resellers, /self-host, /gpus and /gpu-rentals, counting only requests not answered from cache. An optional API key (x-api-key header) raises this to 300 requests per minute per key; free keys will be offered, self-service sign-up isn't available yet. An invalid key returns429. The MCP server has its own limits, see Use with AI assistants.prompt_tokens, output_tokens, cached_ratio and requests_per_day to /cheapest or /resellers to get an estimated cost per request and per month for each offer, and sort=estimated_cost to rank by it. See docs/api.md.flex, batch — lower priority, variable latency, in exchange for a lower price) are excluded from /cheapest and /resellers unless you ask for them with include_tiers=flex,batch. The number hidden is reported in hidden_tiers.Data corrections are listed in the changelog.
InferIndex is a comparison tool, not a source of truth. Treat every price as "what our collector last saw", not as a guarantee of what you will be billed:
| Route | What it does |
|---|---|
GET /cheapest?model=deepseek/deepseek-v3.2 | Cheapest offer across all active sources, and every matching offer deduplicated and sorted |
GET /resellers?model=deepseek/deepseek-v3.2 | Current prices across every reseller (direct and via aggregators), one line per source, paginated beyond 100 offers |
GET /history?model=deepseek/deepseek-v3.2&days=30&granularity=day | Price history, paginated by cursor |
GET /models?search=deepseek | Search tracked models |
GET /gpus | GPU types tracked for rental prices, with the lowest price of each tier — see GPU rental prices |
GET /gpu-rentals?gpu=h100-sxm-80gb | Rental offers for one GPU, one block per tier — see GPU rental prices |
GET /self-host?model=qwen/qwen3-32b&tokens_per_day=50000000 | Is it cheaper to rent GPUs and run an open-weights model yourself, or to use the cheapest API offer? An estimate, hardware rental only — see how the answer is built |
GET /trending | Up to 10 models currently getting attention, recomputed about every 6 hours |
GET /index?series=market | Weekly market index, published every Monday since 2026-10-05 — see the methodology |
GET /health/live | Liveness only: the service is up, no database access |
GET /health/ready | Readiness: data freshness and scheduler health, see below |
/mcp | MCP server for AI assistants, see Use with AI assistants |
/cheapest filterssort=blended\|input\|output — sort order (default blended)min_context=100000 — minimum context windowquantization=fp8,bf16 — accepted quantizationsmin_uptime=95 — minimum 30-minute uptime (%), as observed by an aggregator (not measured by InferIndex)tools=true, json=true, vision=true — only offers declared to support tool calling, JSON output, image inputregion=eu — only offers processed in that region (eu, us, cn, uk, ch, sg, id, my, vn, kr, jp, in, ca, au), per the providers' official documentsno_training=true — only offers whose providers state they don't train on promptsno_waitlist=true — only providers whose signup is open to everyonestrict=true — also drop offers for which the filtered data is unknown (by default they're kept and flagged in unverified, counted in filters_unknown)include_tiers=flex,batch — include degraded service tiers (excluded by default, see above)explain=true — list every excluded offer with its reason codes (an explanation summary is always included)Offers also carry conditions (data region, retention, training on prompts, and what it takes to open an account — each with its official source link), quantization_source (whether the compute precision is declared by the source or inferred), and, on /resellers, reliability from the providers' official status pages. See docs/api.md.
/historygranularity=raw returns one row per price change; day / week (weeks start Monday) return one point per period and per offer (provider, quantization, variant) with min, max and last price. Use days or from/to for a period, or at=2026-09-15 for the prices in force at a given moment. Prices are converted to USD at the ECB rate of the day of the price.
Model search (/models):
curl "https://api.inferindex.dev/models?search=deepseek"
_Example response as of 2026-09-15 — prices, providers and statuses change._
{
"count": 19, "models": [ { "id": "deepseek/deepseek-v3.2", "name": "DeepSeek: DeepSeek V3.2" }, { "id": "deepseek/deepseek-v4.1-flash", "name": "DeepSeek: DeepSeek V4.1 Flash" } ] }
/health/ready_Example response as of 2026-09-15 — prices, providers and statuses change._
{
"ready": true, "status": "ok", "failures": [], "degraded": [], "warnings": ["2 price source(s) in error", "1 announcement source(s) in error"], "prices": { "current_offers": 5664, "latest_check_at": "2026-09-15T05:01:05.639Z", "latest_check_age_minutes": 1.5 }, "watcher": { "active_sources": 84, "errors": 1, "persistent_errors": 0, "latest_check_at": "2026-09-15T05:02:08.890Z", "latest_check_age_minutes": 0.4 }, "schedulers": { "active": 62, "ok": 62, "starting": 0, "late": 0, "not_started": 0 }, "source_errors": { "count": 1, "persistent": 0 }, "version": { "id": "…", "tag": "", "deployed_at": "…" }, "checked_at": "2026-09-15T05:02:34.383Z" }
status is ok, degraded (a non-critical part is having trouble — see the degraded array for which) or unavailable (no usable price data). HTTP 200 for ok/degraded, 503 for unavailable. Useful as an uptime-monitor target if you depend on this API.
Full route and parameter reference: docs/api.md.
InferIndex is also available as a remote MCP server, so an AI assistant can look up prices for you:
https://mcp.inferindex.dev/mcp (Streamable HTTP) (https://api.inferindex.dev/mcp also works, as an alias)io.github.InferIndex/inferindex.x-api-key header./mcp, at most 10 JSON-RPC messages per batch and 64 KB per request (otherwise 400 or 413 with JSON-RPC error -32600). Over the rate limit: 429 with JSON-RPC error -32000. Each tool call also counts toward the limit of the API route it uses (/cheapest, /resellers, /history, /self-host, /gpus, /gpu-rentals).| Tool | What it does |
|---|---|
search_models(query) | Find the exact id of a model |
cheapest(model, …) | Cheapest offers, with the same filters as /cheapest (min_context, tools, json, vision, region, no_training, no_waitlist, strict, include_tiers), optional usage (prompt_tokens, output_tokens, cached_ratio, requests_per_day) and limit |
compare_providers(model, sort, limit, …) | Every offer, one line per provider, with usage conditions and reliability |
| `price_history(model, days \| from +
Only the beginning is shown; read the rest in the repo