Skip to main content
Glama

export_series

Export telemetry time-series data to a CSV or Parquet file, specifying topics, time range, and optional bucketing. Returns a file link for further analysis.

Instructions

Export one or more topics to a file and return a link plus a profile.

Use this for anything you plan to plot or analyze in code. It returns no rows: read the returned URL (or path) from your code execution environment, e.g. pd.read_csv(URL, parse_dates=["bucket"]). Do not fetch it into context.

Give a time range either as start/end (ISO-8601) or as a run_id from list_runs, which expands to that run's full span.

With a bucket (a Postgres interval like '100 milliseconds' or '1 second') the file is wide: one row per bucket, with <topic>__avg, __min, and __max columns per topic, plus a samples count. Pass bucket=null for long raw output (time, dataTypeName, value) -- raw samples from different topics do not share timestamps, so they cannot be aligned into columns.

index picks the element of the values array (1-based). format is 'csv' or 'parquet'. Report the topic names you exported in your answer.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
carNo
endNo
indexNo
startNo
bucketNo100 milliseconds
formatNocsv
run_idNo
topicsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the return behavior (no rows, read URL from code environment), explains the wide/long format distinctions, and mentions the index and format parameters. It does not cover error cases or permissions, but it provides enough behavioral context for an agent to understand how to consume the result.

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 description is long but well-structured with bold headers and clear paragraphs. Each section adds necessary detail for a complex tool with 8 parameters. It front-loads the purpose and usage, then explains time range and output formats. It is not redundant, though it could be slightly tightened.

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

Completeness3/5

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

The description covers most parameters and explains the output usage, but it omits the 'car' parameter and does not clarify what 'profile' means (though output schema exists). It also lacks explicit mention of error handling or limits. For a tool with 8 parameters and no schema descriptions, this is a notable gap, making it incomplete for fully correct invocation.

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 0%, so the description must explain all parameters. It thoroughly covers start/end, run_id, bucket, index, and format, and implicitly topics. However, the 'car' parameter is entirely missing from the description, leaving a gap. This prevents full compensation for the schema's lack of property descriptions.

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 states a specific verb+resource: 'Export one or more topics to a file and return a link plus a profile.' It clearly distinguishes from siblings by emphasizing that it returns no rows and is intended for code-based analysis, differentiating it from tools like get_series that return data rows.

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?

It provides an explicit directive: 'Use this for anything you plan to plot or analyze in code.' It also warns 'Do not fetch it into context' and explains the wide vs long output depending on bucket. However, it does not name alternative tools or explicitly state when not to use it, though the context implies that other tools like get_series would be used when in-context rows are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.