Skip to main content
Glama

Estimate Databricks cost

estimate_cost
Read-onlyIdempotent

Estimate a Databricks workload's monthly cost from the figures the Field Guide states (list prices per DBU by compute type, DBUs an hour by SQL warehouse size and classic instance type, model serving prices for pay-per-token, provisioned throughput, GPU and CPU serving, Apps and Genie rates, the Lakebase floor, storage), as a range with its assumptions, and the price per unit under unit_prices. Every number carries its source sentence, section URL, date and the pricing page the guide cites. Where the guide has no figure (cloud VM prices, a serverless job's DBUs an hour, a model or instance type it does not list) it says so under gaps instead of guessing.

Input Schema

NameRequiredDescriptionDefault
sizeNoapps: medium (the default), large or xlarge; sql_warehouse: the t-shirt size, 2x-small, x-small, small, medium, large, x-large, 2x-large, 3x-large, 4x-large, 5x-large (DBUs an hour per cluster, from the guide); model_serving with serving gpu: t4, a10g, a10g-4, a10g-8, l40s, rtx-pro-6000, a100-40gb-8, a100-80gb-8, h100, h100-8
modelNomodel_serving, pay_per_token or provisioned_throughput: the model, as in 'Llama 3.3 70B' or 'claude-sonnet-5.5'
usersNogenie: the people using it
computeNojobs and all_purpose: serverless or classic; sql_warehouse: serverless, pro, classic, or lakehouse_rt (Beta) priced from DBUs you give
servingNomodel_serving: pay_per_token, provisioned_throughput, gpu or cpu (omit for every price the guide states)
clustersNosql_warehouse: clusters running (default 1)
workloadYesjobs, all_purpose (interactive notebooks), sql_warehouse, apps, genie, lakebase, model_serving or storage
always_onNolakebase: an always-on 0.5 CU floor (the one Lakebase figure the guide quotes)
instancesNojobs or all_purpose, classic: instances in the cluster, the driver counted as one; model_serving cpu: Medium configurations
storage_gbNostorage: GB held
model_unitsNomodel_serving, provisioned_throughput: model units (default 50, the block the rates are quoted for; a reservation takes multiples of 50 and bills every hour of its term)
reservationNomodel_serving, provisioned_throughput: on_demand, 1_month or 3_month
max_clustersNosql_warehouse: the most clusters it scales out to; the estimate ranges from clusters to max_clusters
dbus_per_hourNoDBUs the compute uses an hour, when the guide has no figure for its shape (a serverless job, an instance type it does not list): from system.billing.usage or Databricks' pricing calculator
dbus_per_userNogenie: each user's Genie DBUs a month
hours_per_dayNo
instance_typeNojobs or all_purpose, classic: the AWS instance type (m5.xlarge, m5.2xlarge, m6i.xlarge, m7i.xlarge, r5.xlarge, c5.2xlarge, i3.xlarge, i3.2xlarge are in the guide)
days_per_monthNoDays it runs a month (default 30 with hours_per_day)
dbus_per_monthNoOr the DBUs a month outright
hours_per_monthNo
input_tokens_millionsNomodel_serving, pay_per_token: input tokens a month, in millions
output_tokens_millionsNomodel_serving, pay_per_token: output tokens a month, in millions

Output Schema

