Compare LLM API and cloud compute pricing, estimate workload costs, pick a model within budget.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare cloud compute instance pricing across AWS, Azure, GCP, DigitalOcean, OCI, OVH, and Alibaba. Filter by region, provider, vCPUs, memory, category, processor, or use case. All prices are Linux on-demand list prices in USD. Not every price column is live: `provenance.priceTypes` says which of each provider's price columns come from a live API, which are static constants, and which are unavailable, and `provenance.staticPriceColumns` lists the non-live ones outright; a savings-plan or reserved rate that appears there is a static estimate, not a live quote. Prices are returned as the catalogue serves them and dated by `provenance`.
Max instances to return (default: 20)
Pricing region: us-east, us-west, europe, asia-pacific. Default: us-east
Sort by: price, vcpus, memory, pricePerVCPU. Default: price
Use case. Must be one of these exactly (case-insensitive): Web App, Database, HPC, ML & AI, Dev/Test, Big Data. Any other string returns zero matches rather than an error.
Instance category. Must be one of these exactly (case-insensitive): General Purpose, Compute Optimized, Memory Optimized, Storage Optimized, GPU / Accelerated, Burstable. Any other string returns zero matches rather than an error.
Maximum number of vCPUs
Minimum number of vCPUs
Cloud provider. Must be one of these exactly (case-insensitive): AWS, Azure, GCP, DigitalOcean, OCI, OVH, Alibaba. Any other string returns zero matches rather than an error.
Maximum memory in GiB
Minimum memory in GiB
Processor. Matched by exact equality (case-insensitive), so a partial value like 'H100' returns nothing. Known values: Intel, AMD, Graviton, Ampere, NVIDIA A100, NVIDIA H100, NVIDIA L4, NVIDIA T4, NVIDIA V100, NVIDIA Other.
Compare cloud compute instance pricing across AWS, Azure, GCP, DigitalOcean, OCI, OVH, and Alibaba. Filter by region, provider, vCPUs, memory, category, processor, or use case. All prices are Linux on-demand list prices in USD. Not every price column is live: `provenance.priceTypes` says which of each provider's price columns come from a live API, which are static constants, and which are unavailable, and `provenance.staticPriceColumns` lists the non-live ones outright; a savings-plan or reserved rate that appears there is a static estimate, not a live quote. Prices are returned as the catalogue serves them and dated by `provenance`.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max instances to return (default: 20) |
| region | string | Pricing region: us-east, us-west, europe, asia-pacific. Default: us-east |
| sortBy | string | Sort by: price, vcpus, memory, pricePerVCPU. Default: price |
| useCase | string | Use case. Must be one of these exactly (case-insensitive): Web App, Database, HPC, ML & AI, Dev/Test, Big Data. Any other string returns zero matches rather than an error. |
| category | string | Instance category. Must be one of these exactly (case-insensitive): General Purpose, Compute Optimized, Memory Optimized, Storage Optimized, GPU / Accelerated, Burstable. Any other string returns zero matches rather than an error. |
| maxVCPUs | number | Maximum number of vCPUs |
| minVCPUs | number | Minimum number of vCPUs |
| provider | string | Cloud provider. Must be one of these exactly (case-insensitive): AWS, Azure, GCP, DigitalOcean, OCI, OVH, Alibaba. Any other string returns zero matches rather than an error. |
| maxMemory | number | Maximum memory in GiB |
| minMemory | number | Minimum memory in GiB |
| processor | string | Processor. Matched by exact equality (case-insensitive), so a partial value like 'H100' returns nothing. Known values: Intel, AMD, Graviton, Ampere, NVIDIA A100, NVIDIA H100, NVIDIA L4, NVIDIA T4, NVIDIA V100, NVIDIA Other. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"maximum": 50,
"minimum": 1,
"description": "Max instances to return (default: 20)"
},
"region": {
"enum": [
"us-east",
"us-west",
"europe",
"asia-pacific"
],
"type": "string",
"description": "Pricing region: us-east, us-west, europe, asia-pacific. Default: us-east"
},
"sortBy": {
"enum": [
"price",
"vcpus",
"memory",
"pricePerVCPU"
],
"type": "string",
"description": "Sort by: price, vcpus, memory, pricePerVCPU. Default: price"
},
"useCase": {
"type": "string",
"description": "Use case. Must be one of these exactly (case-insensitive): Web App, Database, HPC, ML & AI, Dev/Test, Big Data. Any other string returns zero matches rather than an error."
},
"category": {
"type": "string",
"description": "Instance category. Must be one of these exactly (case-insensitive): General Purpose, Compute Optimized, Memory Optimized, Storage Optimized, GPU / Accelerated, Burstable. Any other string returns zero matches rather than an error."
},
"maxVCPUs": {
"type": "number",
"description": "Maximum number of vCPUs"
},
"minVCPUs": {
"type": "number",
"description": "Minimum number of vCPUs"
},
"provider": {
"type": "string",
"description": "Cloud provider. Must be one of these exactly (case-insensitive): AWS, Azure, GCP, DigitalOcean, OCI, OVH, Alibaba. Any other string returns zero matches rather than an error."
},
"maxMemory": {
"type": "number",
"description": "Maximum memory in GiB"
},
"minMemory": {
"type": "number",
"description": "Minimum memory in GiB"
},
"processor": {
"type": "string",
"description": "Processor. Matched by exact equality (case-insensitive), so a partial value like 'H100' returns nothing. Known values: Intel, AMD, Graviton, Ampere, NVIDIA A100, NVIDIA H100, NVIDIA L4, NVIDIA T4, NVIDIA V100, NVIDIA Other."
}
}
}Browse and filter the whole LLM catalogue and get back a ranked table: price, quality (ELO), efficiency and capabilities. Use this when the user wants to SEE THE FIELD — 'show me models under $1/1M', 'which providers have vision models', 'list open-weight models above ELO 1300'. For a single PICK under a budget use recommend-llm-model; to weigh 2-4 NAMED models against each other use compare-models-side-by-side. Prices come from optimtoken.optimnow.io where reachable; the response's `provenance` says which tier served them and whether they are vendor-verified. Filter by provider, price tier (category), openness, capability, price range, or minimum ELO score. Optionally enrich with business metrics for a use case. Price tier and openness are independent: a model can be Frontier-priced and open-weight at once. Reports both list-price cost and the optimized cost achievable with prompt caching and the batch API. Prices, costs and scores are final as returned: rounded and ranked server-side, and dated by `provenance`. The text block is a numbered table of the same figures.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max models to return (default: 15) |
| minElo | number | Minimum Chatbot Arena ELO score. Typical range 1000-1500; ~1400 is roughly frontier-class. Models with no ELO score never satisfy this. |
| category | string | Price tier, matched by exact equality (case-insensitive): Frontier, Mid-tier, Budget, Image. This is cost only — self-hostability is the separate `openness` axis. |
| openness | string | Filter by self-hostability, derived from the licence: Open source, Open weights, Proprietary, Unknown |
Compare 2-4 named LLM models against all 8 use-case profiles at a chosen monthly volume, showing list and optimized cost for each. Use when the user names specific models to weigh against each other, rather than filtering the whole catalogue. If they also supply their own token counts, or a volume outside 10k/100k/1m, use estimate-llm-cost instead. Every name is resolved against the catalogue and the outcome is reported in `resolution` and in the text: a name that matched nothing, matched several models, or duplicated an earlier pick is stated explicitly, and such a name gets no column rather than a zero cost. Prices and costs are final as returned: rounded server-side and dated by `provenance`.
| Argument | Type | Description |
|---|---|---|
| models* | array | 2-4 model names to compare, e.g. ['GPT-4o', 'Claude Opus 5', 'Gemini 3.1 Pro'] |
| volumePreset | string | Monthly request volume: 10k, 100k, or 1m. Default: 100k |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"models"
],
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"minItems": 2,
"description": "2-4 model names to compare, e.g. ['GPT-4o', 'Claude Opus 5', 'Gemini 3.1 Pro']"
},
"volumePreset": {
"enum": [
"10k",
"100k",
"1m"
],
"type": "string",
"description": "Monthly request volume: 10k, 100k, or 1m. Default: 100k"
}
}
}Cost a workload with EXACT numbers the caller supplies: arbitrary token counts per request and any monthly volume, not just the 10k/100k/1m presets the other cost tools use. Use this for 'about 800 in and 200 out, 4 million calls a month', or to price one named model across every use-case profile. To compare 2-4 named models like for like at a preset volume, use compare-models-side-by-side instead. Provide a model name to get detailed cost breakdowns, or compare costs across all use case presets. Each figure comes twice: list price, and the optimized price achievable with prompt caching and the batch API. Cost figures are final as returned: rounded server-side and dated by `provenance`, with the lever behind each saving, or the reason there is none, named in the text.
| Argument | Type | Description |
|---|---|---|
| modelName | string | Model name, e.g. 'GPT-4o'. A partial name matches up to 5 models and ALL of them are costed. If omitted, the first 8 catalogue entries are used — that is catalogue order, not a quality ranking. |
| monthlyVolume | integer | Exact monthly request count, any integer (default 100,000). This tool does not take the 10k/100k/1m presets the other cost tools use. |
| useCasePreset | string | Workload shape, which sets tokens per request: supportTicket (1.5k in / 500 out), knowledgeQA (2k / 800), meetingSummary (10k / 1.2k, batch-eligible), marketingContent (2.5k / 1.8k), codingTask (3k / 2k), invoiceProcessing (1.5k / 600, batch-eligible), callSummary (2k / 700, batch-eligible), agentWorkflow (6k / 3k). Default: every preset. |
| customInputTokens | integer |
Pick a model. Returns a ranked top 3 for one workload under optional constraints, each with a per-constraint satisfied/violated breakdown as the evidence. Use this when the user wants an ANSWER rather than a table — 'what should I use for support tickets under $500 a month'. To browse or filter the whole catalogue instead, use compare-llm-models. Constraints: (monthly budget, minimum ELO, required capability, self-hostability). Returns a top 3 as structured facts — efficiency rank, ELO, list and optimized cost, FinOps flag, volatility, and a per-constraint satisfied/violated breakdown. When nothing satisfies every constraint the query is reported as over-constrained, `recommendations` is empty, and the nearest misses are returned in `nearMisses` instead, each carrying the constraint it failed and flagged as a miss in the text. The ranking is computed server-side and is final.
| Argument | Type | Description |
|---|---|---|
| minElo | number | Minimum Chatbot Arena ELO score. Typical range 1000-1500; ~1400 is roughly frontier-class. Models with no ELO score never satisfy this. |
| openness | string | Require a self-hostability bucket, derived from the licence: Open source, Open weights, Proprietary, Unknown |
| volumePreset | string | Monthly request volume: 10k, 100k, or 1m. Default: 100k |
| useCasePreset* | string | Workload shape, which sets tokens per request: supportTicket (1.5k in / 500 out), knowledgeQA (2k / 800), meetingSummary (10k / 1.2k, batch-eligible), marketingContent (2.5k / 1.8k), codingTask (3k / 2k), invoiceProcessing (1.5k / 600, batch-eligible), callSummary (2k / 700, batch-eligible), agentWorkflow (6k / 3k). |
| provider | string | Filter by provider name (e.g. 'OpenAI', 'Anthropic', 'Google') |
| capability | string | Capability, matched by exact equality (case-insensitive): Text, Vision, Reasoning, Agents, Image Gen, Audio. Any other string returns zero matches. There is no Code capability: for what coding costs, use useCasePreset codingTask. |
| volumePreset | string | Monthly request volume: 10k, 100k, or 1m. Default: 100k |
| maxInputPrice | number | Max input price per 1M tokens in USD |
| useCasePreset | string | Workload shape, which sets tokens per request: supportTicket (1.5k in / 500 out), knowledgeQA (2k / 800), meetingSummary (10k / 1.2k, batch-eligible), marketingContent (2.5k / 1.8k), codingTask (3k / 2k), invoiceProcessing (1.5k / 600, batch-eligible), callSummary (2k / 700, batch-eligible), agentWorkflow (6k / 3k). Default: supportTicket |
| maxOutputPrice | number | Max output price per 1M tokens in USD |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"maximum": 50,
"minimum": 1,
"description": "Max models to return (default: 15)"
},
"minElo": {
"type": "number",
"description": "Minimum Chatbot Arena ELO score. Typical range 1000-1500; ~1400 is roughly frontier-class. Models with no ELO score never satisfy this.",
"exclusiveMinimum": 0
},
"category": {
"type": "string",
"description": "Price tier, matched by exact equality (case-insensitive): Frontier, Mid-tier, Budget, Image. This is cost only — self-hostability is the separate `openness` axis."
},
"openness": {
"enum": [
"Open source",
"Open weights",
"Proprietary",
"Unknown"
],
"type": "string",
"description": "Filter by self-hostability, derived from the licence: Open source, Open weights, Proprietary, Unknown"
},
"provider": {
"type": "string",
"description": "Filter by provider name (e.g. 'OpenAI', 'Anthropic', 'Google')"
},
"capability": {
"type": "string",
"description": "Capability, matched by exact equality (case-insensitive): Text, Vision, Reasoning, Agents, Image Gen, Audio. Any other string returns zero matches. There is no Code capability: for what coding costs, use useCasePreset codingTask."
},
"volumePreset": {
"enum": [
"10k",
"100k",
"1m"
],
"type": "string",
"description": "Monthly request volume: 10k, 100k, or 1m. Default: 100k"
},
"maxInputPrice": {
"type": "number",
"description": "Max input price per 1M tokens in USD"
},
"useCasePreset": {
"enum": [
"supportTicket",
"knowledgeQA",
"meetingSummary",
"marketingContent",
"codingTask",
"invoiceProcessing",
"callSummary",
"agentWorkflow"
],
"type": "string",
"description": "Workload shape, which sets tokens per request: supportTicket (1.5k in / 500 out), knowledgeQA (2k / 800), meetingSummary (10k / 1.2k, batch-eligible), marketingContent (2.5k / 1.8k), codingTask (3k / 2k), invoiceProcessing (1.5k / 600, batch-eligible), callSummary (2k / 700, batch-eligible), agentWorkflow (6k / 3k). Default: supportTicket"
},
"maxOutputPrice": {
"type": "number",
"description": "Max output price per 1M tokens in USD"
}
}
}| Custom input tokens per request. Must be supplied TOGETHER with customOutputTokens — either alone is ignored and the preset is used. A custom shape assumes no cacheable prefix and no batch eligibility, so its optimized cost equals its list cost. |
| customOutputTokens | integer | Custom output tokens per request. Must be supplied TOGETHER with customInputTokens — either alone is ignored and the preset is used. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"modelName": {
"type": "string",
"description": "Model name, e.g. 'GPT-4o'. A partial name matches up to 5 models and ALL of them are costed. If omitted, the first 8 catalogue entries are used — that is catalogue order, not a quality ranking."
},
"monthlyVolume": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1,
"description": "Exact monthly request count, any integer (default 100,000). This tool does not take the 10k/100k/1m presets the other cost tools use."
},
"useCasePreset": {
"enum": [
"supportTicket",
"knowledgeQA",
"meetingSummary",
"marketingContent",
"codingTask",
"invoiceProcessing",
"callSummary",
"agentWorkflow"
],
"type": "string",
"description": "Workload shape, which sets tokens per request: supportTicket (1.5k in / 500 out), knowledgeQA (2k / 800), meetingSummary (10k / 1.2k, batch-eligible), marketingContent (2.5k / 1.8k), codingTask (3k / 2k), invoiceProcessing (1.5k / 600, batch-eligible), callSummary (2k / 700, batch-eligible), agentWorkflow (6k / 3k). Default: every preset."
},
"customInputTokens": {
"type": "integer",
"maximum": 10000000,
"minimum": 1,
"description": "Custom input tokens per request. Must be supplied TOGETHER with customOutputTokens — either alone is ignored and the preset is used. A custom shape assumes no cacheable prefix and no batch eligibility, so its optimized cost equals its list cost."
},
"customOutputTokens": {
"type": "integer",
"maximum": 10000000,
"minimum": 1,
"description": "Custom output tokens per request. Must be supplied TOGETHER with customInputTokens — either alone is ignored and the preset is used."
}
}
}| maxMonthlyBudget | number | Maximum monthly budget in USD at the given volume. Tested against the LIST-price monthly cost, not the caching/batch-optimized cost. |
| requiredCapability | string | Capability the model must have: Text, Vision, Reasoning, Agents, Image Gen, Audio. There is no Code capability: for coding, pass useCasePreset codingTask. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"useCasePreset"
],
"properties": {
"minElo": {
"type": "number",
"description": "Minimum Chatbot Arena ELO score. Typical range 1000-1500; ~1400 is roughly frontier-class. Models with no ELO score never satisfy this.",
"exclusiveMinimum": 0
},
"openness": {
"enum": [
"Open source",
"Open weights",
"Proprietary",
"Unknown"
],
"type": "string",
"description": "Require a self-hostability bucket, derived from the licence: Open source, Open weights, Proprietary, Unknown"
},
"volumePreset": {
"enum": [
"10k",
"100k",
"1m"
],
"type": "string",
"description": "Monthly request volume: 10k, 100k, or 1m. Default: 100k"
},
"useCasePreset": {
"enum": [
"supportTicket",
"knowledgeQA",
"meetingSummary",
"marketingContent",
"codingTask",
"invoiceProcessing",
"callSummary",
"agentWorkflow"
],
"type": "string",
"description": "Workload shape, which sets tokens per request: supportTicket (1.5k in / 500 out), knowledgeQA (2k / 800), meetingSummary (10k / 1.2k, batch-eligible), marketingContent (2.5k / 1.8k), codingTask (3k / 2k), invoiceProcessing (1.5k / 600, batch-eligible), callSummary (2k / 700, batch-eligible), agentWorkflow (6k / 3k)."
},
"maxMonthlyBudget": {
"type": "number",
"description": "Maximum monthly budget in USD at the given volume. Tested against the LIST-price monthly cost, not the caching/batch-optimized cost.",
"exclusiveMinimum": 0
},
"requiredCapability": {
"type": "string",
"description": "Capability the model must have: Text, Vision, Reasoning, Agents, Image Gen, Audio. There is no Code capability: for coding, pass useCasePreset codingTask."
}
}
}