Skip to main content
Glama

Query Dataset

query_dataset
Read-onlyIdempotent

Fetch records from any of the 84 Elexon BMRS Insights datasets by its dataset code (MID market index/day-ahead prices, FUELHH generation by fuel, WINDFOR wind forecast, FREQ system frequency, TEMP temperature, REMIT outages, BOD/BOALF balancing bids and acceptances, and 77 more — call elexon_list_datasets for the directory). Pass a code and a datetime window; the correct window parameters for that dataset are chosen automatically. Keyless. Returns the raw records.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYesWindow end, ISO datetime. Ignored for settlement-date datasets.
fromYesWindow start, ISO datetime. For settlement-date datasets (B1610, MDB, MDO, PN, QPN, TUDM) this is the settlement date and settlement_period is also required.
datasetYesDataset code, case-insensitive, e.g. "MID", "FUELHH", "WINDFOR", "FREQ", "REMIT". Use elexon_list_datasets to find one; an unrecognised code is rejected with the full list rather than passed upstream.
date_paramNoRarely needed — the window style is looked up per dataset. Pass "publishDateTime", "from", "settlement" (settlementDateFrom/To, which only FUELHH and FUELINST accept), "settlementDate", "measurement" or "submission" only to override that lookup.
settlement_periodNoSettlement period 1-48. Required only for the settlement-date datasets B1610, MDB, MDO, PN, QPN and TUDM, which Elexon serves one period at a time.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed6 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "dataset": "MID",
      -    "from": "2024-06-01T00:00Z",
      -    "to": "2024-06-01T23:59Z"
      -  },
      -  {
      -    "dataset": "DGWS",
      -    "date_param": "publishDateTime",
      -    "from": "2024-06-15T00:00Z",
      -    "to": "2024-06-16T00:00Z"
      -  },
      -  {
      -    "dataset": "FUELHH",
      -    "date_param": "settlement",
      -    "from": "2024-06-01",
      -    "to": "2024-06-02"
      -  }
      -]New value: +[
      +  {
      +    "dataset": "FUELHH",
      +    "from": "2026-08-27T00:00Z",
      +    "to": "2026-08-27T02:00Z"
      +  },
      +  {
      +    "dataset": "MID",
      +    "from": "2026-08-27T00:00Z",
      +    "to": "2026-08-27T02:00Z"
      +  },
      +  {
      +    "dataset": "PN",
      +    "from": "2026-08-27",
      +    "settlement_period": 5,
      +    "to": "2026-08-27"
      +  }
      +]
    • changedInput schema / properties / dataset / description
      Previous value: -"Dataset code, e.g. \"MID\", \"DGWS\", \"FUELHH\"."New value: +"Dataset code, case-insensitive, e.g. \"MID\", \"FUELHH\", \"WINDFOR\", \"FREQ\", \"REMIT\". Use elexon_list_datasets to find one; an unrecognised code is rejected with the full list rather than passed upstream."
    • changedInput schema / properties / date_param / description
      Previous value: -"Date parameter style: \"publishDateTime\" (default → publishDateTimeFrom/To), \"settlement\" (→ settlementDateFrom/To, use plain dates like \"2024-06-01\"), or \"from\" (→ from/to)."New value: +"Rarely needed — the window style is looked up per dataset. Pass \"publishDateTime\", \"from\", \"settlement\" (settlementDateFrom/To, which only FUELHH and FUELINST accept), \"settlementDate\", \"measurement\" or \"submission\" only to override that lookup."
    • changedInput schema / properties / from / description
      Previous value: -"Window start, ISO datetime."New value: +"Window start, ISO datetime. For settlement-date datasets (B1610, MDB, MDO, PN, QPN, TUDM) this is the settlement date and settlement_period is also required."
    • addedInput schema / properties / settlement_period
      Added value: +{
      +  "description": "Settlement period 1-48. Required only for the settlement-date datasets B1610, MDB, MDO, PN, QPN and TUDM, which Elexon serves one period at a time.",
      +  "type": "number"
      +}
    • changedInput schema / properties / to / description
      Previous value: -"Window end, ISO datetime."New value: +"Window end, ISO datetime. Ignored for settlement-date datasets."
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "dataset": "MID",
      +    "from": "2024-06-01T00:00Z",
      +    "to": "2024-06-01T23:59Z"
      +  },
      +  {
      +    "dataset": "DGWS",
      +    "date_param": "publishDateTime",
      +    "from": "2024-06-15T00:00Z",
      +    "to": "2024-06-16T00:00Z"
      +  },
      +  {
      +    "dataset": "FUELHH",
      +    "date_param": "settlement",
      +    "from": "2024-06-01",
      +    "to": "2024-06-02"
      +  }
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral value beyond annotations by revealing that the correct window parameters for a dataset are chosen automatically, that the tool is keyless, and that unrecognized codes are rejected with the full list rather than passed upstream. It also notes some datasets ignore the 'to' parameter and settlement-date datasets require settlement_period. Minor gap: no return-format or pagination details, but the raw-records statement covers the response nature adequately.

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 compact and front-loaded: it states the core capability in the first sentence, then gives representative dataset examples, then key behavioral caveats. Every sentence earns its place, and the parenthetical list of examples is information-dense without being padded.

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?

