关于 Catálogo de fuentes públicas de España
西班牙公共数据目录,收录政府开放数据源的端点、返回格式、易错陷阱、代码示例与标识符对照。面向初创企业、开发者和 AI Agent,可通过 MCP 服务直接查询数据。
主要功能
- 01102 个已编目的西班牙公共数据源
- 02记录端点、必需请求头与编码问题
- 03标注静默错误的 alerts 字段
- 04提供市镇、企业、招投标等查询工具
- 05可选本地 Parquet 存储与同步脚本
适用场景
- 01监控政府招标与补贴公告
- 02按 NIF 生成企业风险概况
- 03按市镇汇总人口、就业与房价数据
MCP 相关
该项目是 MCP 服务,通过 buscar、ficha、perfil_municipio、coyuntura、empresa_nif 等工具,把西班牙公共数据源的查询结果提供给 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Administración fuentes públicas
可用于构建产品的西班牙公共数据:每个数据集的位置、调用方式、返回内容以及会导致数字变化的陷阱,均已通过真实调用验证;还提供已解决数据获取问题的代码。从 llms-min.txt 或 MCP 服务开始。
可用于构建产品的西班牙公共数据。每个数据源都说明其位置、请求方式、返回内容和可能出错之处,并通过真实调用进行验证,还提供已解决数据获取问题的代码。面向初创公司、开发者和 AI Agent。
从这里开始
- 使用 Agent(MCP):
uvx --from git+https://github.com/BquantFinance/Administracion-fuentes-publicas mcp-catalogo,,或在 Claude Code 中运行
/plugin marketplace add BquantFinance/Administracion-fuentes-publicas和/plugin install fuentes-publicas@fuentes-publicas。buscar用于查找数据源,ficha提供端点和注意事项,perfil_municipio、coyuntura、empresa_nif等工具则可获取数据(工具)。 - 使用代码:
pip install "fuentes-publicas-mcp @ git+https://github.com/BquantFinance/Administracion-fuentes-publicas"。提供已处理证书、编码和分页问题的客户端(scripts/clientes)、用于存储无法通过 API 查询的数据的本地 Parquet 仓库(指南),以及可运行的示例。 - 阅读文档:通过
llms-min.txt了解概况,并查看sources/中每个数据源的资料。
今天可以构建什么
每个产品都由可用组件构成;新鲜度、测量的规模、许可协议以及最棘手的问题见 indices/productos.yaml。销售前请查看:许可、引用和个人数据。
| 产品 | 适用对象 | 数据卡片 | 组件 |
|---|---|---|---|
| radar-licitaciones · 按 CPV、所在省份或采购机构接收新增招标通知 | 参与政府招标的中小企业和咨询公司 | placsp-datos-abiertos, dir3-directorio | 带有 ejemplos/radar/ 示例的 fuentes-radar(通过 GitHub Actions 每日发送通知:issue、RSS 和 JSON;包含 CPV、NUTS、金额和关键词);almacen.py sync --fuentes placsp,用于历史数据和搜索 |
| inteligencia-competidores · 查看某个行业或机构的合同中标者、中标金额以及参与竞标的报价数量 | 参与政府招标的企业、公共采购分析师、记者 | placsp-datos-abiertos | almacen.py(placsp_adjudicaciones 表和 adjudicaciones_ultimo 视图);ejemplos/adjudicaciones.py;almacen_sql 工具 |
| radar-ayudas · 查找符合企业画像(行业、地区、受益人类型)的新增补贴征集 | 中小企业、代理机构和公共融资咨询公司 | bdns-api, boe-api-sumario | 带有 ejemplos/radar/ 示例的 fuentes-radar(按关键词和级别查找新增征集,每日发送通知);scripts/clientes/bdns.py(分页获取征集和拨款,按登记日期新增记录) |
| kyb-proveedores · 根据 NIF 查看供应商或客户的风险档案(补贴、合同、商业行为、投标禁令) | 采购部门、信贷金融科技公司、合规部门 | bdns-api, placsp-datos-abiertos, borme-api-sumario, hacienda-registro-licitadores | empresa_nif 工具(按 NIF 或名称查询;名称查询时通过 BDNS 目录解析 NIF)和 ejemplos/empresa_nif.py;使用本地数据仓库还可添加已授予的合同和 BORME 商业行为 |
| leads-sociedades-nuevas · 按省份和经营范围查找新成立的公司,包含注册资本和地址 | B2B 供应商(咨询公司、银行、管理软件公司、保险公司) | borme-api-sumario | 带有 ejemplos/radar/ 示例的 fuentes-radar(按省份、经营范围和注册资本查找新成立公司,每日发送通知);almacen.py sync --fuentes borme,用于历史数据;使用公司名称通过 empresa_nif 查询 NIF |
| informe-ubicacion · 为房地产公司、零售企业和特许经营商提供地点报告(人口、收入、失业、住房、犯罪情况、学校、医疗和 1 公里内的充电设施) | 房地产公司、零售连锁和特许经营商、房地产科技公司 | ine-api-tempus, sepe-estadisticas, interior-criminalidad, mivau-precios-vivienda-alquiler, catastro-ovc, centros-docentes-ccaa, centros-sanitarios-ccaa, dgt-datex-trafico | perfil_municipio 工具,可输入市镇、地址或“lat,lon”(邮政编码、门户的地籍参考号,以及输入地址时的周边信息),并提供 ejemplos/mi_municipio.py;datos/municipios.csv 用于在不同代码之间转换 |
| comparador-carburantes · 为驾驶员和车队查询附近价格最低的加油站及各站油价走势 | 出行应用、车队管理人员、比价服务 | minetur-precios-carburantes | ejemplos/carburante_cerca.py;almacen.py sync --fuentes carburantes,用于获取各加油站的每日时间序列 |
| monitor-regulatorio · 按主题接收新增或修订法规的通知,并查询条款的现行文本 | 律师事务所、合规部门、法律科技公司 | boe-api-sumario, boe-api-legislacion-consolidada, boe-eli | 带有 ejemplos/radar/ 示例的 fuentes-radar(按栏目、部门和关键词查询 BOE,每日发送通知);scripts/clientes/boe.py(查询昨天更新的法规和条款现行版本) |
| panel-macro · 为金融科技公司、媒体和顾问提供经济形势面板(CPI、失业率、GDP、Euríbor、风险溢价) | 金融科技公司、媒体、金融顾问 | ine-api-tempus, bde-estadisticas | coyuntura 工具(consulta.coyuntura);Banco de España 的 90 个 ZIP 文件,支持条件下载完整时间序列 |
| precio-electricidad · 为节能应用、智能家居和车辆充电应用提供每 15 分钟的电价 | 能耗应用、智能家居、充电站 | omie-mercado | omie-mercado 数据卡片(按日提供 marginalpdbc 文件和年度 ZIP) |
| buscador-medicamentos · 查询药品、剂型、说明书和供应问题 | 药房、健康科技公司、患者应用 | aemps-cima-api | aemps-cima-api 数据卡片(无需密钥的 REST JSON API) |
| agritech-parcelas · 根据坐标查询农业地块信息(用途、面积、Natura 2000、硝酸盐脆弱区) | 农业科技公司、合作社、农业保险公司 | mapa-sigpac, catastro-ovc | perfil_municipio 可输入“lat,lon”(地块、用途、面积、地块地籍参考号、市镇 INE 代码);scripts/clientes/ogc.py(通过 next 获取 bbox 范围内的地块) |
| viviendas-turisticas · 按市镇、街区或街道查看旅游住房地图和普查数据,并对照许可证与平台上的广告 | 房地产科技公司、市镇政府、居民协会、租赁管理人员、酒店经营者 | viviendas-uso-turistico, ine-api-tempus, cnig-centro-descargas | perfil_municipio(viviendas_turisticas 模块:覆盖全西班牙的 INE 数据,以及加泰罗尼亚、马德里和巴伦西亚自治区的登记数据);Socrata 和 CKAN 提供带有地址和地籍参考号的清单;使用 ubicar 按地籍参考号交叉查询 |
| eficiencia-energetica-edificios · 查询建筑能效标签和市镇能效等级分布,适用于建筑翻新、绿色住房贷款和房地产科技 | 建筑翻新公司和能源服务公司(ESE)、银行(绿色融资)、房地产科技公司、物业管理人员 | certificados-eficiencia-energetica, cnig-centro-descargas, catastro-ovc | perfil_municipio 可输入地址(certificados_energeticos 模块:查询加泰罗尼亚和巴伦西亚自治区地块上每处房产的最新能效证书);使用 Socrata 的 $group 查询加泰罗尼亚各市镇的能效等级分布;马德里和安达卢西亚提供 CSV 和 7z 文件 |
官方文档没有说明的内容
一些经过真实调用验证的示例:
- 即使有数千行,如果不传入
pageSize,BDNS 导出也只会返回 50 行,而且不会发出提示。同步数据时,授予日期也派不上用场:2025 年 1 月 15 日授予的款项直到 2026 年 8 月仍在陆续登记(正确的筛选字段fechaRegInicio并未记录在文档中)。 - 筛选市镇时,INE 要的不是市镇代码(
02001),而是内部 Id(6124)。在 SIGPAC 和 Catastro 中,马德里是28:900,不是28079,另有 4,448 个市镇的编号也有所不同(对应表)。 - 最近一个月的 CPI 是初步数据,之后会修订;发布的 GDP 数据也经过了修正:2026 年第二季度的环比数据为 0.68%,而未经修正的序列为 4.79%。
- 在 SEPE 登记失业人数的 CSV 中,Oza-Cesuras 显示失业人数为 0,Cerdedo-Cotobade 则没有出现:它们的数据仍使用合并前的代码。
- 许多
.gob.es服务会发送缺少中间证书的 FNMT 证书:浏览器可以访问,但curl和requests会失败(解决办法)。 - PC-Axis 门户的 CSV 实际编码为 UTF-8,尽管标头声明为 ISO-8859-15;SEPE 的 CSV 实际编码为 Windows-1252,尽管声明为 UTF-8。
- 在 GBIF 中,伊比利亚圣栎主要是 Quercus rotundifolia(西班牙有 130 万条记录);搜索名称时返回的是 Quercus ilex,查询它会得到 21,322 条记录,却没有任何提示。其西班牙境内 9,580 万条记录中,有 4,160 万条采用 CC BY-NC 协议。
已编录来源:102 个。当前范围:中央政府,以及自 2026 年 10 月起纳入的四个人口最多的自治区(马德里、加泰罗尼亚、安达卢西亚和瓦伦西亚自治区),以及马德里和巴塞罗那市政府。后续将纳入其余自治区和地方机构、议会与司法机构、欧盟。
原则
- 每个来源一张资料卡,采用 YAML 格式,固定字段根据架构进行验证。不写充数的文字:每一行都能省去一次搜索。
- 单一事实来源。 只编辑
sources/**/*.yaml。索引、catalog.json和llms*.txt均由此生成。 - 官方文档没有说明的内容。
gotchas字段记录那些会让人浪费数小时的细节:必需的标头、特殊编码、未记录的限制、会变化的 URL。那些不会报错、却会悄无声息地返回不完整或不同数值的陷阱,则单独放在alerts中;MCP 服务会优先返回这些内容。 - 明确验证。
verified记录端点最后一次实际测试的日期,或为null。每周任务会检查 URL 是否仍有响应。 - 自上而下。 按行业优先覆盖使用率和影响最大的来源,直到全部覆盖。
行业
| 行业 | 描述 | 来源 |
|---|---|---|
| 立法-公报 | 法律法规和官方公报 | 6 |
| 经济-金融 | 经济、金融和市场 | 5 |
| 财政-预算 | 财政、税务和预算 | 6 |
| 统计 | 官方统计 | 7 |
| 公共采购-补助 | 公共采购和补助 | 3 |
| 就业-社会保障 | 就业和社会保障 | 3 |
| 开放政府-行政管理 | 开放政府、透明度和行政组织 | 12 |
| 地域-制图 | 地域、地籍和制图 | 5 |
| 气象-气候 | 气象和气候 | 2 |
| 环境-水-生物多样性 | 环境、水和生物多样性 | 5 |
| 能源 | 能源 | 5 |
| 卫生-药品 | 卫生和药品 | 6 |
| 科学-研究 | 科学与研究(生物学、化学、地质学、海洋学) | 7 |
| 农业-渔业-食品 | 农业、渔业和食品 | 4 |
| 交通-出行 | 交通和出行 | 7 |
| 贸易-工业-知识产权 | 对外贸易、工业和工业产权 | 4 |
| 教育-大学 | 教育和大学 | 3 |
| 司法-内政-安全 | 司法、内政和安全 | 1 |
| 文化-遗产 | 文化和遗产 | 2 |
| 人口-移民-社会 | 人口、移民和社会 | 4 |
| 住房-城市规划 | 住房和城市规划 | 3 |
| 电信-数字化 | 电信和数字社会 | 1 |
exterior-cooperacion | 对外行动和合作 | 0 |
| 消费-食品安全 | 消费和食品安全 | 1 |
defensa | 国防 | 0 |
结构
sources/<sector>/<id>.yaml fichas (fuente de verdad)
sources/<sector>/README.md índice del sector (generado)
schema/source.schema.json esquema de ficha
schema/vocab.yaml vocabulario controlado: sectores, acceso, auth, formatos
catalog.json todo el catálogo (generado)
llms-min.txt, llms.txt, llms-full.txt entrada para agentes, de menos a más (generado)
indices/*.yaml productos, recetas por intención, necesidades, identificadores, códigos que son parámetros, rutas muertas (fuente de verdad)
indices/README.md los seis índices en texto (generado)
ejemplos/ proyectos pequeños que funcionan (carburante, BOE, licitaciones, municipio, subvenciones)
plugins/, .claude-plugin/ plugin de Claude Code con la skill y el servidor MCP
datos/municipios.csv los 8.132 municipios con su código INE, Id del INE Tempus, SIGPAC y Catastro, DIR3, NIF, NUTS3 y coordenadas (scripts/municipios.py)
scripts/ validate.py, build.py, check_links.py, check_recetas.py, check_ejemplos.py, fnmt_bundle.py, mcp_catalogo.py (servidor MCP local)
scripts/clientes/ sesión HTTP, clientes CKAN, Socrata, PC-Axis, ArcGIS y OGC, cargadores (BOE y BORME, BDNS, AEMET, INE, PLACSP, DataComex, Saiku) y almacén local en Parquet
scripts/clientes/muestras/ respuestas reales recortadas para probar los parsers sin red (python scripts/test_clientes.py)
evals/ 24 tareas con respuesta esperada para medir lo que aporta el repo a un agente
templates/source.yaml plantilla de ficha
guides/ guías transversales (cliente HTTP, identificadores, servidor MCP, reutilización y datos personales, almacén)
快速使用
# Todo el catálogo
curl -s https://raw.githubusercontent.com/BquantFinance/Administracion-fuentes-publicas/main/catalog.json
# Fuentes de un sector con API REST y sin autenticación
curl -s .../catalog.json | jq '.sources[] | select(.sector=="economia-finanzas" and (.access|index("api-rest")) and .auth=="none") | .id'
# pip install "fuentes-publicas-mcp @ git+https://github.com/BquantFinance/Administracion-fuentes-publicas"
from fuentes_publicas.clientes import ckan, socrata, pcaxis, arcgis, ogc
from fuentes_publicas.clientes.sesion import sesion # requests.Session con FNMT, User-Agent, reintentos y bloqueos
pcaxis.tabla(24077)[:3] # IPC del INE en CSV: UTF-8 real, coma decimal y periodo sin dato como None
list(socrata.filas("gn9e-3qhr")) # 87.930 filas de la Generalitat, no las 1.000 que da Socrata sin $limit
list(ckan.filas("cnmc", rid)) # todas las filas del datastore aunque el portal recorte limit a 32.000
ckan.comparar("comunidad-madrid", rec) # el datastore del padrón tiene 5.000 filas; el CSV, 18.718
Agent 索引
除了条目,indices/ 还回答了选择数据源前会遇到的问题:
- 产品:现在可以构建什么、面向谁,以及需要哪些组件。
- 按意图分类的方案:已验证的操作流程,可串联多个条目(从 NIF 到补贴和合同,从坐标到地籍参考编号,从 BOE 摘要到合并文本)。每个方案都包含检查项,
python scripts/check_recetas.py会针对真实服务执行这些检查。 - 各项内容的位置:常见需求、可解决该需求的条目,以及避免常见误区的说明。
- 标识符:用于关联数据集的代码,包含正则表达式、示例、颁发方以及经过验证的转换途径。
- 作为参数的代码:API 要求提供、无法靠猜测得出的值(用于
tv的 INE Id、DataComex 的国家/地区、按首府查询的 AEMET 站点、燃油产品、BOE 范围),这些值均通过真实调用获取。 - 失效路径:已不再适用的旧文档 URL 及其替代项。
测得的结果(evals/):在由同一个 Agent 使用和不使用目录完成的 10 项任务中(使用两种模型),正确率相同;使用目录时,在困难任务中,HTTP 调用次数和 Agent 的步骤减少了一半,失败次数几乎降至零。在包含隐蔽陷阱的任务中,使用一个小型模型(Haiku,重复 3 次,逐轮测量 token),正确次数从不使用目录时的 21 次中 3 次提升到使用 MCP 服务时的 21 次中 13 次,token 减少了 43%;启用警报后,仍能绕过的陷阱从 18 次中 5 次降至 18 次中 0 次。
所有内容都在 indices/README.md 中;如需以编程方式使用,可通过 catalog.json 中的 indices 键访问。每个条目的主要 endpoint 都带有 example(可复制的调用)和 returns(该调用中实际观察到的响应结构)。python scripts/mcp_catalogo.py 可在本地通过 MCP 提供目录,以便按需加载内容(指南)。
贡献
请阅读 CONTRIBUTING.md。概要:复制 templates/source.yaml,填写内容,运行 python scripts/validate.py && python scripts/build.py,然后提交 PR。
许可证
目录和文档:采用 CC0 1.0 许可。条目所指向的数据各自采用独立的许可证,并在 license 字段中注明。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。