Skip to main content
Glama

Afriref: cited government reference data

get_series

Read-onlyIdempotent

PAID ($0.003). Current value of a reference series — e.g. series=policy-rate, vat, minimum-wage. Every value carries its official source citation, effective date, last-confirmed date and staleness flag. Pass api_key if you have one (instant card checkout at /pricing); otherwise the response explains how to pay via x402. Every GH series is free to try. After a 200, bind get_changes (free poll) or register_alert (HMAC push; Register: $0 · Delivery after trial: $0.05) on this series so a later gazette does not silently retire the value.

Input Schema

NameRequiredDescriptionDefault
seriesYesSeries id, e.g. policy-rate, vat, minimum-wage
api_keyNoAPI key (bypasses x402; metered for invoicing)
countryYesISO country code

Output Schema

NameRequiredDescriptionDefault
unitNo
errorNoPresent on a free refusal or error; no charge
notesNo
staleNo
valueNo
seriesNo
sourceNo
countryNo
no_chargeNo
price_usdNo
confidenceNo
disclaimerNo
how_to_payNo
bind_seriesNo
explanationNo
label_basisNoInputs and the rule ids that produced the two labels
x_next_bindNo
http_endpointNo
coverage_labelNoHow much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules
effective_fromNo
last_confirmedNo
confidence_labelNoEvidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules
payment_requiredNotrue when the call needs payment; how_to_pay explains x402 or card

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedOutput schema / properties / label_basis / properties / source_type / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / label_basis / properties / source_type / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / label_basis / properties / verification_age_days / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / label_basis / properties / verification_age_days / type
      Added value: +[
      +  "number",
      +  "null"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / properties / confidence_label
      Added value: +{
      +  "description": "Evidence verdict derived from source type, verification age and the stale flag (answers: the weakest series read). Rules at /label-rules",
      +  "enum": [
      +    "high",
      +    "medium",
      +    "low"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / coverage_label
      Added value: +{
      +  "description": "How much of the question is covered: ready = complete; partial = held with a disclosed limitation or default; gap = no number served. Rules at /label-rules",
      +  "enum": [
      +    "ready",
      +    "partial",
      +    "gap"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / label_basis
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Inputs and the rule ids that produced the two labels",
      +  "properties": {
      +    "confidence_reasons": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "coverage_reasons": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "inputs": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "rules": {
      +      "type": "string"
      +    },
      +    "rules_version": {
      +      "type": "string"
      +    },
      +    "source_type": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "stale": {
      +      "type": "boolean"
      +    },
      +    "verification_age_days": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "description": "Current value of one series with source, effective date, last_confirmed and stale flag",
      +  "properties": {
      +    "bind_series": {},
      +    "confidence": {},
      +    "country": {
      +      "type": "string"
      +    },
      +    "disclaimer": {},
      +    "effective_from": {},
      +    "error": {
      +      "description": "Present on a free refusal or error; no charge"
      +    },
      +    "explanation": {},
      +    "how_to_pay": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "http_endpoint": {
      +      "type": "string"
      +    },
      +    "last_confirmed": {},
      +    "no_charge": {
      +      "type": "boolean"
      +    },
      +    "notes": {},
      +    "payment_required": {
      +      "description": "true when the call needs payment; how_to_pay explains x402 or card",
      +      "type": "boolean"
      +    },
      +    "price_usd": {
      +      "type": "number"
      +    },
      +    "series": {
      +      "type": "string"
      +    },
      +    "source": {},
      +    "stale": {
      +      "type": "boolean"
      +    },
      +    "unit": {},
      +    "value": {},
      +    "x_next_bind": {}
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "ao",
      -  "bf",
      -  "bj",
      -  "bw",
      -  "cf",
      -  "cg",
      -  "ci",
      -  "cm",
      -  "dz",
      -  "eg",
      -  "et",
      -  "ga",
      -  "gh",
      -  "gq",
      -  "ke",
      -  "ma",
      -  "ml",
      -  "mu",
      -  "mz",
      -  "na",
      -  "ne",
      -  "ng",
      -  "rw",
      -  "sn",
      -  "td",
      -  "tg",
      -  "tn",
      -  "tz",
      -  "ug",
      -  "zm"
      -]New value: +[
      +  "ao",
      +  "bf",
      +  "bj",
      +  "bw",
      +  "cd",
      +  "cf",
      +  "cg",
      +  "ci",
      +  "cm",
      +  "dz",
      +  "eg",
      +  "et",
      +  "ga",
      +  "gh",
      +  "gq",
      +  "ke",
      +  "ls",
      +  "ma",
      +  "ml",
      +  "mu",
      +  "mz",
      +  "na",
      +  "ne",
      +  "ng",
      +  "rw",
      +  "sn",
      +  "sz",
      +  "td",
      +  "tg",
      +  "tn",
      +  "tz",
      +  "ug",
      +  "za",
      +  "zm"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "ao",
      -  "bf",
      -  "bj",
      -  "bw",
      -  "cf",
      -  "cg",
      -  "ci",
      -  "cm",
      -  "dz",
      -  "eg",
      -  "et",
      -  "ga",
      -  "gh",
      -  "gq",
      -  "ke",
      -  "ma",
      -  "ml",
      -  "mu",
      -  "mz",
      -  "na",
      -  "ne",
      -  "ng",
      -  "rw",
      -  "sn",
      -  "td",
      -  "tg",
      -  "tz",
      -  "ug",
      -  "zm"
      -]New value: +[
      +  "ao",
      +  "bf",
      +  "bj",
      +  "bw",
      +  "cf",
      +  "cg",
      +  "ci",
      +  "cm",
      +  "dz",
      +  "eg",
      +  "et",
      +  "ga",
      +  "gh",
      +  "gq",
      +  "ke",
      +  "ma",
      +  "ml",
      +  "mu",
      +  "mz",
      +  "na",
      +  "ne",
      +  "ng",
      +  "rw",
      +  "sn",
      +  "td",
      +  "tg",
      +  "tn",
      +  "tz",
      +  "ug",
      +  "zm"
      +]
  6. Changed1 schema field changed
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "bf",
      -  "bj",
      -  "bw",
      -  "cf",
      -  "cg",
      -  "ci",
      -  "cm",
      -  "eg",
      -  "et",
      -  "ga",
      -  "gh",
      -  "gq",
      -  "ke",
      -  "ma",
      -  "ml",
      -  "na",
      -  "ne",
      -  "ng",
      -  "rw",
      -  "sn",
      -  "td",
      -  "tg",
      -  "tz",
      -  "ug",
      -  "zm"
      -]New value: +[
      +  "ao",
      +  "bf",
      +  "bj",
      +  "bw",
      +  "cf",
      +  "cg",
      +  "ci",
      +  "cm",
      +  "dz",
      +  "eg",
      +  "et",
      +  "ga",
      +  "gh",
      +  "gq",
      +  "ke",
      +  "ma",
      +  "ml",
      +  "mu",
      +  "mz",
      +  "na",
      +  "ne",
      +  "ng",
      +  "rw",
      +  "sn",
      +  "td",
      +  "tg",
      +  "tz",
      +  "ug",
      +  "zm"
      +]
  7. Changed1 schema field changed
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "bf",
      -  "bj",
      -  "cf",
      -  "cg",
      -  "ci",
      -  "cm",
      -  "eg",
      -  "et",
      -  "ga",
      -  "gh",
      -  "gq",
      -  "ke",
      -  "ma",
      -  "ml",
      -  "ne",
      -  "ng",
      -  "rw",
      -  "sn",
      -  "td",
      -  "tg",
      -  "tz",
      -  "ug"
      -]New value: +[
      +  "bf",
      +  "bj",
      +  "bw",
      +  "cf",
      +  "cg",
      +  "ci",
      +  "cm",
      +  "eg",
      +  "et",
      +  "ga",
      +  "gh",
      +  "gq",
      +  "ke",
      +  "ma",
      +  "ml",
      +  "na",
      +  "ne",
      +  "ng",
      +  "rw",
      +  "sn",
      +  "td",
      +  "tg",
      +  "tz",
      +  "ug",
      +  "zm"
      +]
  8. Changed1 schema field changed
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "bj",
      -  "ci",
      -  "eg",
      -  "et",
      -  "gh",
      -  "ke",
      -  "ma",
      -  "ne",
      -  "ng",
      -  "rw",
      -  "sn",
      -  "tz",
      -  "ug"
      -]New value: +[
      +  "bf",
      +  "bj",
      +  "cf",
      +  "cg",
      +  "ci",
      +  "cm",
      +  "eg",
      +  "et",
      +  "ga",
      +  "gh",
      +  "gq",
      +  "ke",
      +  "ma",
      +  "ml",
      +  "ne",
      +  "ng",
      +  "rw",
      +  "sn",
      +  "td",
      +  "tg",
      +  "tz",
      +  "ug"
      +]
  9. Changed1 schema field changed
    • changedInput schema / properties / country / enum
      Previous value: -[
      -  "ci",
      -  "eg",
      -  "et",
      -  "gh",
      -  "ke",
      -  "ma",
      -  "ng",
      -  "rw",
      -  "sn",
      -  "tz",
      -  "ug"
      -]New value: +[
      +  "bj",
      +  "ci",
      +  "eg",
      +  "et",
      +  "gh",
      +  "ke",
      +  "ma",
      +  "ne",
      +  "ng",
      +  "rw",
      +  "sn",
      +  "tz",
      +  "ug"
      +]
  10. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive, but the description goes well beyond them: it discloses the $0.003 cost, both payment paths (api_key vs x402 fallback), the free trial for GH series, and the exact fields each value carries (source citation, effective date, last-confirmed date, staleness flag). This is rich, actionable behavioral context.

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 price and purpose, then packs payment, return-field, and follow-up details into a single dense paragraph. Every sentence carries information, though the follow-up-tool sentence with its pricing parenthetical is slightly overloaded.

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 paid, payment-gated tool this covers everything an agent needs: cost, auth options, payment fallback, what the response contains, and what to do next. An output schema exists, so return-value explanation is a bonus rather than a requirement.

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 baseline is 3, but the description adds meaning the schema lacks — the api_key parameter's fallback behavior (response explains x402 payment) and the 'every GH series is free to try' caveat. The series-id examples largely duplicate the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Current value of a reference series') and gives concrete series examples (policy-rate, vat, minimum-wage). The word 'Current' implicitly separates it from get_series_history and list_series, but neither sibling is named, so the differentiation is inferential rather than explicit.

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 clear operational context: pass api_key if you have one, otherwise the response explains x402 payment, and it tells the agent to bind get_changes or register_alert after a 200. It does not explicitly route to get_series_history for past values, so the alternative-selection guidance is incomplete.

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