Skip to main content
Glama

Get a raw series by explicit id

get_series
Read-onlyIdempotent

Fetch a specific economic data series by explicit source ID from World Bank, IMF, ECCB/CBB, or DBnomics; apply year filters and transforms, and get a full citation.

Instructions

Fetch any supported series by explicit id: 'worldbank/' (needs country), 'imf/' (needs country; current-vintage IMF WEO/Fiscal Monitor via the DataMapper API), 'caribstat/<ECCB|CBB>//' (Eastern Caribbean Central Bank and Central Bank of Barbados tables, including Anguilla and Montserrat, which the World Bank does not report; find ids with search_indicators), or 'dbnomics///' (IMF WEO, OECD, Eurostat and more via DBnomics, dated editions, e.g. 'WEO:2025-04', for vintage-pinned reproducibility). 'fred/' ids are recognized only so the service can return an explanatory disabled response. FRED is permanently disabled here and those ids are never retrievable. Supports year filters and transforms (yoy, pct_change, index). Every response carries a full citation. Prefer get_indicator for common indicators.

Input Schema

NameRequiredDescriptionDefault
countryNoRequired for worldbank/* series.
end_yearNo
series_idYese.g. 'worldbank/NY.GDP.MKTP.KD.ZG', 'imf/NGDP_RPCH', 'dbnomics/IMF/WEO:latest/BRB.NGDP_RPCH.pcent_change'.
transformNo
start_yearNo
latest_onlyNoReturn only the most recent non-null observation.
strict_sourceNoReproducibility mode for registry-key ids: never substitute the fallback source. No effect on explicit source-prefixed ids (they already pin one source).

Output Schema

NameRequiredDescriptionDefault
nameYes
unitNo
notesYes
countryNo
citationYes
frequencyNo
series_idYes
limitationsNoCodes for what this figure is NOT, each derived from a structured field of the result or from the indicator registry. An empty list means none of these conditions was detected. It is not a warranty.
observationsYes
fallback_usedNo
stale_primaryNo
fallback_reasonNo
stale_primary_yearsNo
stale_primary_unqueriedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.17.0
    • addedOutput schema / properties / stale_primary_unqueried
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. Changed1 schema field changedv1.16.0
    • addedOutput schema / properties / limitations
      Added value: +{
      +  "description": "Codes for what this figure is NOT, each derived from a structured field of the result or from the indicator registry. An empty list means none of these conditions was detected. It is not a warranty.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "code": {
      +        "enum": [
      +          "projection",
      +          "fallback_source",
      +          "stale_primary",
      +          "modeled_estimate",
      +          "rounded_source",
      +          "computed_values",
      +          "stale_latest",
      +          "outturn_unconfirmed"
      +        ],
      +        "type": "string"
      +      },
      +      "detail": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "detail"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed2 schema fields changedv1.14.0
    • addedOutput schema / properties / stale_primary
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / stale_primary_years
      Added value: +{
      +  "type": "number"
      +}
  4. Changed2 schema fields changedv1.12.2
    • addedInput schema / properties / latest_only
      Added value: +{
      +  "description": "Return only the most recent non-null observation.",
      +  "type": "boolean"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "citation": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "citation_text": {
      +          "type": "string"
      +        },
      +        "license": {
      +          "type": "string"
      +        },
      +        "retrieved_at": {
      +          "type": "string"
      +        },
      +        "series_id": {
      +          "type": "string"
      +        },
      +        "source": {
      +          "type": "string"
      +        },
      +        "source_url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "source",
      +        "series_id",
      +        "source_url",
      +        "license",
      +        "retrieved_at",
      +        "citation_text"
      +      ],
      +      "type": "object"
      +    },
      +    "country": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "iso3": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "iso3",
      +        "name"
      +      ],
      +      "type": "object"
      +    },
      +    "fallback_reason": {
      +      "enum": [
      +        "transient",
      +        "definitive"
      +      ],
      +      "type": "string"
      +    },
      +    "fallback_used": {
      +      "type": "boolean"
      +    },
      +    "frequency": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "notes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "observations": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "note": {
      +            "type": "string"
      +          },
      +          "period": {
      +            "type": "string"
      +          },
      +          "value": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "period",
      +          "value"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "series_id": {
      +      "type": "string"
      +    },
      +    "unit": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "series_id",
      +    "name",
      +    "observations",
      +    "citation",
      +    "notes"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: country requirements by provider, the IMF DataMapper vintage path, Caribbean central-bank coverage including Anguilla/Montserrat, DBnomics vintage-pinned editions, the permanent FRED disablement, supported transforms, and that every response carries a full citation. No contradiction with readOnly/idempotent 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?

Front-loads the core operation and keeps all sentences information-bearing. The only cost is density: the long run-on provider enumeration and the repeated FRED-disabled point make it slightly harder to scan than necessary.

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

Completeness4/5

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

Given seven parameters, an output schema, and read-only annotations, the description covers the critical operational details an agent needs: id syntax, provider-specific requirements, disabled sources, transforms, and citation behavior. Minor gaps remain around error behavior and exact year-filter semantics, but nothing essential is missing.

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 57%, and the description compensates by explaining the series_id formats, country requirements, and year-filter/transform support. It does not add much detail about latest_only or strict_source beyond the schema, but it meaningfully supplements the most important parameter.

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 ('Fetch any supported series by explicit id') and then enumerates the exact id formats, making clear what this tool retrieves and how it differs from siblings. The final sentence explicitly routes common-indicator lookups to get_indicator.

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 practical guidance: use search_indicators to find ids, prefer get_indicator for common indicators, and understand that FRED ids return an explanatory disabled response. It does not compare against fetch or compare_sources, so coverage is strong but not exhaustive.

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