idescat-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@idescat-mcpShow me the latest population statistics for Barcelona"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
idescat-mcp
MCP server for the IDESCAT Tables API v2 — the Statistical Institute of Catalonia.
Tools
Tool | Purpose |
| Navigate catalogue: statistics → nodes → tables |
| List available geo divisions for a table |
| Inspect dimensions and valid filter values |
| Fetch data as flattened rows with resolved labels |
| Discover historical and related tables |
Related MCP server: Catalunya Open Data MCP
Typical workflow
idescat_list_catalog— find the statistics and nodeidescat_get_territorial_options— pick a geo divisionidescat_get_table_metadata— understand dimensions and valid filter valuesidescat_query_data— fetch filtered data
Installation
npm installClaude 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 toolsidescat_check_historical_relationsC
Descobreix taules relacionades: versions anteriors de la mateixa sèrie i les mateixes dades en altres divisions territorials.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| lang | No | Idioma: ca (defecte), es, en. | |
| node | No | ||
| table | No | ||
| table_id | No | Camí complet "statistics/node/table/geo" (alternativa als camps separats). | |
| statistics | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | Divisió territorial (cat, com, mun, prov, etc.). | |
| lang | No | Idioma: ca (defecte), es, en. | |
| node | No | ||
| table | No | ||
| filters | No | Filtres opcionals. Ex: {"SEX": "F"} | |
| table_id | No | Camí complet "statistics/node/table/geo" (alternativa als camps separats). | |
| statistics | No |
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Idioma: ca (defecte), es, en. | |
| node | No | ||
| table | No | ||
| table_id | No | Camí complet "statistics/node/table" (alternativa als camps separats). | |
| statistics | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Idioma: ca (defecte), es, en. | |
| node | No | Codi del node (requereix statistics). Opcional. | |
| statistics | No | Codi de l'estadística (ex: pmh). Opcional. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | No | ||
| lang | No | Idioma: ca (defecte), es, en. | |
| last | No | Retorna els darrers N períodes disponibles (_LAST_). No combinar amb filtre de temps. | |
| node | No | ||
| table | No | ||
| filters | No | Filtres per dimensió. Ex: {"SEX": "F", "COM": "01,TOTAL"} | |
| table_id | No | Camí complet "statistics/node/table/geo" (alternativa als camps separats). | |
| statistics | No |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v1.0.0- First observed
idescat_check_historical_relations - First observed
idescat_get_table_metadata - First observed
idescat_get_territorial_options - First observed
idescat_list_catalog - First observed
idescat_query_data
TDQS
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.
All tools follow the consistent pattern 'idescat_verb_noun' using snake_case, with verbs like 'list', 'get', 'query', and 'check' clearly indicating the action.
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.
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
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
Query official statistics of Catalonia (Idescat): tables, metadata and JSON-stat data via MCP.
Eurostat MCP — wraps Eurostat Statistical Data API (no auth required)
Search and query the Eurostat catalogue — EU economy, demography, trade, and NUTS regional data.
UK Office for National Statistics dataset catalogue + Beta JSON API
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables querying Japanese government statistics from e-Stat, including metadata, data observations, and catalog browsing.10MIT
- AlicenseAqualityCmaintenanceEnables discovering, describing, and querying public datasets from Catalunya, including Socrata, IDESCAT, and Open Data BCN portals.22MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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.13MIT
- AlicenseNot gradedqualityCmaintenanceEnables access to Statistics Iceland data through the PxWeb API for querying tables and navigating subject trees.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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