The world's first AI model cost estimation API. Calculate, compare, and optimize AI spending across all major providers.
Server has 6 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (calculate_cost, estimate_monthly, compare_models, find_cheapest, estimate_tokens, list_models). All tools have 10-200 char descriptions and required parameters are clearly marked. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Parameter descriptions are minimal (avg 40 chars vs baseline 72). No error handling guidance, no recovery hints, and no per-item success/failure patterns for batch operations. Missing tool annotations (readOnlyHint, idempotentHint). All tools are read-only, which is good for safety but should be explicitly declared.
Calculate the cost of a single AI API request for a specific model and token count
Compare costs across all AI models for the same workload, sorted cheapest first
Estimate monthly cost based on daily usage patterns
Estimate token count from text input
Find the cheapest AI model(s) that fit within an optional budget
List all available AI models with their pricing information
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream tool chaining or data extraction. E.g., calculate_cost returns cost but structure unknown.
No error handling guidance. Tools return {error: 'message'} but do not guide LLM on recovery (retry, lookup, ask user). E.g., 'Unknown tool' error gives no next step.
Tool annotations missing. All tools are read-only but lack readOnlyHint in schema. Agents cannot distinguish safe tools from destructive ones without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Parameter descriptions are minimal (avg 40 chars vs baseline 72). E.g., 'Model ID' lacks format guidance; 'Average requests per day' lacks range constraints (1-1000?). LLMs cannot validate inputs without explicit constraints.
list_models response structure unclear. Does it return {models: [...]} or {provider, models: [...]}? Inconsistent response format (conditional on provider param) breaks LLM chaining expectations.