Skip to main content
Glama
catbru
by catbru

idescat-mcp

MCP server for the IDESCAT Tables API v2 — the Statistical Institute of Catalonia.

Tools

Tool

Purpose

idescat_list_catalog

Navigate catalogue: statistics → nodes → tables

idescat_get_territorial_options

List available geo divisions for a table

idescat_get_table_metadata

Inspect dimensions and valid filter values

idescat_query_data

Fetch data as flattened rows with resolved labels

idescat_check_historical_relations

Discover historical and related tables

Related MCP server: Catalunya Open Data MCP

Typical workflow

  1. idescat_list_catalog — find the statistics and node

  2. idescat_get_territorial_options — pick a geo division

  3. idescat_get_table_metadata — understand dimensions and valid filter values

  4. idescat_query_data — fetch filtered data

Installation

npm install

Claude Desktop integration

Add to ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "idescat": {
      "command": "npx",
      "args": ["tsx", "/absolute/path/to/idescat-mcp/src/index.ts"]
    }
  }
}

Requirements

  • Node.js 18+

Available Tools

5 tools
idescat_check_historical_relationsC

Descobreix taules relacionades: versions anteriors de la mateixa sèrie i les mateixes dades en altres divisions territorials.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
langNoIdioma: ca (defecte), es, en.
nodeNo
tableNo
table_idNoCamí complet "statistics/node/table/geo" (alternativa als camps separats).
statisticsNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, side effects, or required permissions. The tool's purpose suggests it is a read operation, but this is not stated.

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 a single front-loaded sentence with no wasted words. However, it is only in Catalan, which may reduce clarity for non-Catalan-speaking agents.

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

Completeness2/5

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

With 6 parameters and no output schema, the description should explain how to specify relations and what to expect. It is too vague to be useful, lacking essential context for correct invocation.

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 description coverage is only 33% (2 of 6 parameters described). The description does not add meaning beyond the schema; it mentions 'historical versions' and 'territorial divisions' but fails to map to specific parameters like node, table, or geo.

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?

The description clearly states the tool discovers related tables (historical versions and same data in other territorial divisions), using a specific verb and resource. While it distinguishes from siblings by focusing on relations, it does not explicitly contrast with sibling tools.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It implies usage for finding related tables but lacks context on prerequisites, exclusions, or scenarios where other tools are preferred.

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

idescat_get_table_metadataA

Retorna les metadades d'una taula: dimensions, valors possibles, fonts i enllaç a les dades. IMPORTANT: l'ID de taula (table) és diferent de l'ID de node — obté'l primer amb idescat_list_catalog(statistics, node). Usa-la ABANS de idescat_query_data per saber quins filtres aplicar.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNoDivisió territorial (cat, com, mun, prov, etc.).
langNoIdioma: ca (defecte), es, en.
nodeNo
tableNo
filtersNoFiltres opcionals. Ex: {"SEX": "F"}
table_idNoCamí complet "statistics/node/table/geo" (alternativa als camps separats).
statisticsNo

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that the tool returns metadata (read operation) and highlights important ID differences. While it doesn't mention permissions or side effects, the behavioral context is solid for a read-oriented tool.

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 with no wasted words. Front-loaded with purpose and an important usage note. Highly efficient.

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?

The description explains what the tool returns (dimensions, values, sources, link) and its sequential role. However, with 7 parameters and no output schema, the agent lacks full context on how to invoke the tool correctly (e.g., which parameters are required, how to use filters, response format). Could be more complete.

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 description coverage is 57% (low), but the description only minimally adds parameter meaning (e.g., table ID vs node ID). Major parameters like 'node', 'table', and 'statistics' lack explanation, and the 'filters' object is only noted in schema schema. The description does not sufficiently compensate for uncovered parameters.

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?

Description clearly states verb and resource: returns metadata of a table including dimensions, possible values, sources, and link. It distinguishes from sibling tools by emphasizing the difference between table ID and node ID, and its role before querying data.

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?

Explicitly instructs to use this tool BEFORE idescat_query_data to determine filters, and directs to first use idescat_list_catalog to obtain the correct table ID. Provides clear context and a conditional workflow.

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

idescat_get_territorial_optionsC

