Skip to main content
Glama

Fetch Dataset

fetch_dataset
Read-onlyIdempotent

Fetch tidy rows from a BIS dataflow. flow_ref is "BIS,," and the VERSION IS NOT ALWAYS 1.0 — "BIS,WS_CBPOL,1.0" (central bank policy rates), "BIS,WS_XRU,1.0" (US-dollar exchange rates), but "BIS,WS_TC,2.0" (total credit). BIS re-versions flows in place, so a guessed version returns no data rather than an error; take the exact ref from list_curated_flows or search_dataflows instead of assuming one. The key string is a dot-separated dimension filter (e.g., "D.US" — frequency.country). ALWAYS pass start_period / end_period ("2020", "2020-Q1", "2020-01"): the big banking and debt flows are multi-megabyte and an unbounded request can time out.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoDot-separated dimension key (empty for all)
limitNoCap rows (default 5000)
flow_refYesSDMX dataflow reference
end_periodNoInclusive end
start_periodNoInclusive start

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsYesTidy data rows as key-value objects
countYesNumber of data rows returned
columnsYesColumn headers from CSV
flow_refYesSDMX dataflow reference used
truncatedYesWhether result was truncated by limit
source_urlYesBIS web URL for this dataflow

Schema Changelog

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

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "end_period": "2024",
      -    "flow_ref": "BIS,WS_CBPOL,1.0",
      -    "key": "D.US",
      -    "start_period": "2024"
      -  },
      -  {
      -    "end_period": "2024",
      -    "flow_ref": "BIS,WS_XRU,1.0",
      -    "start_period": "2024"
      -  }
      -]New value: +[
      +  {
      +    "end_period": "2024",
      +    "flow_ref": "BIS,WS_CBPOL,1.0",
      +    "key": "D.US",
      +    "start_period": "2024"
      +  },
      +  {
      +    "end_period": "2024",
      +    "flow_ref": "BIS,WS_XRU,1.0",
      +    "start_period": "2024"
      +  },
      +  {
      +    "end_period": "2024",
      +    "flow_ref": "BIS,WS_TC,2.0",
      +    "start_period": "2024"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "end_period": "2024-12-31",
      -    "flow_ref": "BIS,WS_CBPOL_D,1.0",
      -    "key": "D.US",
      -    "start_period": "2020-01-01"
      -  },
      -  {
      -    "flow_ref": "BIS,WS_CBPOL_D,1.0"
      -  }
      -]New value: +[
      +  {
      +    "end_period": "2024",
      +    "flow_ref": "BIS,WS_CBPOL,1.0",
      +    "key": "D.US",
      +    "start_period": "2024"
      +  },
      +  {
      +    "end_period": "2024",
      +    "flow_ref": "BIS,WS_XRU,1.0",
      +    "start_period": "2024"
      +  }
      +]
  3. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "end_period": "2024-12-31",
      +    "flow_ref": "BIS,WS_CBPOL_D,1.0",
      +    "key": "D.US",
      +    "start_period": "2020-01-01"
      +  },
      +  {
      +    "flow_ref": "BIS,WS_CBPOL_D,1.0"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "columns": {
      +      "description": "Column headers from CSV",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "count": {
      +      "description": "Number of data rows returned",
      +      "type": "number"
      +    },
      +    "flow_ref": {
      +      "description": "SDMX dataflow reference used",
      +      "type": "string"
      +    },
      +    "rows": {
      +      "description": "Tidy data rows as key-value objects",
      +      "items": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "description": "Map of column name to value",
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source_url": {
      +      "description": "BIS web URL for this dataflow",
      +      "type": "string"
      +    },
      +    "truncated": {
      +      "description": "Whether result was truncated by limit",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "flow_ref",
      +    "source_url",
      +    "columns",
      +    "truncated",
      +    "count",
      +    "rows"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint, idempotentHint, and destructiveHint=false, so the description's focus on behavioral contexts like version guessing returning no data and potential timeouts without period bounds adds value. No contradictions with annotations.

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 front-loaded with the main purpose and provides critical details efficiently. It could be slightly more concise by moving examples to the schema, but the warnings and examples are valuable and not excessive.

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?

Given the tool's complexity (5 params, multi-megabyte data, version quirks), the description is thorough. It covers data retrieval, version behavior, period necessity, and key format. An output schema exists, so return format is handled elsewhere.

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 100%, so the baseline is 3. The description adds meaningful context for key (dot-separated dimension filter) and flow_ref (exact format with examples), but start_period/end_period and limit are already well-described in the schema.

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 explicitly states the tool fetches tidy rows from a BIS dataflow, using a specific flow_ref format and key string. It clearly distinguishes itself from sibling tools like list_curated_flows and search_dataflows by describing how to obtain the exact flow_ref.

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?

The description provides strong guidance on when to use the tool (e.g., always pass start_period/end_period to avoid timeouts) and how to avoid pitfalls (guessing the wrong version returns no data). It also references sibling tools (list_curated_flows, search_dataflows) for obtaining the correct flow_ref, though it does not explicitly say when not to use it over 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.9/5.0
Disambiguation3/5

Most tools have carefully written distinctions, but several overlap in purpose: ask_pipeworx versus ask_pipeworx_beta are currently functionally identical, and ask_pipeworx, deep_research, validate_claim, and the Polymarket research tools all sit on the same factual-question axis. The long descriptions help an agent choose, but the set still has multiple ambiguous boundaries.

Naming Consistency3/5

Names are uniformly snake_case and mostly readable, with clear prefix families like pipeworx_*, polymarket_*, and ask_pipeworx*. However, the verb-noun pattern is inconsistent: many tools are noun phrases (entity_profile, recent_alerts, polymarket_edges) and some are bare verbs (remember, recall, forget), so the naming is not predictable across the full set.

Tool Count2/5

35 tools is well above the 25-tool threshold and feels like an organic platform dump rather than a curated server. The broad data-platform scope partly justifies the number, but the presence of near-duplicate entry points and one-off utilities (generate_llms_txt, ai_visibility_check, scan_dependency) makes the set feel bloated rather than cohesive.

Completeness4/5

For a read-heavy data/research platform the surface is unusually complete: discovery, single-lookup, grounded-answer, deep-research, entity resolution, comparison, change-tracking, subscriptions, memory, and feedback are all covered. Missing write/execution capabilities like placing trades or modifying BIS flows are reasonable absences for this kind of server; the main gap is a dedicated historical/trend utility beyond the general router.