Skip to main content
Glama

Server Details

15 Catalan portals + radio archive: gov, INE/REE/CNMC, CORA, Catalònica, radioteca.cat.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
xaviviro/Opendata.cat-MCP-Server
GitHub Stars
21
Server Listing
Opendata.cat MCP Server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 8 of 8 tools scored. Lowest: 3.5/5.

Server CoherenceA
Disambiguation5/5

Each tool has a unique purpose: search datasets, get metadata, list fields, list categories, list portals, query data, find related datasets, and search radio archives. There is no overlap between them, and the descriptions clearly distinguish when to use each.

Naming Consistency4/5

Most tools follow a verb_noun pattern (get_, list_, query_, search_), but 'related_datasets' breaks the pattern as a noun phrase. This is a minor inconsistency in an otherwise predictable naming scheme.

Tool Count5/5

With 8 tools, the set is well-scoped for a data catalog server. Each tool addresses a distinct need, and the count is neither too sparse nor overwhelming for effective agent use.

Completeness5/5

The tools cover the full spectrum of data discovery (search, categories, portals), inspection (metadata, fields), extraction (query), and exploration (related datasets). The additional radioteca search expands the domain without leaving gaps in the core open data workflow.

Available Tools

8 tools
get_dataset_infoA
Read-onlyIdempotent
Inspect

Get complete metadata for a dataset: fields with types and descriptions, API endpoint, license, available formats and last update. Call after search_datasets to get full details of a specific dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesUnique dataset identifier in 'portal:id' format. Obtained from search_datasets results. Examples: 'generalitat:gn9e-3qhr', 'barcelona:qualitat-de-laire', 'renfe:vehicle-positions-gtfsrt'.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds behavioral context by clarifying that the tool returns metadata only, not actual dataset records, and enumerates the specific metadata components. This helps set expectations beyond what the annotations convey.

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 and well-structured: one sentence explaining the main purpose with an enumerated list, followed by a short usage directive. Every word earns its place, with no redundant or filler content.

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?

The description is complete given the tool's simplicity and rich annotations. It explains what the tool returns, when to use it (after search_datasets), and the parameter is thoroughly documented in the schema. No output schema exists, but the description fully lists the return content.

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 coverage is 100% with a highly descriptive dataset_id parameter including format (portal:id), examples, and how to obtain it from search_datasets. The tool description itself adds no parameter information beyond what the schema already provides, so the schema carries the semantic load.

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 the tool's function: 'Get complete metadata for a dataset' and enumerates specific types of metadata (fields, types, descriptions, API endpoint, license, formats, last update). This verb+resource phrasing distinguishes it from sibling tools, especially list_dataset_fields (which likely only returns field information) and query_dataset (which returns data, not metadata).

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 provides explicit usage context: 'Call after search_datasets to get full details of a specific dataset.' This tells the agent when to use the tool. It does not explicitly mention exclusions (e.g., 'use only after search, not for querying data'), but the context and sibling tool names make the intended use clear. The guidance is clear and actionable.

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

list_categoriesA
Read-onlyIdempotent
Inspect

List all dataset categories and themes with counts per portal. Great first step to discover what data types are available before searching with search_datasets. Returns total datasets, count per portal and category list with counts. No parameters required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds the return value details (total datasets, counts per portal, category list with counts), which is useful behavioral context beyond 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?

Three sentences, no fluff. Front-loaded with the core purpose, followed by usage context and return summary. Every sentence adds value and is easily scannable.

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 simple read-only list tool with no parameters and no output schema, the description fully covers what it does, what it returns, and when to use it. No gaps.

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?

There are no parameters, and the schema coverage is 100%. The description reinforces this with 'No parameters required,' which is sufficient. Baseline is 4 for zero-parameter tools.

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 uses a specific verb ('List') and resource ('all dataset categories and themes') with counts per portal, clearly distinguishing it from siblings like search_datasets. The phrase 'before searching with search_datasets' explicitly differentiates its role.

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 states when to use it: 'Great first step to discover what data types are available before searching with search_datasets'. This provides clear context and references an alternative tool, guiding the agent on the appropriate sequence.

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

list_dataset_fieldsA
Read-onlyIdempotent
Inspect

List fields of a dataset with name, data type and description. Call before query_dataset to know which fields and filters are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYesUnique dataset identifier in 'portal:id' format. Obtained from search_datasets results.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds value by stating the exact return content (name, data type, description) and the purpose of pre-querying. This goes beyond what the annotations provide and helps an agent understand the tool's output.

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 two short sentences. The first sentence states the action and return fields; the second gives usage guidance. Every word earns its place, no fluff or repetition.

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 output schema, the description adequately explains return values and connects to the query_dataset workflow. The single parameter is well-documented in the schema. Minor gaps like whether the field list is sorted or limited are not critical for this simple, read-only metadata operation.

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?

