Skip to main content
Glama
SidneyBissoli

ILO Statistics (ILOSTAT) MCP Server

Server Quality Checklist

92%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.0

  • Disambiguation5/5

    Each tool occupies a distinct stage in the data-access pipeline: search for indicators, inspect structure, resolve dimension codes, and fetch observations. The descriptions explicitly state what each tool does NOT do, which eliminates ambiguity and reinforces boundaries between metadata, dimension values, and data.

    Naming Consistency5/5

    All four tools follow the exact `ilo_` prefix plus verb-object snake_case convention: `search_indicators`, `get_indicator_metadata`, `get_data`, `list_dimension_values`. The verb usage is consistent with purpose (search vs get vs list) and requires no mental remapping.

    Tool Count5/5

    Four tools is well within the ideal 3-15 range for a focused data-access server. Each tool serves a clear, non-redundant function in the workflow, and none feel like filler—there is no obvious tool that could be merged or removed.

    Completeness4/5

    The core query lifecycle is fully covered: discover indicators, read structure, resolve codes, and fetch data. Minor gaps include no way to list all dataflows (only search) and no availability check for which codes have data in a given dataflow, but the descriptions provide workarounds and the domain is well-covered.

  • Average 4.7/5 across 4 of 4 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 55 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior4/5

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

    Annotations already declare readOnly/idempotent and destructive=false; the description adds non-obvious behavior: raw data only (no aggregation/transformation), unfiltered dimensions return all categories, and a 30-area limit. This reveals important constraints without contradicting the annotations.

    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?

    The description is compact and front-loaded, with every clause earning its place: purpose, filtering, constraints, raw-data guarantee, and sibling pointer. There is no redundancy with schema or annotations.

    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?

    Given the tool's complexity, the description covers purpose, filtering behavior, batching/pagination constraints, raw-data semantics, and an alternative tool, while the output schema covers returns. An agent has enough context to select and invoke this tool correctly.

    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; the description adds concrete filter JSON, period examples, the REF_AREA requirement, and batching guidance. It does not address provenance_mode or last_n_observations, but their schema descriptions are already clear.

    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 'Statistical observations from one ILOSTAT dataflow', a specific verb/resource/scope, and goes on to define filtering by dimension codes and period. It explicitly contrasts with ilo_search_indicators ('does not search indicators'), which distinguishes it from a key sibling.

    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 alternative for indicator search ('use ilo_search_indicators') and provides operational guidance: REF_AREA is required, maximum 30 areas, split batches and paginate by period. It does not mention metadata/list siblings, but the main use-case boundary is clear.

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

  • Behavior4/5

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

    Annotations indicate readOnly, openWorld, idempotent, and non-destructive, and the description correctly implies a read-only operation. The description adds useful behavioral details beyond annotations, such as not returning statistical values or codes, and the provenance modes. However, it could have elaborated on the detailed provenance mode's contents.

    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?

    The description is concise at two sentences, front-loads the primary purpose, and uses clear negative statements to set boundaries. Every sentence contributes actionable information.

    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?

    Given the complex domain and presence of an output schema, the description sufficiently covers the tool's role and usage context. It could mention the 'concise' default more loudly but overall is adequate for a read-only metadata lookup tool.

    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 description coverage is 100%, and the description adds key context by explaining the dataflow parameter's source (from ilo_search_indicators) and the provenance_mode options with defaults. This goes beyond the schema's basic descriptions.

    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 states the tool provides the structure of an ILOSTAT dataflow, including dimensions, codelists, time dimension, default selection, and data vintage, which clearly distinguishes it from siblings like ilo_get_data and ilo_list_dimension_values. It also explicitly mentions what it does not do.

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

    Usage Guidelines5/5

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

    The description explicitly advises using this tool before ilo_get_data to know which filters exist, and also directs users to ilo_list_dimension_values for codes. This provides clear when-to-use guidance and names alternative tools.

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

  • Behavior5/5

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

    Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description adds rich non-obvious behavior: AND semantics, case-insensitivity, ranking by ILO relevance (not match count), ID format conventions (_RT = rate/ratio, _NB = thousands), modelled-estimate detection via second token, and explicit non-coverage of non-ILO sources. All of this is genuinely additive behavioral context the annotations could not express.

    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 long but every sentence earns its place, flowing logically from core purpose → search semantics → ID conventions → exclusions. It front-loads the most critical signal (what the tool searches) and uses em-dashes and parentheses to compress a lot of heuristic guidance into a readable paragraph. The only blemish is the density might overwhelm a first-time caller, but for a tool with this nuance, it's near-optimal.

    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 4-parameter read-only search tool with an output schema, this description is complete: it specifies the return contract ('Returns dataflow ids to use with ilo_get_data / ilo_get_indicator_metadata') and documents all the failure modes an agent would otherwise hit (0 results, case sensitivity, modelled vs reported). The output schema covers return structure details, so the description need not repeat them. Nothing is left unaddressed.

    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 the baseline is 3; the description earns a 4 by going beyond field docs: it clarifies that the query matches across both name AND id, that terms combine with AND (echoed but also exemplified with 'unemployment rate sex age'), and that the id returned will feed into other tools. However, it does not add detail on limit/offset pagination semantics or provenance_mode values beyond the schema.

    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 starts with a specific verb+resource pairing ('Search the ILOSTAT catalogue of ~1,200 indicator dataflows by keywords in the name or id') and immediately differentiates from siblings by naming what it does NOT do ('does not return statistical values (use ilo_get_data), does not search dimension codes such as countries (use ilo_list_dimension_values)').

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

    Usage Guidelines5/5

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

    Provides explicit when-to-use guidance: 'start with 2–3 English words and drop terms if you get 0 results' is actionable search strategy. Directly names two alternatives (ilo_get_data, ilo_list_dimension_values) in the exclusion context, and teaches ID-reading heuristics (_RT, _NB, second-token '2') that tell the agent which results to prefer.

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

  • Behavior5/5

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

    The description adds behavioral context beyond the readOnly/idempotent/destructive annotations by clarifying that the tool does not return statistical values, does not indicate which codes have data, and does not apply to the time dimension. It also notes codelists are shared across dataflows, which is not evident from annotations. No contradiction with annotations.

    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?

    The description is concise yet information-dense, front-loaded with purpose and examples. Each sentence adds value: usage, sharing, limitations, and time dimension exclusion. No fluff or redundancy.

    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?

    Given the tool's moderate complexity, excellent schema annotations, and presence of an output schema, the description covers all necessary context: purpose, usage, limitations, and alternative paths. It is complete for an agent to correctly select and invoke the tool.

    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 parameters are documented in the schema, but the description enhances meaning by explaining the 'search' parameter usage (to resolve a name to a code), and clarifying pagination via offset/limit. It also ties 'dimension' to ilo_get_indicator_metadata. This adds value beyond the schema.

    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 clearly states that the tool lists valid codes (id + label) for a dimension of an ILOSTAT dataflow, with concrete examples (REF_AREA, SEX, AGE). It specifies the verb 'list' and the resource 'codes of a dimension', and distinguishes itself from siblings by noting it does not return statistical values and is not for data retrieval.

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

    Usage Guidelines5/5

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

    Explicit guidance on when to use the tool (to build correct ilo_get_data filters), when not to use it (for data availability, time dimension), and alternatives (use 'search' parameter to resolve names, filter time via ilo_get_data start_period/end_period). This is exemplary usage guidance.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

ilo-mcp-server MCP server

Copy to your README.md:

Score Badge

ilo-mcp-server MCP server

Copy to your README.md:

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/SidneyBissoli/ilo-mcp-server'

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