Skip to main content
Glama

get_series

Price history of one asset for charts (GET /v1/rates/series). Crypto: every range. Fiat: 1d and 7d from rate-hub's own readings taken about every 30 minutes; 30d, 90d, 1y and max one point per UTC day from the daily archive (it has a start day, days without a document are skipped, a cold range fills over a few retries, so an early answer may have fewer points). A fiat with no reading in the range, or an unknown uid, answers status unsupported with empty points, not an error. status: ok = fresh series; stale = last cached series, upstream failed (see fetched_at); pending = not ready, retry after retry_after seconds; unsupported = unknown uid, an asset no upstream knows, or a fiat with no reading in the range. Size: about 110 bytes per point (both copies of the result). max_points (2..500, default 100) downsamples evenly and keeps the first and last point; pass 500 for full detail. A non-USD fiat quote clips the series at the start of the fiat archive (range max only), and with a dynamic coin an unsupported answer may mean its uid expired. Edge cases: read resource ratehub://docs/behavior (behaviour notes).

Input Schema

NameRequiredDescriptionDefault
vsYesQuote currency
uidYesCatalog uid of a crypto asset
rangeYesChart range
max_pointsNoDownsample to at most this many points, 2..500 (default 100); first and last points are kept

Output Schema

NameRequiredDescriptionDefault
vsYes
uidYes
buildYes
rangeYes
pointsYes
sourceNo
statusYes
fetched_atNo
retry_afterNo
server_timeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it enumerates the status contract (ok/stale/pending/unsupported), states that upstream failures surface as stale with fetched_at, defines unsupported as a non-error empty result, explains cold-range backfill needing retries, and gives a byte-per-point size estimate. This is far more than the schema can convey.

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?

Purpose is front-loaded in the first clause, then details follow in a logical order (coverage, status contract, sizing, edge cases). The single dense paragraph of grey text is longer than ideal and stacks several clauses per sentence, but nearly every clause carries actionable information.

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?

An output schema exists, so return values need not be explained, yet the description still documents the meaningful shape (points, status, fetched_at, retry_after) and points to a further resource for behavior notes. Combined with per-range coverage rules and edge cases, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: max_points downsamples evenly while keeping the first and last point, max_points=500 yields full detail, range is clipped for non-USD fiat quotes, and uid can effectively expire for dynamic coins. It clarifies behavior the schema alone cannot express.

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 ("Price history of one asset for charts") plus the underlying endpoint, which distinguishes it from siblings like get_daily, get_rates and get_top that also return numeric series. An agent can tell this is the per-asset chart-series tool without opening the schema.

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 rich conditional guidance on coverage: crypto supports every range, fiat only 1d/7d from rate-hub and the rest from the daily archive. It also tells the agent what to do on 'pending' (retry after retry_after) and how to read 'unsupported'. It never explicitly compares against sibling tools such as get_daily, so it stops short of full alternative routing.

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