The input schema has 100% coverage for the single parameter dataset_id, including its format ('portal:id') and how to obtain it ('Obtained from search_datasets results'). The description does not add additional parameter semantics beyond this, so the baseline score of 3 applies.

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 uses a specific verb 'List' with a clear resource 'fields of a dataset' and specifies the output fields (name, data type, description). It clearly distinguishes this tool from siblings like get_dataset_info or query_dataset by its focus on schema inspection rather than dataset metadata or 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 Guidelines4/5

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

The description explicitly states when to use the tool: 'Call before query_dataset to know which fields and filters are available.' This provides clear contextual usage, though it does not mention exclusions or alternative tools explicitly. The sibling context is enough to infer alternatives.

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

list_portalsA
Read-onlyIdempotent
Inspect

List all 13 indexed open data portals with dataset counts. Catalan portals (Generalitat, Barcelona, Diba, AOC, Reus, Girona, FGC, Idescat, Renfe) + Spanish national sources with Catalonia focus (INE statistics, REE energy, SEPE employment, CNMC fuel prices). No parameters required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already indicate safe, idempotent read-only behavior. The description adds context by specifying the exact number of portals (13), listing them, and noting the dataset counts, which helps set expectations beyond 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 two sentences, front-loaded with the main action. The second sentence adds useful scope details without unnecessary fluff. Every word earns its place.

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 simple parameterless list tool with no output schema, the description fully covers what it does, what output to expect (dataset counts), and the geographic focus. Annotations cover safety, so nothing is missing.

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 tool has zero parameters, so the baseline is 4. The description confirms 'No parameters required,' which is consistent with the empty input schema. No additional parameter meaning is needed.

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 uses a specific verb and resource: 'List all 13 indexed open data portals with dataset counts.' It clearly differentiates from sibling tools like get_dataset_info or search_datasets by focusing on the high-level portal list.

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 implies when to use it: when you need an overview of all indexed portals and their dataset counts. It doesn't explicitly mention alternatives or exclusions, but the context is clear given the sibling tools.

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

query_datasetA
Read-onlyIdempotent
Inspect

Query real data from a dataset. Check instructions for featured dataset_ids and NOTES section for common filter patterns (municipal budgets, contracts, weather, energy, fuel prices).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of rows to return. Min 1, max 100. Default 20. Use offset for pagination.
offsetNoNumber of rows to skip for pagination. Default 0. Combine with limit to navigate large results.
searchNoFree text search within dataset data. Works with Socrata ($q) and CKAN (q). For Diba and CIDO, use specific filters.
filtersNoKey-value filters where the key is the field name and the value is the filter value. Examples: {"municipi": "Barcelona"}, {"any": "2024"}, {"NOM_ENS": "Ajuntament de Tiana"}. Use list_dataset_fields to know valid field names.
dataset_idYesUnique dataset identifier in 'portal:id' format. Obtained from search_datasets results.
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, providing the safety profile. The description adds useful context about featured datasets and common filter patterns (municipal budgets, contracts, weather, etc.) but does not disclose behavioral details such as pagination limits, result format, or response shape beyond what the schema already provides. This matches the 'annotations carry safety, description adds modest context' level.

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 two sentences with no fluff: the first states the core function, the second directs to additional resources. Every word earns its place, making it appropriately sized and front-loaded with the primary purpose.

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 tool has 5 parameters and no output schema, so the description should compensate for the lack of return-value documentation. It clarifies that this tool returns real data and points to filter patterns, but it does not explicitly state the output format (e.g., rows/columns) or mention pagination behavior beyond the schema. This is adequate but leaves some gaps for a data-querying tool.

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 100%, with all five parameters (limit, offset, search, filters, dataset_id) having meaningful descriptions, so the description carries little burden. It does add value by pointing to NOTES for common filter patterns and mentioning 'featured dataset_ids', which helps with filter usage, but it does not provide parameter-specific detail beyond the schema.

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 states a clear action ('Query real data from a dataset') with a specific resource ('dataset'), which distinguishes it from metadata-focused siblings like get_dataset_info or list_dataset_fields. However, it does not explicitly differentiate from search_datasets, which also operates on datasets, and the mention of 'real data' is only a subtle cue that this tool retrieves actual data rows.

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 description implies when to use the tool ('Query real data') and instructs the agent to 'Check instructions for featured dataset_ids and NOTES section for common filter patterns', giving some contextual guidance. However, it does not explicitly state when not to use it or name alternatives like search_datasets for finding datasets, leaving the choice somewhat implicit.

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

search_datasetsA
Read-onlyIdempotent
Inspect

