MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Servidor MCP que ofrece herramientas para interactuar con los servicios web de la Sede Electrónica del Catastro

Created 1/29/2026
Updated 4 days ago
Repository documentation and setup instructions

catastro-mcp-server

Descripción general

Servidor MCP (Model Context Protocol) en Python que expone herramientas para consultar servicios oficiales del Catastro de España y obtener información catastral no protegida de forma estructurada.

El servidor integra dos familias de servicios:

  • OVC / Servicios WCF en JSON (Catastro): consultas de callejero, referencia catastral y conversión entre RC ↔ coordenadas.
  • INSPIRE WFS Cadastral Parcels (CP): consulta de parcelas y descarga de geometría en GML, además de utilidades de diagnóstico (GetCapabilities / DescribeFeatureType).

Está pensado para integrarse con clientes compatibles con MCP (p. ej. Claude Desktop) y para facilitar la automatización de flujos BIM / GIS / AECO (enriquecimiento de modelos, auditorías, obtención de geometría, análisis territorial, etc.), manteniendo una arquitectura modular y fácil de desplegar (por ejemplo con uv/uvx).

Nota: este proyecto no está afiliado a la Dirección General del Catastro. Solo consume endpoints públicos y devuelve los resultados de forma normalizada.

Componentes

Herramientas

