Skip to main content
Glama

Compare provider offers

offer_compare
Read-onlyIdempotent

Rank current chat offers for up to five canonical model slugs with the website calculator: context-tier prices, cache reads/writes, retries, supported batch rates, capability/benchmark requirements, provider/route preferences, and evidence filters. Input totals include cache shares; cache_hit_percent plus cache_write_percent must be <=100. Average request sizes determine tiers and capacity. Batch is Anthropic direct only. Unknown required evidence excludes offers; missing cache-read rates use standard input rates. Inspect costs, qualification, warnings, assumptions, excludedModels, and pagination.hasMore. Free quotas, non-token fees, and media token accounting are excluded.

Input Schema

NameRequiredDescriptionDefault
taskNoCoding requires the code capability; extraction requires structured output. Every offer must support chat.chat
limitNo
offsetNo
executionNoBatch supports Anthropic direct routes with a published 50% token discount; unsupported routes are excluded.standard
route_typeNoall
model_slugsYes
benchmark_idNolivebench
input_tokensNo
open_weightsNo
minimum_scoreNoZero disables score qualification; a positive threshold excludes missing exact benchmark matches.
output_tokensNo
retry_percentNo
provider_slugsNo
cache_hit_percentNo
require_known_hostNoExclude routes without a named underlying inference provider.
cache_write_percentNo
average_input_tokensNo
average_output_tokensNo
required_capabilitiesNo
minimum_context_tokensNo
require_official_pricesNoRequire official paired input/output price verification. Cache rates may have different source provenance.

Output Schema

