opendata-cat
15 Catalan portals + radio archive: gov, INE/REE/CNMC, CORA, Catalònica, radioteca.cat.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"opendata-cat": {
"command": "npx",
"args": [
"@opendata.cat/mcp-server"
]
}
}
}実行可能なパッケージ
0.6.1stdioリモートエンドポイント
https://opendata.cat/api/mcpstreamable-httpできること
ツール一覧
ツール(8)
🟢search_datasets(query, portal, category, limit)
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.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search text in Catalan or Spanish. Examples: 'qualitat aire', 'pressupostos municipals', 'transport públic', 'residus', 'educació', 'rodalies'."
},
"portal": {
"type": "string",
"description": "Filter results to a single portal.",
"enum": [
"generalitat",
"barcelona",
"diba",
"aoc",
"reus",
"girona",
"fgc",
"idescat",
"renfe",
"ine",
"ree",
"sepe",
"cnmc",
"cora",
"catalonica"
]
},
"category": {
"type": "string",
"description": "Filter by thematic category. Examples: 'Medi Ambient', 'Educació', 'Salut', 'Economia', 'Transport', 'Seguretat'. Use list_categories to see all available categories."
},
"limit": {
"type": "number",
"description": "Maximum number of results to return. Min 1, max 100. Default 20.",
"default": 20
}
},
"required": [
"query"
]
}🟢get_dataset_info(dataset_id)
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.
入力スキーマ
{
"type": "object",
"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'."
}
},
"required": [
"dataset_id"
]
}🟢list_dataset_fields(dataset_id)
List fields of a dataset with name, data type and description. Call before query_dataset to know which fields and filters are available.
入力スキーマ
{
"type": "object",
"properties": {
"dataset_id": {
"type": "string",
"description": "Unique dataset identifier in 'portal:id' format. Obtained from search_datasets results."
}
},
"required": [
"dataset_id"
]
}🟢query_dataset(dataset_id, filters, search, limit, offset)
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).
入力スキーマ
{
"type": "object",
"properties": {
"dataset_id": {
"type": "string",
"description": "Unique dataset identifier in 'portal:id' format. Obtained from search_datasets results."
},
"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"
}
},
"search": {
"type": "string",
"description": "Free text search within dataset data. Works with Socrata ($q) and CKAN (q). For Diba and CIDO, use specific filters."
},
"limit": {
"type": "number",
"description": "Number of rows to return. Min 1, max 100. Default 20. Use offset for pagination.",
"default": 20
},
"offset": {
"type": "number",
"description": "Number of rows to skip for pagination. Default 0. Combine with limit to navigate large results.",
"default": 0
}
},
"required": [
"dataset_id"
]
}🟢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.
入力スキーマ
{
"type": "object",
"properties": {},
"required": []
}🟢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.
入力スキーマ
{
"type": "object",
"properties": {},
"required": []
}🟢related_datasets(dataset_id)
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.
入力スキーマ
{
"type": "object",
"properties": {
"dataset_id": {
"type": "string",
"description": "Dataset ID to find related datasets for. Obtained from search_datasets."
}
},
"required": [
"dataset_id"
]
}🟢search_radioteca(query, publisher, year, type, limit, ...)
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.
入力スキーマ
{
"type": "object",
"properties": {
"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'."
},
"publisher": {
"type": "string",
"description": "Filter by broadcaster.",
"enum": [
"Catalunya Ràdio",
"RAC1",
"Catalunya Música",
"iCat",
"Catalunya Informació",
"RTVE",
"Cadena SER",
"ara.cat"
]
},
"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."
},
"type": {
"type": "string",
"description": "Filter by document type.",
"enum": [
"Episode",
"Program",
"Person"
]
},
"limit": {
"type": "number",
"description": "Maximum results. Min 1, max 50. Default 10.",
"default": 10
},
"offset": {
"type": "number",
"description": "Pagination offset. Default 0.",
"default": 0
}
},
"required": [
"query"
]
}コミュニティ
エビデンス