Skip to main content
Glama
paulvercoustre

UNDP Open Data MCP Server

List UNDP operating units

undp_list_operating_units

List UNDP country and regional offices with budget, expenditure, and project counts. Use it to resolve a country name to the ISO3 code required by other operating_unit filters.

Instructions

List UNDP operating units (country offices and regional/global units) with headline budget, expenditure and project counts. Use this to resolve a country name to the iso3 code that every other tool's operating_unit filter expects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNoCase-insensitive match on unit name or iso3 code, e.g. 'kenya'.
offsetNo
sort_byNoSort key. Financial sorts are descending.
fund_typeNoFilter by fund type, e.g. 'Core', 'Other'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the behavioral disclosure burden. It does state the return content and the iso3 resolution purpose, but it does not mention pagination, default result limits, or whether all units are returned by default. This is a meaningful gap for a list tool with optional limit and offset parameters.

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?

Two sentences carry the full message with no filler. The purpose is front-loaded, and the usage guidance follows immediately. Every clause earns its place.

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?

With no required parameters CST, no output schema, and no annotations, the description provides the essential call rationale and return content. It is not fully complete because default pagination behavior and the relationship to undp_get_operating_unit are left implicit, but a correct first call is well supported.

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 description coverage is 60%, with query, sort_by, and fund_type already documented. The description reinforces the query-to-iso3 relationship, but it adds little for the undocumented limit and offset parameters. The conventional names make them understandable, so a baseline 3 is appropriate.

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 names a specific verb ('List'), a specific resource ('UNDP operating units'), and the fields returned ('headline budget, expenditure and project counts'). It also clarifies that these units include country offices and regional/global units, which distinguishes it from region or SDG list siblings.

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 gives an explicit use case: 'Use this to resolve a country name to the iso3 code that every other tool's operating_unit filter expects.' This clearly tells an agent when to call it, though it does not name alternatives or state when not to use it, so it stops short of a 5.

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