NameRequiredDescriptionDefault
dataYes
metaYes
workloadYes
paginationYes
assumptionsYes
requirementsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed42 schema fields changed
    • addedInput schema / properties / average_input_tokens
      Added value: +{
      +  "default": 1500,
      +  "maximum": 10000000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / average_output_tokens
      Added value: +{
      +  "default": 400,
      +  "maximum": 10000000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / benchmark_id
      Added value: +{
      +  "default": "livebench",
      +  "enum": [
      +    "livebench",
      +    "aa-intelligence",
      +    "aa-coding",
      +    "aa-agentic",
      +    "swe-bench-verified-epoch-2-0-2",
      +    "terminal-bench-2-1-terminus-2",
      +    "terminal-bench-2-1-claude-code",
      +    "terminal-bench-2-1-codex",
      +    "gpqa-diamond",
      +    "otis-mock-aime-2024-2025",
      +    "livebench-coding",
      +    "livebench-agentic-coding",
      +    "livebench-reasoning",
      +    "livebench-math"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / cache_hit_percent
      Added value: +{
      +  "default": 0,
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / cache_write_percent
      Added value: +{
      +  "default": 0,
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / execution
      Added value: +{
      +  "default": "standard",
      +  "description": "Batch supports Anthropic direct routes with a published 50% token discount; unsupported routes are excluded.",
      +  "enum": [
      +    "standard",
      +    "batch"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 200,
      +  "maximum": 200,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / minimum_context_tokens
      Added value: +{
      +  "default": 0,
      +  "maximum": 10000000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / minimum_score
      Added value: +{
      +  "default": 0,
      +  "description": "Zero disables score qualification; a positive threshold excludes missing exact benchmark matches.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "maximum": 10000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / open_weights
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / require_known_host
      Added value: +{
      +  "default": false,
      +  "description": "Exclude routes without a named underlying inference provider.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / require_official_prices
      Added value: +{
      +  "default": false,
      +  "description": "Require official paired input/output price verification. Cache rates may have different source provenance.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / required_capabilities
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "enum": [
      +      "chat",
      +      "tool_use",
      +      "structured_output",
      +      "vision_input",
      +      "code",
      +      "reasoning"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 6,
      +  "type": "array"
      +}
    • addedInput schema / properties / retry_percent
      Added value: +{
      +  "default": 0,
      +  "maximum": 1000,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / route_type
      Added value: +{
      +  "default": "all",
      +  "enum": [
      +    "all",
      +    "official",
      +    "cloud",
      +    "gateway",
      +    "unverified"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / task
      Added value: +{
      +  "default": "chat",
      +  "description": "Coding requires the code capability; extraction requires structured output. Every offer must support chat.",
      +  "enum": [
      +    "chat",
      +    "coding",
      +    "extraction",
      +    "custom"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / assumptions
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / properties / excludedModels
      Added value: +{
      +  "items": {
      +    "properties": {
      +      "modelSlug": {
      +        "type": "string"
      +      },
      +      "reason": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "modelSlug",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / properties / offers / items / properties / costs
      Added value: +{
      +  "properties": {
      +    "cacheWriteUsd": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "cachedInputUsd": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "outputUsd": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "uncachedInputUsd": {
      +      "minimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "uncachedInputUsd",
      +    "cachedInputUsd",
      +    "cacheWriteUsd",
      +    "outputUsd"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / properties / offers / items / properties / offer / properties / evidence
      Added value: +{
      +  "properties": {
      +    "inferenceProvider": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "priceAuthority": {
      +      "type": "string"
      +    },
      +    "providerUrl": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "inferenceProvider",
      +    "providerUrl",
      +    "priceAuthority"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / properties / offers / items / properties / offer / properties / prices / properties / cacheWritePerMillionTokens
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / data / properties / offers / items / properties / offer / properties / prices / required
      Previous value: -[
      -  "inputPerMillionTokens",
      -  "outputPerMillionTokens",
      -  "cachedInputPerMillionTokens"
      -]New value: +[
      +  "inputPerMillionTokens",
      +  "outputPerMillionTokens",
      +  "cachedInputPerMillionTokens",
      +  "cacheWritePerMillionTokens"
      +]
    • addedOutput schema / properties / data / properties / offers / items / properties / offer / properties / provenance / properties / checkedAt / anyOf
      Added value: +[
      +  {
      +    "format": "date",
      +    "type": "string"
      +  },
      +  {
      +    "format": "date-time",
      +    "type": "string"
      +  }
      +]
    • removedOutput schema / properties / data / properties / offers / items / properties / offer / properties / provenance / properties / checkedAt / format
      Removed value: -"date"
    • removedOutput schema / properties / data / properties / offers / items / properties / offer / properties / provenance / properties / checkedAt / type
      Removed value: -"string"
    • changedOutput schema / properties / data / properties / offers / items / properties / offer / required
      Previous value: -[
      -  "id",
      -  "model",
      -  "provider",
      -  "routeType",
      -  "prices",
      -  "limits",
      -  "provenance"
      -]New value: +[
      +  "id",
      +  "model",
      +  "provider",
      +  "routeType",
      +  "prices",
      +  "limits",
      +  "provenance",
      +  "evidence"
      +]
    • addedOutput schema / properties / data / properties / offers / items / properties / qualification
      Added value: +{
      +  "properties": {
      +    "benchmark": {
      +      "anyOf": [
      +        {
      +          "type": "null"
      +        },
      +        {
      +          "properties": {
      +            "configuration": {
      +              "type": "string"
      +            },
      +            "id": {
      +              "type": "string"
      +            },
      +            "minimumScore": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "score": {
      +              "maximum": 100,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "sourceUrl": {
      +              "format": "uri",
      +              "type": "string"
      +            },
      +            "version": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "id",
      +            "minimumScore",
      +            "score",
      +            "version",
      +            "configuration",
      +            "sourceUrl"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "requiredCapabilities": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "requiredContextTokens": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "requiredOutputTokens": {
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "requiredContextTokens",
      +    "requiredOutputTokens",
      +    "requiredCapabilities",
      +    "benchmark"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / properties / offers / items / properties / warnings
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / data / properties / offers / items / required
      Previous value: -[
      -  "offer",
      -  "workloadCostUsd"
      -]New value: +[
      +  "offer",
      +  "workloadCostUsd",
      +  "costs",
      +  "qualification",
      +  "warnings"
      +]
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "offers"
      -]New value: +[
      +  "offers",
      +  "excludedModels"
      +]
    • addedOutput schema / properties / pagination
      Added value: +{
      +  "properties": {
      +    "hasMore": {
      +      "type": "boolean"
      +    },
      +    "limit": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "offset": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "page": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "pageCount": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "pageSize": {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "total": {
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / requirements
      Added value: +{
      +  "properties": {
      +    "benchmarkId": {
      +      "type": "string"
      +    },
      +    "minimumContextTokens": {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "minimumScore": {
      +      "maximum": 100,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "modelSlugs": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "openWeights": {
      +      "type": "boolean"
      +    },
      +    "providerSlugs": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "requireKnownHost": {
      +      "type": "boolean"
      +    },
      +    "requireOfficialPrices": {
      +      "type": "boolean"
      +    },
      +    "requiredCapabilities": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "routeType": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "modelSlugs",
      +    "providerSlugs",
      +    "requiredCapabilities",
      +    "minimumContextTokens",
      +    "openWeights",
      +    "routeType",
      +    "benchmarkId",
      +    "minimumScore",
      +    "requireOfficialPrices",
      +    "requireKnownHost"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / workload / properties / averageInputTokens
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workload / properties / averageOutputTokens
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workload / properties / cacheHitPercent
      Added value: +{
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / workload / properties / cacheWritePercent
      Added value: +{
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / workload / properties / execution
      Added value: +{
      +  "enum": [
      +    "standard",
      +    "batch"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / workload / properties / retryPercent
      Added value: +{
      +  "maximum": 1000,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / workload / properties / task
      Added value: +{
      +  "enum": [
      +    "chat",
      +    "coding",
      +    "extraction",
      +    "custom"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / workload / required
      Previous value: -[
      -  "inputTokens",
      -  "outputTokens"
      -]New value: +[
      +  "inputTokens",
      +  "outputTokens",
      +  "averageInputTokens",
      +  "averageOutputTokens",
      +  "cacheHitPercent",
      +  "cacheWritePercent",
      +  "retryPercent",
      +  "execution",
      +  "task"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "meta",
      -  "workload",
      -  "data"
      -]New value: +[
      +  "meta",
      +  "workload",
      +  "requirements",
      +  "assumptions",
      +  "data",
      +  "pagination"
      +]
  2. Changed3 schema fields changed
    • addedInput schema / $schema
      Added value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / model_slugs / items / pattern
      Added value: +"^[a-zA-Z0-9._:-]+$"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "properties": {
      +        "offers": {
      +          "items": {
      +            "properties": {
      +              "offer": {
      +                "properties": {
      +                  "id": {
      +                    "type": "string"
      +                  },
      +                  "limits": {
      +                    "properties": {
      +                      "contextTokens": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 1,
      +                            "type": "integer"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ]
      +                      },
      +                      "maxOutputTokens": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 1,
      +                            "type": "integer"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ]
      +                      }
      +                    },
      +                    "required": [
      +                      "contextTokens",
      +                      "maxOutputTokens"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "model": {
      +                    "properties": {
      +                      "name": {
      +                        "type": "string"
      +                      },
      +                      "slug": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "slug",
      +                      "name"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "prices": {
      +                    "properties": {
      +                      "cachedInputPerMillionTokens": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 0,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ]
      +                      },
      +                      "inputPerMillionTokens": {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "outputPerMillionTokens": {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "inputPerMillionTokens",
      +                      "outputPerMillionTokens",
      +                      "cachedInputPerMillionTokens"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "provenance": {
      +                    "properties": {
      +                      "checkedAt": {
      +                        "format": "date",
      +                        "type": "string"
      +                      },
      +                      "sourceUrl": {
      +                        "format": "uri",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "sourceUrl",
      +                      "checkedAt"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "provider": {
      +                    "properties": {
      +                      "name": {
      +                        "type": "string"
      +                      },
      +                      "slug": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "slug",
      +                      "name"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "routeType": {
      +                    "enum": [
      +                      "official",
      +                      "cloud",
      +                      "gateway",
      +                      "unverified"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "id",
      +                  "model",
      +                  "provider",
      +                  "routeType",
      +                  "prices",
      +                  "limits",
      +                  "provenance"
      +                ],
      +                "type": "object"
      +              },
      +              "workloadCostUsd": {
      +                "minimum": 0,
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "offer",
      +              "workloadCostUsd"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "offers"
      +      ],
      +      "type": "object"
      +    },
      +    "meta": {
      +      "properties": {
      +        "apiVersion": {
      +          "const": "v1"
      +        },
      +        "currency": {
      +          "const": "USD"
      +        },
      +        "tokenPriceUnit": {
      +          "const": "per_million_tokens"
      +        }
      +      },
      +      "required": [
      +        "apiVersion",
      +        "currency",
      +        "tokenPriceUnit"
      +      ],
      +      "type": "object"
      +    },
      +    "workload": {
      +      "properties": {
      +        "inputTokens": {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "outputTokens": {
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "inputTokens",
      +        "outputTokens"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "meta",
      +    "workload",
      +    "data"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world. Beyond that, the description adds real behavioral rules: batch is Anthropic-direct only, unknown required evidence excludes offers, missing cache-read rates fall back to standard input rates, and free quotas/non-token fees/media token accounting are excluded. This is substantive context an agent cannot get from annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is information-dense with essentially no filler, and the purpose and scope are front-loaded. The trade-off is that it reads as one long run-on paragraph with no separation, which slightly hurts scannability for a 21-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description does not need to explain return values, and it appropriately just points at costs, qualification, warnings, excludedModels and pagination.hasMore. Given the high parameter complexity and low schema coverage, a little more per-parameter detail would be ideal, but overall it is close to complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 24% across 21 parameters, so the description must compensate. It does add meaning for cache shares (cache_hit_percent + cache_write_percent <= 100), average request sizing driving tiers, retries, and evidence/capability filters. However, many parameters (limit, offset, input/output token totals, open_weights, minimum_context_tokens, route_type) get no semantic elaboration, leaving a meaningful gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Rank current chat offers for up to five canonical model slugs with the website calculator.' This is clearly a cost/offer ranking tool, distinct-ish from catalog_search and price_watch. It does not explicitly name sibling tools, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance relative to siblings like price_watch, model_detail, or catalog_search. The description explains what inputs do and lists constraints, but never states the conditions under which an agent should choose this tool over the alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources