Skip to main content
Glama

Costory: Your Finops MCP

get_context

Read-only

Get workspace context: popular groupBy dimensions, recent dashboards, and connected external-metric integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch, Google Cloud Monitoring). Call this FIRST at the start of every conversation. Each dimension has name (CEL/groupBy field: cos_* native or virtual_* bqName) and label (pretty display name) — use label only in user-facing text; use name for filterCel/groupBy (never the label). To discover CEL field names and dimension values for filterCel/groupBy, use search instead — pass type: ["dimensions"] with an empty query to list all dimensions, or a keyword (e.g. "account", "environment") to narrow results. For billing keys that are not dimensions yet, call list_dimension_candidates; import or normalize them with publish_label_dimensions (operations merge onto existing labels — do not resend the full list; preview dryRun: true, then call once with dryRun: false and confirm: true; about 10 minutes to show in Explorer). When externalMetricIntegrations is non-empty, call list_metrics with includeExternal: true and a specific search term to browse matching live integration metrics. For new virtual-dimension telemetry (split-by-usage-metric) reallocations, use that same includeExternal search and persist an inline externalMetric (do not set datasource). For BigQuery or S3, pick dateColumn / metricColumn from the returned schema (DATE / NUMERIC) and set gapFillingMethod (default FORWARD_FILL). Custom virtual dimensions: use immutable bqName from list/get VDIM tools as groupBy / filterCel (not display name). Poll computeStatus until COMPLETED after publish. EXAMPLE: "What cloud cost data do you have available?" → {}

Input Schema

NameRequiredDescriptionDefault
slugNoOrganization slug. Omit to auto-detect from your account (fails if you belong to multiple orgs).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that — the name-vs-label distinction, the 10-minute propagation delay for published dimensions, the dryRun/confirm publish flow, and polling computeStatus until COMPLETED. Much of this, however, describes side effects of other tools rather than this read call, so it is context rather than disclosure about get_context itself.

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

Conciseness2/5

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

The purpose and the 'call first' directive are correctly front-loaded, but the body sprawls into operating instructions for at least five other tools (search, list_dimension_candidates, publish_label_dimensions, list_metrics, virtual-dimension publishing) plus column/gap-filling guidance. Those sentences do not earn their place in this tool's definition and bury the actual contract.

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?

There is no output schema, so the description must describe returns — and it does, naming dimensions with name/label, recent dashboards, externalMetricIntegrations, and a per-integration schema with DATE/NUMERIC columns. For a single-optional-param read tool the core is complete, though the parameter's auto-detection behavior is left entirely to the schema.

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 one optional parameter (slug) with 100% schema description coverage, so the schema already carries the meaning, including the multi-org failure mode. The description adds nothing about slug, which is acceptable under the baseline-3 rule but earns no uplift.

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 with concrete scope: 'Get workspace context: popular groupBy dimensions, recent dashboards, and connected external-metric integrations (e.g. Tsuga, BigQuery, Datadog, CloudWatch).' An agent can immediately distinguish this from siblings like search, list_metrics, or list_dimension_candidates because the description names those as separate destinations.

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 'Call this FIRST at the start of every conversation,' which is an unambiguous trigger. It also routes the agent onward with conditions: use search with type:["dimensions"] for CEL field discovery, list_dimension_candidates for unmodeled billing keys, and list_metrics with includeExternal:true when externalMetricIntegrations is non-empty.

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