Skip to main content
Glama
okfn
by okfn

mcp_iati_transaction_totals_by_country

Group aid commitments and disbursements by recipient country to get total amounts per country, with optional currency and row limit filters.

Instructions

Group commitments and disbursements by recipient country.

    Amounts with different currencies and transaction types are reported
    separately. Missing country names fall back to the country code, and
    missing country data falls back to "Unknown recipient country".

    Args:
        transaction_type: Commitment or disbursement. Accepts commitment,
            out commitment, disbursement, 2 or 3.
        currency: Optional currency code, for example USD or EUR.
        limit: Maximum number of grouped rows to return. Default: 50.

    Returns:
        A table containing the country code and name, transaction type,
        currency and total amount.

    Relevant IATI terms:
    - Recipient country or region: Country (ISO code) or supra-national DAC region that receives the intended benefits of an activity. May include a percentage when the activity is split across several territories.
  • Transaction: Financial operation associated with an IATI activity, identified by its type, date, value and currency.

  • Transaction type: Code indicating the nature of a financial operation: incoming funds, commitment, disbursement, expenditure, interest payment, loan repayment, reimbursement, purchase or sale of equity, credit guarantee, incoming commitment, or outgoing/incoming pledge.

  • Transaction value: Amount of an individual transaction, expressed in the currency stated on the value or, if unspecified, in the activity's default currency.

  • Commitment: Financial obligation undertaken to provide funds to an activity; it does not necessarily represent a payment already made.

  • Disbursement: Transfer of funds from a provider organisation to a receiver organisation to finance an activity.

  • Default currency: Currency declared for an activity and used whenever a financial value does not explicitly specify another currency.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
currencyNo
transaction_typeNo2

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
forceNoPlain text message that bypasses LLM processing and should be printed exactly as provided in the user interface.
tableNoTwo-dimensional list (list of rows) representing tabular data, e.g., from CSV or TSV sources. Each row should be a list of cell values.
chartsNoList of dictionaries containing data and configuration for rendering a Chart.js chart in the chat interface.
sourcesYesURL(s) that users can nagivate to to download the data used for the analysis. E.g., landing page, feed, file endpoint, CKAN resource page, etc.
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it discloses useful behavioral details: amounts in different currencies and transaction types are reported separately, missing country names fall back to codes, and missing country data falls back to 'Unknown recipient country'. It also clarifies the return table's contents, though it does not mention pagination, ordering, or read-only status.

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?

The description is well organized with Args, Returns, and Relevant IATI terms sections, and the key behavior is front-loaded in the first sentence. The IATI glossary is somewhat lengthy, but it provides useful domain context for an agent unfamiliar with IATI terminology.

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?

The description is complete enough to call the tool correctly: it covers parameter values, output columns, fallback behavior, and aggregation semantics. An output schema exists, and while the description goes beyond it usefully, it could still be improved by explicitly noting whether only one transaction_type is returned per call and how results are ordered.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates by explaining all three parameters. It gives accepted values for transaction_type ('commitment', 'out commitment', 'disbursement', '2', or '3'), states that currency is an optional code with examples, and specifies limit as the maximum grouped rows with a default of 50.

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 opens with a specific verb and resource: 'Group commitments and disbursements by recipient country.' It clearly defines the grouping dimension (country) and output (table with country, type, currency, total), which distinguishes it from sibling tools that group by year, organisation, or sector.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied through the tool name and the grouping-by-country statement, but the description does not explicitly state when to prefer it over transaction_totals_by_year, transaction_totals_by_organisation, or transaction_totals_by_sector. No alternatives or exclusions are mentioned, so the agent must infer selection from naming context.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/okfn/mcp-iati'

If you have feedback or need assistance with the MCP directory API, please join our Discord server