mcp-catastro
MCP server for the Spanish Cadastre, enabling local queries of official INSPIRE parcel data (area, geometry, neighboring parcels, searches) and online queries to the OVC and electronic headquarters for additional details, with rate limiting and caching.
README
mcp-catastro
Servidor MCP para el Catastro español. Descarga el parcelario oficial INSPIRE de un municipio y responde en local (superficie, geometría, parcelas colindantes, búsqueda por paraje), y consulta el OVC y la sede electrónica cuando hace falta la red, con límites diarios que evitan que el Catastro te corte la IP.
Nació de un caso real: localizar las fincas de una herencia en Muxía (A Coruña). Por el camino aprendimos a base de errores qué vía usar para cada cosa, y este servidor encapsula esas decisiones para que nadie tenga que repetirlas.
Instalación
Con Claude Code (Node 22 o superior):
claude mcp add catastro -- npx -y mcp-catastro
Con Claude Desktop o cualquier cliente MCP, en claude_desktop_config.json:
{ "mcpServers": { "catastro": { "command": "npx", "args": ["-y", "mcp-catastro"] } } }
El servidor corre en tu máquina y consulta al Catastro con tu IP, así que la
cuota y los bloqueos son solo tuyos. La caché se crea en ~/.catastro-mcp/.
¿Cliente sin soporte de MCP local (claude.ai web, app móvil, ChatGPT)? Hay una instancia pública, sin registro:
https://catastro.mestria.es/mcp
Añádela como conector personalizado. Cuota anónima de 50 llamadas al día por IP, con Muxía precargada en la caché. Todos los usuarios de esa instancia comparten la IP de salida hacia el Catastro, así que para volumen serio instala el paquete o monta tu propia instancia (abajo).
Ejemplo de uso
Con el conector añadido, se le habla en lenguaje natural. Una conversación real (los datos son reales, verificados contra el Catastro el 11/08/2026):
Tú: Descarga el parcelario de Muxía (provincia 15, municipio 15053) y dime cuánto mide la parcela 1 del polígono 9 y quién linda con ella.
Claude/ChatGPT: He descargado el parcelario de Muxía: 43.188 parcelas. La parcela 1 del polígono 9 es la referencia catastral
15053A00900001y su superficie oficial es de 15.149 m² (1,5 hectáreas). Linda con dos parcelas:15053A00900002al noreste (1.497 m²) y15053A00909043al suroeste (4.262 m²).
Tú: ¿En qué paraje está y de qué clase es?
Claude/ChatGPT: Según la ficha de la sede electrónica, está en el paraje FONTE SALGUEIRA (Muxía, A Coruña). Es suelo rústico de uso agrario, y su referencia catastral completa es
15053A009000010000RY.
Tú: Mi abuela decía que la finca se llamaba "fonte salgeira" o algo así. ¿Hay parcelas con ese nombre?
Claude/ChatGPT: Sí. Buscando por similitud aparece FONTE SALGUEIRA con un 93 % de parecido: es la parcela
15053A00900001, de 15.149 m². Un nombre que no existe en el municipio no devuelve resultados, así que la coincidencia es fiable.
La búsqueda por paraje funciona sobre las fichas ya consultadas. Para un
municipio recién descargado, primero se rellenan con
catastro_completar_parajes (respeta el límite diario y se puede reanudar
otro día).
Herramientas
Sin red, contra la caché local:
| Herramienta | Qué hace |
|---|---|
catastro_descargar_municipio |
Baja el parcelario INSPIRE completo del municipio y construye la caché. Es la operación fundacional: el resto la da por hecha |
catastro_parcela_local |
Superficie oficial, centroide y geometría de una parcela |
catastro_vecinas |
Parcelas colindantes, con distancia y orientación cardinal |
catastro_en_radio |
Parcelas cuyo centroide cae dentro de un círculo |
catastro_buscar_paraje |
Búsqueda difusa por nombre de paraje |
Con red, una petición por llamada y siempre con el limitador puesto:
| Herramienta | Qué hace |
|---|---|
catastro_ficha |
Ficha de la sede electrónica: paraje, clase, uso, superficie gráfica y referencia de 20 caracteres |
catastro_por_poligono_parcela |
Resuelve la referencia catastral desde la numeración polígono/parcela |
catastro_por_coordenada |
Qué parcela hay en un punto |
De control:
| Herramienta | Qué hace |
|---|---|
catastro_estado |
Diagnóstico de acceso: distingue "el dato no existe" de "me han cortado" |
catastro_completar_parajes |
Recorre una lista de referencias rellenando parajes, reanudable |
Las tres vías del Catastro
El Catastro tiene tres formas de acceso que no se parecen en nada, y elegir mal es lo que arruina el trabajo.
| Vía | Host | Para qué | Límite |
|---|---|---|---|
| Descarga INSPIRE (GML) | www.catastro.hacienda.gob.es | Más de ~20 parcelas, geometría, superficie oficial | Ninguno |
| OVC (SOAP) | ovc.catastro.meh.es | Resolver referencias por polígono/parcela o coordenada | Sin límite documentado, pero con ~32.000 peticiones acumuladas cortan la IP |
| Sede electrónica (HTML) | www1.sedecatastro.gob.es | Paraje, clase, uso, referencia de 20 caracteres | Host distinto del OVC: sobrevive a su bloqueo |
Tres detalles de la sede que no están documentados en ningún sitio: acepta la referencia de 14 caracteres (sin dígitos de control, que es justo lo que da el GML), vive en otro host (el bloqueo del OVC no le afecta) y devuelve más campos que la consulta SOAP básica.
Decisiones de diseño
La caché no es una optimización, es el diseño. El servidor responde desde disco por defecto y sale a la red solo cuando el dato no está o se lo pides. De las preguntas típicas sobre una finca (¿cuánto mide?, ¿quién linda?, ¿qué hay cerca?), solo el nombre del paraje necesita red.
El limitador cuenta el total diario por host (techo de 1000 peticiones), no solo el ritmo. Un ritmo razonable con un acumulado grande también corta la IP: lo medimos a 3,2 peticiones por segundo. A 10 fallos consecutivos el servidor para solo.
Una ficha vacía o un 403 no se interpretan solos. Una referencia inventada
devuelve el mismo 403 que una IP cortada, así que catastro_estado consulta a
la vez una referencia que funcionó y una inventada: si las dos fallan igual, el
problema es tu acceso, no los datos.
La superficie sale siempre del areaValue del GML, que es la fuente oficial.
La superficie gráfica de la sede se guarda como dato informativo, pero no pisa
a la del GML.
Lo que no puede dar
El valor de referencia solo se consulta en la sede identificándose con certificado digital o Cl@ve, y la titularidad es dato protegido. Ninguna API pública los expone, y este servidor tampoco.
Montar tu propia instancia remota
En python/ hay una implementación equivalente en Python que además expone el
servidor por streamable HTTP, pensada para servir a varias personas:
cd python && uv sync
CATASTRO_MCP_PUBLIC_HOST=tu-dominio uv run python -m catastro_mcp.http
Cada persona recibe un token (python -m catastro_mcp.http crear-token nombre)
con cuota diaria propia de 2000 llamadas, y CATASTRO_MCP_ANONIMO=1 abre
además el acceso sin token con cuota de 50 al día por IP de cliente. El token
puede ir en la cabecera X-Auth-Token o en la ruta
(https://tu-dominio/t/<token>/mcp) para clientes que solo aceptan una URL.
El access log va apagado a propósito, porque el token viaja en la ruta.
Verificado en vivo
Todo lo de arriba está medido, no copiado de documentación (11/08/2026):
- Muxía (15053): 43.188 parcelas descargadas y cacheadas en 5 segundos.
- Polígono 9, parcela 1: referencia
15053A00900001, 15.149 m², paraje FONTE SALGUEIRA. - Prueba cruzada de fuentes: la superficie del GML y la superficie gráfica de la sede coinciden al metro.
- Control negativo de la búsqueda difusa: un paraje inventado devuelve cero resultados.
catastro_estadodiagnosticó un bloqueo real de IP en el OVC mientras la sede seguía operativa.
Licencia
MIT. No afiliado a la Dirección General del Catastro. Los datos catastrales son públicos y se sirven bajo las condiciones de la DGC.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。