El servidor ofrece las siguientes herramientas:

  • obtener_provincias
    • Lista provincias disponibles en los servicios del Catastro.
  • obtener_municipios
    • Lista municipios de una provincia (puedes filtrar por nombre parcial)
    • Input:
      • provincia (str): nombre de provincia (según obtener_provincias)
      • municipio_filtro (str): texto parcial. OPCIONAL
  • obtener_vias
    • Lista las vías / calles de un municipio (podemos filtrar por nombre parcial).
    • Input:
      • provincia (str): nombre de provincia (según obtener_provincias)
      • municipio (str): nombre de municipio (según obtener_municipios)
      • tipo_via (str): tipo de vía (idealmente código: CL, AV, PZ, etc. Anexo II). OPCIONAL
      • via_filtro (str): texto parcial opcional (nombre de vía / calle a buscar). OPCIONAL
  • obtener_numeros
    • Consulta número de una vía (devuelve RC del número si existe o aproximación).
    • Input:
      • provincia (str): nombre de provincia (según obtener_provincias)
      • municipio (str): nombre de municipio (según obtener_municipios)
      • tipo_via (str): tipo de vía (idealmente código: CL, AV, PZ, etc. Anexo II)
      • via (str): nombre de vía (según obtener_vias)
      • numero (str): número de la vía (puede ser parcial)
  • dcnp_por_direccion
    • Consulta los datos catastrales no protegidos de un inmueble por su localización.
    • Input:
      • provincia (str): nombre de provincia (según obtener_provincias)
      • municipio (str): nombre de municipio (según obtener_municipios)
      • sigla (str): tipo de vía (idealmente código: CL, AV, PZ, etc. Anexo II).
      • calle (str): nombre de vía (según obtener_vias)
      • numero (str): número de la vía (según obtener_numeros)
      • bloque (str): número del bloque. OPCIONAL
      • escalera (str): identificador de la escalera. OPCIONAL
      • planta (str): identificador de la planta. OPCIONAL
      • puerta (str): identificador de la puerta. OPCIONAL
  • dcnp_por_rc
    • Consulta los datos catastrales no protegidos de un inmueble por su Referencia Catastral.
    • Input:
      • refcat (str): Referencia Catastral. Puede tener 14, 18 o 20 posiciones. En caso de que sean 14 posiciones (lo que se corresponde con la referencia de una finca), se devuelve una lista de todos los inmuebles de esa finca (es decir cuyos 14 primeros caracteres de la RC coinciden con el parámetro).
      • provincia (str): nombre de provincia. OPCIONAL
      • municipio (str): nombre de municipio. OPCIONAL
  • dcnp_por_poligono_parcela
    • Consulta los datos catastrales no protegidos de un inmueble por su polígono y parcela.
    • Input:
      • provincia (str): nombre de provincia.
      • municipio (str): nombre de municipio.
      • poligono (str): polígono catastral.
      • parcela (str): parcela catastral.
  • rc_a_coordenadas
    • Convierte una Referencia Catastral a coordenadas.
    • Input:
      • refcat (str): Referencia Catastral (14/18/20 según caso)
      • srs (str): sistema de referencia (p.ej. EPSG:4326)
      • provincia (str): nombre de provincia. OPCIONAL
      • municipio (str): nombre de municipio. OPCIONAL
  • coordenadas_a_rc
    • Devuelve la(s) referencia(s) catastral(es) asociadas a unas coordenadas.
    • Input:
      • x (float): CoorX (si EPSG:4326 suele ser longitud)
      • y (float): CoorY (si EPSG:4326 suele ser latitud)
      • srs (str): sistema de referencia (p.ej. EPSG:4326)
  • distancia_coordenadas_a_rc
    • Devuelve la(s) referencia(s) catastral(es) por proximidad a unas coordenadas. A partir de unas coordenadas (X e Y) y su sistema de referencia se obtiene la lista de referencias catastrales próximas a un punto así como el domicilio (municipio, calle y número o polígono, parcela y municipio), y la distancia a dicho punto.
    • Input:
      • x (float): CoorX (si EPSG:4326 suele ser longitud)
      • y (float): CoorY (si EPSG:4326 suele ser latitud)
      • srs (str): sistema de referencia (p.ej. EPSG:4326)

  • wfs_cp_get_capabilities
    • Obtiene el documento GetCapabilities del WFS INSPIRE de Parcelas del Catastro.
    • Input:
      • version (str): versión WFS (por defecto 2.0.0)
  • wfs_cp_list_feature_types
    • Lista los FeatureTypes disponibles en el WFS INSPIRE de Parcelas del Catastro, extrayendo name/title y CRS soportados desde GetCapabilities.
    • Input:
        • version (str): versión WFS (por defecto 2.0.0)
  • wfs_cp_describe_feature_type_resolved
    • Obtiene el XSD de DescribeFeatureType y resuelve includes/imports (schemaLocation) para poder extraer los campos reales del esquema INSPIRE (p.ej. inspireId, localId, etc.).
    • Input:
      • type_name (str): FeatureType exacto (ej. cp:CadastralParcel)
      • version (str): versión WFS (por defecto 2.0.0)
      • max_includes (int): máximo de includes/imports a descargar (para evitar bucles)
  • parcela_gml_por_rc
    • Obtiene el GML de UNA parcela por RC usando StoredQuery GetParcel (WFS CP Catastro).
    • Input:
      • refcat (str): RC (14/18/20). Se usa la base de 14.
      • srs (str): CRS de salida. Recomendado "EPSG::25830" o "EPSG::4326".

Uso con Claude Desktop

Añade este bloque a tu claude_desktop_config.json:

{
  "mcpServers": {
    "Catastro": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/carlosGalisteo/catastro-mcp-server.git@main",
        "catastro-mcp-server"
      ]
    }
  }
}

Test con MCP Inspector

Ejecuta en la consola desde la raíz del repositorio:

fastmcp dev src/mcpserver/mcp_catastro.py

Licencia

Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que puedes usar, modificar y redistribuir el software, siempre que se cumplan los términos de dicha licencia. Para más detalles, consulta el archivo LICENSE incluido en el repositorio.

Copyright (c) 2026 Carlos Galisteo

Links

Quick Setup
Installation guide for this server

Install Package (if required)

uvx catastro-mcp-server

Cursor configuration (mcp.json)

{ "mcpServers": { "carlosgalisteo-catastro-mcp-server": { "command": "uvx", "args": [ "catastro-mcp-server" ] } } }