Skip to main content
Glama
berba-q

FAOSTAT MCP Server

by berba-q

faostat_search_codes

Search FAOSTAT filter codes by name before querying unknown codes. Returns a unique match or multiple options for selection; narrow the query if results truncate.

Instructions

Find domain FILTER codes by name (case-insensitive substring). Use before querying unknown codes. A unique match is usable; multiple matches require user selection. Default limit=25; narrow the query when truncated. query must be nonblank.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoen
limitNo
queryYes
domain_codeYes
dimension_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.3.0
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 25,
      +  "title": "Limit",
      +  "type": "integer"
      +}
  2. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does reasonably well: it discloses substring/case-insensitive matching, the two result-cardinality outcomes (unique = usable, multiple = user must select), the default limit of 25, and truncation-narrowing behavior. It omits what happens on an invalid domain_code/dimension_id or any error/empty-result behavior.

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?

Four short sentences, front-loaded with the core purpose and matching rule, then the result-handling contract, then the limit constraint. Every sentence carries actionable information with no filler.

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

Completeness3/5

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

An output schema exists, so return format need not be explained, and the search/match behavior is covered. However, for a tool requiring domain_code and dimension_id, the description never explains their relationship or valid values, leaving a real gap in how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and five parameters exist, yet the description only explains 'query' (must be nonblank, which is not in the schema) and repeats the limit default already present in the schema. The two other required parameters, domain_code and dimension_id, are never defined, leaving the agent without the scoping semantics that matter most.

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 (Find) plus resource (domain FILTER codes) and the matching method (case-insensitive substring), so the operation is unambiguous. It does not name the closest sibling (faostat_get_codes) or faostat_resolve_name, so the distinction is only implied by 'before querying unknown codes'.

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?

'Use before querying unknown codes' gives a clear triggering condition, and the unique-vs-multiple match rule tells the agent what to do with the result. It stops short of explicitly naming the alternative tool to use when codes are already known.

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