For a read-only, keyless, schema-rich fetch tool with 100% schema coverage and detailed annotations, the description is complete. It tells the agent what it fetches, from where, how to discover dataset codes, what happens on an invalid code, and the main behavioral exceptions (settlement-date datasets, ignored 'to' parameter). No output schema exists, but 'returns the raw records' is enough given the schema examples already show expected request shapes.

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 description coverage is 100%, so the schema already documents every parameter in detail, including examples and requirements. The description adds helpful context by explaining the automatic window-parameter lookup and the special handling of settlement-date datasets, but it doesn't need to explain each parameter syntax because the schema does that. Baseline 3 is appropriate when schema coverage is complete and the description reinforces, rather than extends, parameter understanding.

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 names the specific verb ('Fetch records'), the resource ('84 Elexon BMRS Insights datasets by its dataset code'), and gives concrete examples (MID, FUELHH, WINDFOR, FREQ, TEMP, REMIT, BOD/BOALF). It distinguishes itself from sibling elexon_list_datasets by explaining that this tool fetches records while that one provides the directory, so an agent can tell them apart 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 Guidelines5/5

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

The description explicitly says to call elexon_list_datasets to find a dataset code, which routes the agent to the sibling alternative. It also states keyless access and automatic window-parameter selection, telling the agent when no API key is needed and when it does not need to figure out which datetime parameters to pass. This gives clear context for when to use the tool versus alternatives.

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.8/5.0
Disambiguation2/5

Multiple tools have unclear boundaries: ask_pipeworx and ask_pipeworx_beta are explicitly identical right now, ask_pipeworx_grounded/deep_research heavily overlap as high-level routing entry points, and the five Polymarket tools (edges, arbitrage, edge_tracker, fill_risk, bet_research) cover closely related concerns. The descriptions are detailed, but an agent can easily select the wrong entry point.

Naming Consistency3/5

All names are snake_case and readable, but conventions are mixed: verb-first names (query_dataset, validate_claim, discover_tools) coexist with noun-phrase names (system_demand, entity_profile, recent_changes), and prefix families are applied inconsistently (elexon_* and polymarket_* exist, but bet_research, generation_by_fuel, and system_demand have no prefix). The pattern is understandable but not predictable enough to be considered consistent.

Tool Count2/5

36 tools is well above the 25-tool threshold for a heavy surface, and many tools are orthogonal to the nominal Elexon scope: memory (remember/recall/forget), subscriptions, npm dependency scanning, and llms.txt generation. The count forces significant discovery overhead and makes the set feel bloated rather than well-scoped.

Completeness4/5

The Elexon core is solid: elexon_list_datasets plus query_dataset covers all 84 BMRS datasets, with direct shortcuts for system prices, generation by fuel, and system demand. The broader Pipeworx side also covers research, entity resolution, prediction-market analysis, memory, and subscriptions without obvious dead ends, though a few minor gaps exist such as limited non-npm dependency scanning and no direct Elexon-specific tools for every dataset family.