Skip to main content
Glama

Break-even throughput and gross margin

get_workload_cost
Read-onlyIdempotent

Break-even throughput, as each GPU's and each model's page shows it: the tokens per second one GPU must sell at a model's list price (3 input : 1 output) to cover the GPU's rental price today. Give a GPU for every model on it, a model for every GPU, or a company for its models; give a throughput for what the gross margin calculator on a model's page shows: the revenue per GPU-hour and the gross margin. For questions like "how many tokens per second must an H100 sell to cover its rent?".

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_workload_cost"
  }
}

Input Schema

NameRequiredDescriptionDefault
gpuNoOne GPU; omit for all listed.
modelNoA model's name or page id (e.g. "Claude Opus 5.5"); omit for every model.
companyNoOnly this company's models.
throughput_tokens_per_secondNoTokens per second one GPU generates (input and output, 3 to 1).

Output Schema

NameRequiredDescriptionDefault
noteNo
rowsYes
licenseNo
methodologyNo
throughput_tokens_per_secondNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "RTX PRO 6000",
      -  "L40S",
      -  "RTX A6000",
      -  "RTX 6000 Ada",
      -  "L40",
      -  "RTX 4090"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "RTX PRO 6000",
      +  "L40S",
      +  "RTX A6000",
      +  "RTX 6000 Ada",
      +  "L40",
      +  "RTX 5090",
      +  "RTX 4090"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "RTX PRO 6000",
      -  "L40S",
      -  "RTX A6000",
      -  "RTX 6000 Ada",
      -  "L40",
      -  "RTX 5090",
      -  "RTX 4090"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "RTX PRO 6000",
      +  "L40S",
      +  "RTX A6000",
      +  "RTX 6000 Ada",
      +  "L40",
      +  "RTX 4090"
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "RTX PRO 6000",
      -  "L40S",
      -  "RTX A6000",
      -  "RTX 6000 Ada",
      -  "L40",
      -  "RTX 4090"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "RTX PRO 6000",
      +  "L40S",
      +  "RTX A6000",
      +  "RTX 6000 Ada",
      +  "L40",
      +  "RTX 5090",
      +  "RTX 4090"
      +]
  4. Changed1 schema field changed
    • removedOutput schema / properties / rows / items / properties / list_price
      Removed value: -{
      -  "description": "The model's list price, 3 input : 1 output, USD per 1M tokens",
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
  5. Changed1 schema field changed
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "RTX PRO 6000",
      -  "L40S",
      -  "RTX A6000"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "RTX PRO 6000",
      +  "L40S",
      +  "RTX A6000",
      +  "RTX 6000 Ada",
      +  "L40",
      +  "RTX 4090"
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "RTX PRO 6000"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "RTX PRO 6000",
      +  "L40S",
      +  "RTX A6000"
      +]
  7. Changed15 schema fields changed
    • changedInput schema / properties / company / description
      Previous value: -"One company's index price."New value: +"Only this company's models."
    • changedInput schema / properties / company / enum
      Previous value: -[
      -  "Anthropic",
      -  "OpenAI",
      -  "Google",
      -  "xAI",
      -  "Meta",
      -  "Moonshot AI",
      -  "Alibaba",
      -  "DeepSeek",
      -  "Z.ai",
      -  "Xiaomi"
      -]New value: +[
      +  "Anthropic",
      +  "OpenAI",
      +  "Google",
      +  "xAI",
      +  "Meta",
      +  "Moonshot AI",
      +  "Alibaba",
      +  "DeepSeek",
      +  "Z.ai",
      +  "Xiaomi",
      +  "StepFun",
      +  "MiniMax",
      +  "Mistral",
      +  "Reflection AI",
      +  "NVIDIA",
      +  "Thinking Machines"
      +]
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "MI300X",
      -  "RTX PRO 6000",
      -  "L40S",
      -  "RTX A6000"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "RTX PRO 6000"
      +]
    • changedInput schema / properties / model / description
      Previous value: -"A model's name or page id (its posted prices); omit to use each company's index."New value: +"A model's name or page id (e.g. \"Claude Opus 5.5\"); omit for every model."
    • removedOutput schema / properties / rows / items / properties / blended_price
      Removed value: -{
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • changedOutput schema / properties / rows / items / properties / breakeven_tokens_per_second / description
      Previous value: -"Tokens per second one GPU must sell at the blended price to cover its rental"New value: +"Tokens per second one GPU must sell at the list price to cover its rental"
    • addedOutput schema / properties / rows / items / properties / company
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / rows / items / properties / cost_per_1m_tokens
      Removed value: -{
      -  "description": "The GPU's rental cost per 1M tokens at the given throughput",
      -  "type": [
      -    "number",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / rows / items / properties / gross_margin_pct / description
      Added value: +"At the given throughput, as the gross margin calculator"
    • addedOutput schema / properties / rows / items / properties / list_price
      Added value: +{
      +  "description": "The model's list price, 3 input : 1 output, USD per 1M tokens",
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / rows / items / properties / model
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / rows / items / properties / name
      Removed value: -{
      -  "description": "The model or company priced",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / rows / items / properties / rental_price / description
      Added value: +"The GPU's index, USD per GPU-hour"
    • addedOutput schema / properties / rows / items / properties / revenue_per_gpu_hour / description
      Added value: +"At the given throughput, as the gross margin calculator"
    • changedOutput schema / properties / rows / items / required
      Previous value: -[
      -  "gpu"
      -]New value: +[
      +  "gpu",
      +  "model"
      +]
  8. Changed1 schema field changed
    • changedInput schema / properties / gpu / enum
      Previous value: -[
      -  "H100",
      -  "H200",
      -  "A100",
      -  "B200",
      -  "B300",
      -  "MI300X",
      -  "RTX PRO 6000"
      -]New value: +[
      +  "H100",
      +  "H200",
      +  "A100",
      +  "B200",
      +  "B300",
      +  "MI300X",
      +  "RTX PRO 6000",
      +  "L40S",
      +  "RTX A6000"
      +]
  9. Changed7 schema fields changed
    • changedOutput schema / properties / license / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / methodology / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / note / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / rows / items / properties / gpu / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / rows / items / properties / name / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / rows / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedOutput schema / properties / rows / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
  10. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety bar is low. The description adds real context the annotations don't: the 3:1 input/output price assumption, that it uses today's rental price and list price, and that supplying a throughput switches the output to revenue per GPU-hour plus gross margin.

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

Conciseness3/5

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

It front-loads the core definition, which is good, but the middle is a long run-on chain of clauses that is hard to parse on one read. The example question at the end is useful; some of the duplicated 'as each GPU's and each model's page shows it' framing is not.

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 return values needn't be explained, and all four optional parameters are schema-documented. The description covers the two operating modes and the pricing assumptions, leaving only minor gaps such as default behavior when no filters are supplied.

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 100%, so the baseline is 3. The description does add some meaning beyond the schema — the aggregation semantics of gpu/model/company combinations and the fact that throughput_tokens_per_second changes the mode of the response — but it doesn't clarify units or the 3:1 convention's effect on that parameter beyond a passing mention.

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?

The description names a specific computed quantity — tokens per second one GPU must sell at a model's list price (3 input : 1 output) to cover that GPU's rental price today — which is clearly distinct from the pricing siblings like get_gpu_prices or get_model_prices. The phrasing is convoluted in places, but the verb and resource are identifiable.

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

Usage Guidelines3/5

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

It gives the input combinations that yield each output (a GPU for every model, a model for every GPU, a company for its models) and one example question, which implies when to reach for it. It never states when NOT to use it or names a sibling alternative, so routing still leans on inference.

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