Skip to main content
Glama

list_anomalies

Read-onlyIdempotent

List detected cost anomalies for this account over a trailing lookback window — the real output of Plutus's nightly anomaly detector (severity, baseline vs. current spend, and what drove a tag-level spike), not something recomputed here from raw spend. Prefer this over eyeballing query_costs for "did anything spike" — the detector already accounts for day-of-week baselines and an absolute-dollar noise floor that a naive comparison would miss or over-trigger on.

Capped at 200 rows, most recent first; days (default 30, max 90) bounds the lookback. kind is "service" or "tag". current_cents/baseline_cents/delta_cents are the USD base. suppressed: true means a human has marked this exact signature (provider+service, or tag_key+tag_value) as expected — mention it but do not lead with it as a live problem. driven_by is null when driver attribution was not measured for this anomaly (a service anomaly, or a grain with no service) and [] when it WAS measured and found no dominant driver — those mean different things. correlated_events is the service-anomaly counterpart: deploy/incident/release activity that was unusual (above the account's own baseline rate) in the 2-day window ending on the spike day, ranked by share of that excess. Same null-vs-[] distinction — null is "not measured" (a tag anomaly, or a row recorded before this shipped), [] is "measured and nothing was unusual". It is account-scoped and temporal: it does NOT claim the event caused this particular service's spend to rise, so report it as activity that lines up, never as a cause. notified: false means this anomaly was recorded but withheld from alerting because its tag_key was already at the per-run notify cap. Mirrors GET /api/accounts/:accountId/anomalies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNoTrailing lookback window in days (default: 30)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark this read-only and idempotent, and the description adds substantial behavioral context: results are capped at 200 rows, ordered most recent first, account-scoped, and not causal despite correlated_events. It also carefully explains the null-vs-empty-array distinction for driven_by and correlated_events, and the meaning of suppressed and notified=false—valuable information not derivable from annotations or schema.

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

Conciseness5/5

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

The description is long but every sentence adds necessary operational detail, from high-level purpose to field-level null semantics. It front-loads the core purpose and sibling distinction before diving into output details, and it is organized logically rather than as a random field dump.

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

Completeness5/5

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

With no output schema, the description carries the full burden of explaining return semantics—and it does so thoroughly: row cap, ordering, field meanings, suppressed handling, null-vs-empty distinctions, notified=false semantics, and the non-causal interpretation of correlated_events. An agent has enough to interpret and present results correctly.

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?

There is only one parameter, days, and the schema already documents its type, range, and default. The description adds that days 'bounds the lookback' and restates default/max, but does not meaningfully go beyond the schema. With 100% schema coverage, this meets the baseline.

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?

The description opens with a specific verb and resource: 'List detected cost anomalies for this account over a trailing lookback window.' It also distinguishes itself from query_costs by emphasizing that results are the detector's real output, not recomputed raw spend. This makes the tool's identity immediately clear even among many list_* siblings.

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

Usage Guidelines5/5

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

Explicitly says 'Prefer this over eyeballing query_costs for "did anything spike"' and explains why: the detector accounts for day-of-week baselines and an absolute-dollar noise floor. This gives an agent a concrete decision rule for when to choose this tool over a sibling.

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.

TDQS

A3.9/5.0
Disambiguation4/5

Tools are organized by resource (budgets, alerts, anomalies, dashboards, cost tags, recommendations), so most are clearly separable. The cost-tag cluster and the dimension/facet listers are the places where an agent could misselect by name, though descriptions resolve the ambiguity.

Naming Consistency5/5

All tools use snake_case verb_noun names with a clear convention: get_ fetches specific items, list_ enumerates collections, and query_ runs time-bucketed or analytical queries. The pattern holds across all 29 tools with no camelCase or mixed verb styles.

Tool Count2/5

29 tools is well past the typical 3–15 sweet spot and even past the 16–25 heavy band, so the surface feels sprawling despite having few duplicates. Each tool maps to a distinct endpoint, but the sheer number makes it a heavy set for an agent to select from.

Completeness2/5

The read-side is strong: costs, usage, tags, budgets, alerts, anomalies, dashboards, recommendations, and data health are all queryable. However, the surface is almost entirely read-only, and descriptions reference absent tools like create_budget, create_alert_subscription, create_dashboard, set_dashboard_widgets, and delete_dashboard, creating dead ends. That is a significant gap for a cost-management platform.

Resources