Skip to content

v0.5.2 — strict argument validation

Choose a tag to compare

@j-garciaruiz j-garciaruiz released this 05 May 23:17
· 14 commits to main since this release

Fixed

  • Tools now reject unknown keyword arguments instead of silently dropping them. Previously, calling get_indicator_data with mismatched names (e.g. countries=["Peru"], year_from=2010) would quietly ignore every wrong key and return 100 unfiltered global rows — an LLM caller had no signal that its filters were dropped. Argument validation now raises a precise Pydantic error naming the unknown field. Implemented by setting extra="forbid" on FastMCP's ArgModelBase, so every registered tool inherits strict validation.

Changed

  • find_country_code parameter renamed from country_name to country to match the canonical name used by get_indicator_data and country_profile. country_name is kept as a deprecated alias for back-compat — passing both raises.
  • README install snippet now states the Python >=3.11 requirement inline, so users on older system Python see the requirement before creating a venv that would later fail.
  • Tool reference table now shows canonical parameter signatures so callers can see at a glance what each tool actually accepts.

Why this release

Outside review of v0.5.1 caught that mismatched argument names (countries vs country, year_from vs year_start) were silently dropped by FastMCP's default Pydantic config. For an LLM caller this meant correct-looking results that were actually unfiltered global pulls. Strict validation closes that footgun.

Full changelog: https://github.com/Decilion/gho-mcp/blob/main/CHANGELOG.md