MCP-Server

opendata-cat

io.github.xaviviro/opendata-cat
Daten & Analytik Suche & Recherche Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Searches and queries Catalan open-data portals and a large Catalan radio archive, including dataset metadata and related datasets.

get_dataset_info
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['dataset_id'], 'properties': {'dataset_id': {'type': 'string', 'description': "Unique dataset identifier in 'portal:id' format. Obtained from search_datasets results. Examples: 'generalitat:gn9e-3qhr', 'barcelona:qualitat-de-laire', 'renfe:vehicle-positions-gtfsrt'."}}}
list_categories
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
list_dataset_fields
List fields of a dataset with name, data type and description. Call before query_dataset to know which fields and filters are available.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['dataset_id'], 'properties': {'dataset_id': {'type': 'string', 'description': "Unique dataset identifier in 'portal:id' format. Obtained from search_datasets results."}}}
list_portals
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
query_dataset
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).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['dataset_id'], 'properties': {'limit': {'type': 'number', 'default': 20, 'description': 'Number of rows to return. Min 1, max 100. Default 20. Use offset for pagination.'}, 'offset': {'type': 'number', 'default': 0, 'description': 'Number of rows to skip for pagination. Default 0. Combine with limit to navigate large results.'}, 'search': {'type': 'string', 'description': 'Free text search within dataset data. Works with Socrata ($q) and CKAN (q). For Diba and CIDO, use specific filters.'}, 'filters': {'type': 'object', 'description': 'Key-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.', 'additionalProperties': {'type': 'string'}}, 'dataset_id': {'type': 'string', 'description': "Unique dataset identifier in 'portal:id' format. Obtained from search_datasets results."}}}
related_datasets
Find related datasets from OTHER portals. Great for discovering complementary data: if you're looking at air quality from Generalitat, it may suggest traffic data from Barcelona or emissions from AOC. Relations are computed by thematic similarity across portals.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['dataset_id'], 'properties': {'dataset_id': {'type': 'string', 'description': 'Dataset ID to find related datasets for. Obtained from search_datasets.'}}}
search_datasets
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'default': 20, 'description': 'Maximum number of results to return. Min 1, max 100. Default 20.'}, 'query': {'type': 'string', 'description': "Search text in Catalan or Spanish. Examples: 'qualitat aire', 'pressupostos municipals', 'transport públic', 'residus', 'educació', 'rodalies'."}, 'portal': {'enum': ['generalitat', 'barcelona', 'diba', 'aoc', 'reus', 'girona', 'fgc', 'idescat', 'renfe', 'ine', 'ree', 'sepe', 'cnmc', 'cora', 'catalonica'], 'type': 'string', 'description': 'Filter results to a single portal.'}, 'category': {'type': 'string', 'description': "Filter by thematic category. Examples: 'Medi Ambient', 'Educació', 'Salut', 'Economia', 'Transport', 'Seguretat'. Use list_categories to see all available categories."}}}
search_radioteca
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'type': {'enum': ['Episode', 'Program', 'Person'], 'type': 'string', 'description': 'Filter by document type.'}, 'year': {'type': 'string', 'description': "Filter 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."}, 'limit': {'type': 'number', 'default': 10, 'description': 'Maximum results. Min 1, max 50. Default 10.'}, 'query': {'type': 'string', 'description': "Free text in Catalan or Spanish. Searches title, description (contains episode summary), program and subheading. Examples: 'visita papa', 'eleccions municipals', 'crisi habitatge', 'Albert Serra cinema'."}, 'offset': {'type': 'number', 'default': 0, 'description': 'Pagination offset. Default 0.'}, 'publisher': {'enum': ['Catalunya Ràdio', 'RAC1', 'Catalunya Música', 'iCat', 'Catalunya Informació', 'RTVE', 'Cadena SER', 'ara.cat'], 'type': 'string', 'description': 'Filter by broadcaster.'}}}
Hinzugefügt
search_radioteca
17. September 2026 12:53
Hinzugefügt
related_datasets
17. September 2026 12:53
Hinzugefügt
list_categories
17. September 2026 12:53
Hinzugefügt
list_portals
17. September 2026 12:53
Hinzugefügt
query_dataset
17. September 2026 12:53
Hinzugefügt
list_dataset_fields
17. September 2026 12:53
Hinzugefügt
get_dataset_info
17. September 2026 12:53
Hinzugefügt
search_datasets
17. September 2026 12:53