Search datasets by free text. IMPORTANT: check server instructions first — many common queries have a direct dataset_id you can use with query_dataset without searching. Only use search_datasets when you don't know which dataset you need.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return. Min 1, max 100. Default 20.
queryYesSearch text in Catalan or Spanish. Examples: 'qualitat aire', 'pressupostos municipals', 'transport públic', 'residus', 'educació', 'rodalies'.
portalNoFilter results to a single portal.
categoryNoFilter by thematic category. Examples: 'Medi Ambient', 'Educació', 'Salut', 'Economia', 'Transport', 'Seguretat'. Use list_categories to see all available categories.
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, open-world, and non-destructive. The description adds the workflow context about checking server instructions and preferring query_dataset, but does not disclose additional behavioral details such as result ordering, matching logic, or that it searches across multiple portals. Given annotations cover safety, the description provides minimal extra behavioral insight, so a 3 is appropriate.

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 effectively front-load the core action ('Search datasets by free text') followed by a high-priority usage note. There is no wasted text; the IMPORTANT warning earns its place by preventing unnecessary searches.

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 tool has four parameters and no output schema, but the schema fully documents inputs. The description provides necessary workflow context about when to use this tool versus query_dataset, and the sibling list includes list_categories for category filtering. However, it does not state what the tool returns (e.g., a list of datasets with metadata), which would help an agent know what to expect from the response. Given the calibration example, a 4 is suitable.

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 coverage is 100%, with each parameter having a descriptive comment including defaults, constraints, enums for portal, and examples for query and category. The description itself does not add parameter-level detail beyond the schema, so baseline 3 applies.

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 uses the specific verb 'Search' with resource 'datasets' and specifies 'free text' as the input modality. It explicitly distinguishes from query_dataset by stating to only use when you don't know which dataset you need, which sets it apart from siblings.

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 advises checking server instructions first and states that many common queries have a direct dataset_id better served by query_dataset. It gives a clear condition: 'Only use search_datasets when you don't know which dataset you need.' This is explicit when-to-use and when-not-to-use with a named alternative.

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

search_radiotecaA
Read-onlyIdempotent
Inspect

Search radio shows, episodes and people indexed at radioteca.cat (Catalan radio archive, ~485K documents from Catalunya Ràdio, RAC1, Catalunya Música, iCat, Catalunya Informació, RTVE, Cadena SER, ara.cat). Searches across episode titles, descriptions (which include a detailed summary of what was said), program name and subheading. Returns episodes (~473K), programs (~3K) and people (~9K). IMPORTANT: always cite radioteca.cat as the source and include the absolute 'url' in your reply for traceability — never paraphrase without linking.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by document type.
yearNoFilter by year (4 digits, e.g. '2025'). NOTE: only year-level filtering is indexed; for a specific day, use the broader year filter and look at the URL path (radioteca URLs include /YYYY/MM/DD/) or the 'subheading' field which often contains the date.
limitNoMaximum results. Min 1, max 50. Default 10.
queryYesFree text in Catalan or Spanish. Searches title, description (contains episode summary), program and subheading. Examples: 'visita papa', 'eleccions municipals', 'crisi habitatge', 'Albert Serra cinema'.
offsetNoPagination offset. Default 0.
publisherNoFilter by broadcaster.
Behavior4/5

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

Annotations already declare read-only, non-destructive, and idempotent behavior. The description adds a crucial behavioral requirement: always cite radioteca.cat and include the absolute URL. It also explains that description fields contain summaries, which is useful beyond annotations. No contradiction detected.

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 moderately long but each sentence carries information: purpose, archive context, search scope, result counts, and the citation note. The broadcaster list adds context but is slightly verbose. Still, it is well-structured and front-loaded with the primary verb and resource.

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 output schema, the description provides useful context such as result counts (episodes, programs, people) and mentions the absolute URL, which helps set expectations. It also notes that descriptions contain summaries, which is important for search behavior. While it doesn't detail pagination or output structure, those are partially covered by the schema, making it sufficiently complete.

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 coverage is 100% with all parameters described in detail. The description adds some context about what the query searches (titles, descriptions, program, subheading) but does not materially exceed the schema's parameter descriptions. 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 uses a specific verb ('Search') and resource ('radio shows, episodes and people'), and clearly distinguishes this tool from generic dataset search siblings by naming the Catalan radio archive and its scope. It also identifies the specific search fields, making the purpose unambiguous.

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 implies this tool should be used for Catalan radio content queries by specifying the archive and content types, and the sibling tools are generic dataset searches. However, it does not explicitly state when not to use it or name alternatives, so it falls 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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    MCP server for investigating public transparency and detecting corruption patterns by cross-referencing open data from Catalan, Barcelona, and Spanish government sources, with 49 tools for contract, subsidy, salary, and lobbying analysis.
    49
    6
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides access to Catalonia's statistical data via the IDESCAT Tables API v2. It enables users to navigate catalogs, inspect metadata, and query data with territorial filters and resolved labels.
    5
    1
  • A
    license
    A
    quality
    C
    maintenance
    Enables querying and analyzing over 90,000 public datasets from the Spanish Government Open Data Portal (datos.gob.es) using natural language, with tools for search, filtering, metadata access, and SPARQL queries.
    10
    5
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.