Skip to main content
Glama

get_network_stats_history

Read-only

Get one network-level statistic as a daily series

One point for every UTC day of the window. stat is required. A flow statistic (ap_switching = Movers (AP), cross_border = Cross-border moves, smp_switching = Movers (SMP), growth = Net growth with Joiners and Leavers) carries per day its counts (values), the registered-participant count at the start of the day (base), the first key as a percentage of that base (pct) and its 7-day mean (mean_7d). For cross_border, base is all AP moves of the day and pct is the cross-border share of them. A day with no completed change scan has gap: true and values: null — a gap is never 0. The 7-day mean is the mean over the scanned days of day − 6 .. day: a gap day is in neither the sum nor the divisor, and the mean is null when all are gaps. It is the same figure as trend_30d of /v1/network/stats. For growth, a gap day keeps joiners and nulls leavers and net. A stock statistic (concentration_ap = Concentration (AP), concentration_ap_country = Concentration per country, concentration_smp = Concentration (SMP), foreign_served = Foreign-served participants, penetration) carries values, null on a day with no snapshot; foreign_served also carries base, the registered participants of that day. concentration_ap, concentration_ap_country, foreign_served and penetration have no history before their first snapshot. A day with no snapshot is absent, not 0. The series starts 2026-08-02.

Input Schema

NameRequiredDescriptionDefault
toNoInclusive upper bound (YYYY-MM-DD UTC). Defaults to yesterday, the last complete day.
fromNoInclusive lower bound (YYYY-MM-DD UTC). Defaults to 90 days ago; clamped to 2026-08-02.
statNoREQUIRED. The statistic to return: `ap_switching` (keys total, organic, bulk, platform), `cross_border` (cross, same, unknown, strict_cross, strict_unknown), `smp_switching` (total), `growth` (net, joiners, leavers), `concentration_ap` / `concentration_smp` (cr5_pct, cr10_pct, hhi, total, providers), `concentration_ap_country` (per country with 8 or more providers: hhi, effective_providers, leader_pct, top4_pct, top10_pct, providers_over_1pct, providers, total), `foreign_served` (pct, foreign, domestic, unknown) or `penetration` (per country: pct, on_peppol, universe).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / stat / description
      Previous value: -"REQUIRED. The statistic to return: `ap_switching` (keys total, organic, bulk), `cross_border` (cross, same, unknown, strict_cross, strict_unknown), `smp_switching` (total), `growth` (net, joiners, leavers), `concentration_ap` / `concentration_smp` (cr5_pct, cr10_pct, hhi, total, providers), `foreign_served` (pct, foreign, domestic, unknown) or `penetration` (per country: pct, on_peppol, universe)."New value: +"REQUIRED. The statistic to return: `ap_switching` (keys total, organic, bulk, platform), `cross_border` (cross, same, unknown, strict_cross, strict_unknown), `smp_switching` (total), `growth` (net, joiners, leavers), `concentration_ap` / `concentration_smp` (cr5_pct, cr10_pct, hhi, total, providers), `concentration_ap_country` (per country with 8 or more providers: hhi, effective_providers, leader_pct, top4_pct, top10_pct, providers_over_1pct, providers, total), `foreign_served` (pct, foreign, domestic, unknown) or `penetration` (per country: pct, on_peppol, universe)."
    • changedInput schema / properties / stat / enum
      Previous value: -[
      -  "ap_switching",
      -  "cross_border",
      -  "smp_switching",
      -  "growth",
      -  "concentration_ap",
      -  "concentration_smp",
      -  "foreign_served",
      -  "penetration"
      -]New value: +[
      +  "ap_switching",
      +  "cross_border",
      +  "smp_switching",
      +  "growth",
      +  "concentration_ap",
      +  "concentration_ap_country",
      +  "concentration_smp",
      +  "foreign_served",
      +  "penetration"
      +]
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only supply readOnlyHint=true, and the description more than carries the remaining burden, disclosing gap semantics ('a gap is never 0', `values: null`), null-vs-absent rules, the exact 7-day mean computation including gap handling, per-statistic edge cases (growth keeps `joiners`, nulls `leavers`/`net`) and the series start date. This is unusually rich behavioral context for a read-only tool.

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 core purpose and the required-parameter note are front-loaded, and nearly every sentence conveys real edge-case semantics that no output schema carries. It is a dense wall of prose, however, and the flow/stock breakdown would be easier to scan as a list than as one long paragraph.

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 and nine distinct stat variants each returning different fields, the description supplies the semantics an agent needs: what each statistic carries, how gaps and missing snapshots are represented, and when history begins. No material gap remains for correct invocation or interpretation.

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 description coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the enum list — e.g. 'For `cross_border`, `base` is all AP moves of the day and `pct` is the cross-border share of them' and the distinction between flow and stock statistics. Some of the stat key mapping does duplicate the schema text, which keeps this below a 5.

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, resource and scope: 'Get one network-level statistic as a daily series,' with 'One point for every UTC day of the window.' It also ties itself to a specific sibling endpoint ('the same figure as trend_30d of /v1/network/stats'), letting an agent separate this history tool from the snapshot tools like get_network_stats without opening a schema.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: the daily-series framing and the reference to /v1/network/stats hint at when this is the right call, but there is no explicit 'use this when you need a time series, use X when you need the current value' guidance and no exclusions. Adequate but leaves the agent to infer the 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