MCP server for indextkn. Live list prices for 900+ AI models across 17 providers.
Strong tool definitions with clear naming, comprehensive descriptions, and well-structured schemas. All 7 tools follow verb_noun pattern (list_*, get_*, compare_*, calculate_*). Descriptions are detailed (150-300 chars) and explain WHEN to use each tool. Input schemas use Zod with proper types and descriptions. Output schemas documented via TypeScript interfaces. All parameters have descriptions and type constraints. Tool annotations (readOnlyHint) present. Minor gaps: some parameter descriptions could be more prescriptive about valid ranges; no explicit error recovery guidance in descriptions.
Price a token workload on every provider that sells the model, cheapest first. Use it whenever the question involves an amount of money. Never estimate a price from memory. Token counts are PER REQUEST and `requests` multiplies them. Step-up price tiers are applied for you: when the prompt (fresh input plus cached) clears a provider's threshold, the WHOLE prompt is billed at the tier rate.
The price spread for one model across every provider that sells it: cheapest, dearest, median, and the ratio between them. Answers 'who should we buy this from' and 'does the choice even matter'. Only offers priced per 1M tokens take part.
One model in full, with every provider's offer attached: prices, context window, max output, accuracy status and the source URL each price was read from. Use it when you need a specific provider's real numbers rather than the cross-provider best.
The current price of every matching offer (one per provider x model). Requires at least one of model, provider or lab. The full catalogue is deliberately not fetchable in one call. A null price means the provider publishes none; 0 means free. Two fields appear only on offers that have them: `price_tiers` (a step-up rate past a prompt size, which bills the whole prompt) and `off_peak_prices` (time-of-day rates beside the headline peak ones). Cite `source_url` when reporting a price.
Parameter descriptions lack explicit constraint guidance. E.g., 'limit' has max=200 in schema but description only says 'Rows to return (max 200)', no guidance on why 200 is the ceiling or what happens if exceeded.
Error handling descriptions missing. Tools return ApiError with code+message, but descriptions do not explain what errors are possible (e.g., 'model not found', 'invalid provider slug') or how to recover. Agents cannot anticipate failures.
Parameter 'model' in get_model, get_prices, compare_providers accepts 'Canonical id, short id or display name' but does not specify case-sensitivity or exact matching rules. LLMs may pass partial matches or incorrect casing.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 73 | 2025-06-18+ | v2 |
Every lab (model builder) indextkn tracks: who they are, how many models they have, which providers sell them, and whether they sell direct. Use it to find the exact `lab` slug every other tool takes.
Discover the AI models indextkn tracks and which providers sell each. Start here to find the exact `model`, `provider` and `lab` values every other tool takes. `context` and `max_output` here are the best across all providers; the per-provider numbers are on get_prices and get_model.
Every provider indextkn tracks: who they are, what they sell, and how many models and offers they have. Use it to find the exact `provider` slug every other tool takes.
Output schema for get_model is truncated in source (ends mid-definition at 'offers: z.array(s'). Cannot verify full output structure or whether all chaining IDs are present.
Pagination limit of 200 is high for LLM context. Descriptions do not warn agents about result size or recommend lower limits for multi-step workflows. Returning 200 models/prices in one call risks context exhaustion.