Retorna les divisions territorials disponibles per a una taula específica (cat, com, mun, prov, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoIdioma: ca (defecte), es, en.
nodeNo
tableNo
table_idNoCamí complet "statistics/node/table" (alternativa als camps separats).
statisticsNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It does not disclose whether the operation is read-only, what side effects exist, or any requirements. It simply states what it returns.

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?

One sentence, no wasted words. However, it could be restructured to provide more context upfront, e.g., 'Use this to get territorial divisions for a table.'

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

Completeness2/5

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

The tool has 5 parameters and no output schema. The description does not explain the response format, how to combine parameters, or what the territorial divisions represent. Missing critical context for a complex tool.

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?

Only 40% of parameters have schema descriptions. The tool description does not add meaning to parameters like 'node', 'table', 'statistics'—it only mentions 'specific table' without clarifying which parameter identifies it.

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?

The description clearly states the tool returns available territorial divisions for a specific table, with examples like cat, com, mun, prov. It distinguishes from sibling tools which have different purposes like querying data or getting metadata.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no mention of prerequisites or when not to use it. The agent lacks context for decision-making.

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

idescat_list_catalogA

Navega el catàleg jeràrquic de l'IDESCAT en 3 nivells: (1) sense paràmetres → llista d'estadístiques; (2) amb statistics → llista de nodes; (3) amb statistics+node → llista de TAULES amb els seus IDs reals. Has de cridar-la fins al nivell 3 per obtenir l'ID de taula correcte abans d'usar idescat_get_table_metadata o idescat_query_data.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoIdioma: ca (defecte), es, en.
nodeNoCodi del node (requereix statistics). Opcional.
statisticsNoCodi de l'estadística (ex: pmh). Opcional.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly explains the three behavioral levels depending on parameters: no params returns list of statistics, with statistics returns list of nodes, with both returns list of tables. This is transparent and non-contradictory.

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 a single sentence that covers the essential behavior without any wasted words. It is front-loaded with the core purpose and efficiently explains the three usage levels.

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 tool's complexity (3-level navigation) and the clear schema, the description adequately explains the behavior. It mentions the need to reach level 3 to get real table IDs, which is crucial for using sibling tools. The absence of an output schema is not a problem as the description implies the output changes per level.

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?

The input schema has 100% description coverage, and the description adds significant meaning by explaining how parameters (statistics, node) interact to produce different levels of output. This goes beyond the schema's individual parameter 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 clearly states it navigates a hierarchical catalog in 3 levels and specifies what each level returns (statistics, nodes, tables). It distinguishes itself from sibling tools by explaining that it is used to obtain table IDs before calling idescat_get_table_metadata or idescat_query_data.

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 explicitly instructs to call until level 3 to get the correct table ID before using other tools. It provides clear context for when to use this tool, though it does not explicitly state when not to use it beyond the alternative tools mentioned.

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

idescat_query_dataA

Obté dades d'una taula com a array de files aplanades amb etiquetes. IMPORTANT: l'ID de taula (table) és diferent de l'ID de node — obté'l amb idescat_list_catalog(statistics, node). Consulta primer idescat_get_table_metadata per saber les dimensions i filtres disponibles.

ParametersJSON Schema
NameRequiredDescriptionDefault
geoNo
langNoIdioma: ca (defecte), es, en.
lastNoRetorna els darrers N períodes disponibles (_LAST_). No combinar amb filtre de temps.
nodeNo
tableNo
filtersNoFiltres per dimensió. Ex: {"SEX": "F", "COM": "01,TOTAL"}
table_idNoCamí complet "statistics/node/table/geo" (alternativa als camps separats).
statisticsNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It only mentions the output format (array of flattened rows) and a usage warning, but omits auth requirements, rate limits, error handling, or whether operation is read-only. Significant gaps for a data retrieval tool.

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 cover purpose, warning, and prerequisite steps. Efficient and front-loaded with no redundant content. Every sentence adds value.

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?

With 8 parameters, no output schema, and no annotations, the description provides essential but incomplete context. It explains the output format and prerequisite steps, but does not cover parameter semantics for half the parameters, alternative parameter combinations (table_id vs separate fields), or data volume implications. Adequate but with clear gaps.

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 50% (4 of 8 parameters have descriptions). The description does not add meaning to undocumented parameters (geo, node, table, statistics) beyond the schema. It reiterates that filters are dimensions, but that is already in schema. Does not compensate for low coverage.

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?

The description clearly states the tool retrieves data from a table as flattened rows with labels. It distinguishes the table ID from node ID and references sibling tools for prerequisites, though it does not explicitly contrast with each sibling.

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?

Explicitly instructs to first use idescat_get_table_metadata to discover dimensions and filters, and to obtain table ID via idescat_list_catalog. Warns that table ID differs from node ID, providing clear when-to-use and prerequisite guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observedidescat_check_historical_relations
    • First observedidescat_get_table_metadata
    • First observedidescat_get_territorial_options
    • First observedidescat_list_catalog
    • First observedidescat_query_data

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose: catalog navigation, metadata retrieval, territorial options, historical relations, and data querying. The descriptions clearly differentiate their roles and usage order.

Naming Consistency5/5

All tools follow the consistent pattern 'idescat_verb_noun' using snake_case, with verbs like 'list', 'get', 'query', and 'check' clearly indicating the action.

Tool Count5/5

Five tools is well-scoped for a statistical data server, covering catalog browsing, metadata, data retrieval, territorial filtering, and historical exploration without excess or deficiency.

Completeness4/5

The tool set covers core workflows (navigate, get metadata, query data, explore related tables) with a minor gap for direct dimension filtering beyond territory, but the metadata tool provides necessary information for query construction.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying statistical data from the Statistical Office of the Republic of Slovenia (SURS) via SiStat PxWeb, including navigating table trees, retrieving table metadata, and querying table data.
    13
    MIT

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/catbru/idescat-mcp'

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