Skip to main content
Glama

list_usage_dimensions

Read-onlyIdempotent

List the distinct values seen for a usage dimension ("metric" or "external_customer_id") over a date range — useful for discovering filter values before calling query_usage. Each entry pairs the raw value with a label (for external_customer_id, the customer's name from account_customers when known, falling back to the id itself). Mirrors GET /api/usage/dimensions.

Input Schema

NameRequiredDescriptionDefault
end_dateNo
dimensionYes"metric", "external_customer_id", "dimension_key" (the keys of the pushed dimensions map) or "dimension:<key>" (that key's values)
start_dateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / dimension / description
      Added value: +"\"metric\", \"external_customer_id\", \"dimension_key\" (the keys of the pushed dimensions map) or \"dimension:<key>\" (that key's values)"
    • removedInput schema / properties / dimension / enum
      Removed value: -[
      -  "metric",
      -  "external_customer_id"
      -]
    • addedInput schema / properties / dimension / pattern
      Added value: +"^(metric|external_customer_id|dimension_key|dimension:[A-Za-z0-9_.-]{1,64})$"
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already carry readOnly/idempotent/non-destructive, so the bar is lower; the description still adds real behavior: it discloses the value/label pairing and the account_customers name fallback, which an agent cannot infer from the schema. It also maps to a concrete REST endpoint for orientation.

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?

Two compact sentences, both front-loaded (purpose and scope first, output shape second). The parenthetical label explanation is dense but earns its place; nothing is padding.

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?

With no output schema, explaining the value/label shape and the fallback to raw id is exactly the missing information an agent needs. Minor incompleteness remains around date conventions and the dimension_key variants, but nothing critical is absent.

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 33%, and the description mentions just two of the four accepted dimension forms, omitting 'dimension_key' and 'dimension:<key>'. It adds useful meaning for external_customer_id labels but says nothing about start_date/end_date format, leaving a real coverage gap only partly compensated.

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 ('List the distinct values seen for a usage dimension') and pins the scope with a date range. It is immediately distinguishable from query_usage, which it explicitly positions itself upstream of.

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

Usage Guidelines4/5

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

Gives a clear when-to-use: 'discovering filter values before calling query_usage', which routes the agent to the correct sibling. It stops short of stating when not to use it (e.g. when filter values are already known, just call query_usage).

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