NameRequiredDescriptionDefault
gapsYes
noteYes
sizeYes
buildYesThe commit of the deploy that answered
linesYes
ttlMsYesHow long this answer may be kept before asking again, in milliseconds
computeYes
figuresYes
currencyYes
withheldYes
workloadYes
calculatorNoFor an interactive view: the inputs as asked and this workload's rates from the guide, to recompute the estimate locally. Not in the text result.
assumptionsYes
index_builtYesWhen this deploy's index was built (ISO 8601)
monthly_usdYesThe estimate, a month; null where the guide has no figure for it (see gaps)
unit_pricesYesThe price per unit the guide's figures give (a cluster-hour, a million tokens, an endpoint-hour), with or without usage
pricing_linksYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / compute / description
      Previous value: -"jobs and all_purpose: serverless or classic; sql_warehouse: serverless, pro, classic"New value: +"jobs and all_purpose: serverless or classic; sql_warehouse: serverless, pro, classic, or lakehouse_rt (Beta) priced from DBUs you give"
    • changedInput schema / properties / compute / enum
      Previous value: -[
      -  "serverless",
      -  "classic",
      -  "pro"
      -]New value: +[
      +  "serverless",
      +  "classic",
      +  "pro",
      +  "lakehouse_rt"
      +]
    • changedInput schema / properties / size / description
      Previous value: -"apps: medium (the default), large or xlarge; sql_warehouse: the t-shirt size, 2x-small, x-small, small, medium, large, x-large, 2x-large, 3x-large, 4x-large (DBUs an hour per cluster, from the guide); model_serving with serving gpu: t4, a10g, a10g-4, a10g-8, l40s, rtx-pro-6000, a100-40gb-8, a100-80gb-8, h100, h100-8"New value: +"apps: medium (the default), large or xlarge; sql_warehouse: the t-shirt size, 2x-small, x-small, small, medium, large, x-large, 2x-large, 3x-large, 4x-large, 5x-large (DBUs an hour per cluster, from the guide); model_serving with serving gpu: t4, a10g, a10g-4, a10g-8, l40s, rtx-pro-6000, a100-40gb-8, a100-80gb-8, h100, h100-8"
  2. Changed1 schema field changed
    • addedOutput schema / properties / calculator
      Added value: +{
      +  "description": "For an interactive view: the inputs as asked and this workload's rates from the guide, to recompute the estimate locally. Not in the text result.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  3. Changed14 schema fields changed
    • addedInput schema / properties / clusters
      Added value: +{
      +  "description": "sql_warehouse: clusters running (default 1)",
      +  "maximum": 1000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / dbus_per_hour / description
      Previous value: -"DBUs the compute uses an hour (from system.billing.usage or Databricks' pricing page): the guide gives prices per DBU, not DBUs per hour"New value: +"DBUs the compute uses an hour, when the guide has no figure for its shape (a serverless job, an instance type it does not list): from system.billing.usage or Databricks' pricing calculator"
    • addedInput schema / properties / input_tokens_millions
      Added value: +{
      +  "description": "model_serving, pay_per_token: input tokens a month, in millions",
      +  "maximum": 10000000,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / instance_type
      Added value: +{
      +  "description": "jobs or all_purpose, classic: the AWS instance type (m5.xlarge, m5.2xlarge, m6i.xlarge, m7i.xlarge, r5.xlarge, c5.2xlarge, i3.xlarge, i3.2xlarge are in the guide)",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / instances
      Added value: +{
      +  "description": "jobs or all_purpose, classic: instances in the cluster, the driver counted as one; model_serving cpu: Medium configurations",
      +  "maximum": 10000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / max_clusters
      Added value: +{
      +  "description": "sql_warehouse: the most clusters it scales out to; the estimate ranges from clusters to max_clusters",
      +  "maximum": 1000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / model
      Added value: +{
      +  "description": "model_serving, pay_per_token or provisioned_throughput: the model, as in 'Llama 3.3 70B' or 'claude-sonnet-5.5'",
      +  "maxLength": 80,
      +  "type": "string"
      +}
    • addedInput schema / properties / model_units
      Added value: +{
      +  "description": "model_serving, provisioned_throughput: model units (default 50, the block the rates are quoted for; a reservation takes multiples of 50 and bills every hour of its term)",
      +  "maximum": 100000,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / output_tokens_millions
      Added value: +{
      +  "description": "model_serving, pay_per_token: output tokens a month, in millions",
      +  "maximum": 10000000,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / reservation
      Added value: +{
      +  "description": "model_serving, provisioned_throughput: on_demand, 1_month or 3_month",
      +  "enum": [
      +    "on_demand",
      +    "1_month",
      +    "3_month"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / serving
      Added value: +{
      +  "description": "model_serving: pay_per_token, provisioned_throughput, gpu or cpu (omit for every price the guide states)",
      +  "enum": [
      +    "pay_per_token",
      +    "provisioned_throughput",
      +    "gpu",
      +    "cpu"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / size / description
      Previous value: -"apps: medium (the default), large or xlarge; sql_warehouse: the t-shirt size (the guide has no DBUs an hour for any size, so it is reported as a gap)"New value: +"apps: medium (the default), large or xlarge; sql_warehouse: the t-shirt size, 2x-small, x-small, small, medium, large, x-large, 2x-large, 3x-large, 4x-large (DBUs an hour per cluster, from the guide); model_serving with serving gpu: t4, a10g, a10g-4, a10g-8, l40s, rtx-pro-6000, a100-40gb-8, a100-80gb-8, h100, h100-8"
    • addedOutput schema / properties / unit_prices
      Added value: +{
      +  "description": "The price per unit the guide's figures give (a cluster-hour, a million tokens, an endpoint-hour), with or without usage",
      +  "items": {
      +    "properties": {
      +      "figures": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "formula": {
      +        "type": "string"
      +      },
      +      "item": {
      +        "type": "string"
      +      },
      +      "per": {
      +        "description": "The unit, as in '1M output tokens' or 'a medium cluster-hour'",
      +        "type": "string"
      +      },
      +      "usd": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "item",
      +      "usd",
      +      "per",
      +      "formula",
      +      "figures"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "workload",
      -  "compute",
      -  "size",
      -  "monthly_usd",
      -  "currency",
      -  "lines",
      -  "figures",
      -  "assumptions",
      -  "gaps",
      -  "pricing_links",
      -  "withheld",
      -  "note",
      -  "build",
      -  "index_built",
      -  "ttlMs"
      -]New value: +[
      +  "workload",
      +  "compute",
      +  "size",
      +  "monthly_usd",
      +  "currency",
      +  "lines",
      +  "unit_prices",
      +  "figures",
      +  "assumptions",
      +  "gaps",
      +  "pricing_links",
      +  "withheld",
      +  "note",
      +  "build",
      +  "index_built",
      +  "ttlMs"
      +]
  4. Added

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds real behavioral context the annotations cannot: results come back as a range with assumptions, every number carries source sentence, section URL, date and cited pricing page, and unknowns are surfaced under 'gaps' rather than fabricated — meaningful for trusting the output.

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?

The purpose is front-loaded in the opening clause and the second sentence covers the gap-handling policy. It is dense but each clause (sourcing, provenance, gaps, unit_prices) carries distinct information; only the long comma-laden enumeration of pricing categories borders on run-on.

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?

Given 22 parameters, an output schema, and strong annotations, the description supplies what the structured fields do not: provenance guarantees, range-with-assumptions output shape, and explicit no-guessing behavior for unlisted shapes. It does not spell out defaulting behavior for hours/days, but the schema covers those.

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 91% with rich per-parameter documents including enums and defaults, so baseline 3 applies. The description adds no parameter-level semantics; the terms it names ('unit_prices', 'gaps') look like output fields, not inputs, so it does not compensate beyond what the schema already provides.

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

Purpose5/5

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

States a specific verb and resource ('Estimate a Databricks workload's monthly cost') and enumerates the exact figure families it draws on (DBU list prices, model serving rates, storage, the Lakebase floor). Nothing among the learning-oriented siblings overlaps, so an agent can tell immediately this is the only cost tool.

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 implicitly defines the use case (estimating monthly cost) and specifies a fallback input path when the guide lacks a figure ('a serverless job, an instance type it does not list' → supply dbus_per_hour). However, it never states when NOT to use it or names an alternative among siblings, and sibling tools are unrelated, so routing guidance is only implied.

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.