Server definition
- Hash
- sha256:db4f5d1e3eec1823e630fc5241b973fd454b87186bddde4e87617edf40563c11
- What it is
- What a remote MCP server returned when asked what it offers: 3 tools
The blob, as servednamed by its sha256
{
"instructions": "Servidor MCP que traduce el Catastro Inmobiliario de Espana (OVC) a JSON. Usa `consultar_inmueble_catastro` con una referencia catastral (14/18/20 caracteres), `consultar_inmueble_por_coordenadas` con latitud/longitud (p. ej. un punto de un mapa), o `consultar_inmueble_por_direccion` con provincia/municipio/via/numero (p. ej. el texto de un anuncio), para obtener clase, uso, superficie construida, anio y direccion de un inmueble. Las tres devuelven el mismo JSON normalizado.",
"tools": [
{
"description": "Devuelve datos catastrales no protegidos de un inmueble espanol a partir de su referencia catastral: clase (urbano/rustico), uso principal, superficie construida (m2), anio de construccion, direccion normalizada y desglose de construcciones (urbano) o cultivos (rustico). Traduce el servicio SOAP/XML de la Direccion General del Catastro (OVC) a JSON denso. Acepta referencias de 14/18/20 caracteres; si la de 14 (parcela) resuelve a varios inmuebles, devuelve la lista de candidatos para desambiguar.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"referenciaCatastral": {
"description": "Referencia catastral espanola de 14 (parcela), 18 o 20 (inmueble) caracteres alfanumericos. Ejemplo: 9872023VH5797S0001WX",
"maxLength": 20,
"minLength": 14,
"pattern": "^[0-9A-Za-z]{14}(?:[0-9A-Za-z]{4}(?:[0-9A-Za-z]{2})?)?$",
"type": "string"
}
},
"required": [
"referenciaCatastral"
],
"type": "object"
},
"name": "consultar_inmueble_catastro",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"candidates": {
"anyOf": [
{
"items": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Domicilio resumido del candidato",
"type": [
"string",
"null"
]
},
"builtAreaM2": {
"type": [
"number",
"null"
]
},
"reference": {
"$ref": "#/properties/property/anyOf/0/properties/reference"
},
"use": {
"type": [
"string",
"null"
]
}
},
"required": [
"reference",
"use",
"builtAreaM2",
"address"
],
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
]
},
"message": {
"type": [
"string",
"null"
]
},
"property": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"address": {
"additionalProperties": false,
"properties": {
"block": {
"description": "Bloque/escalera/planta/puerta si aplica",
"type": [
"string",
"null"
]
},
"full": {
"description": "Domicilio descriptivo completo (campo `ldt` de la OVC)",
"type": [
"string",
"null"
]
},
"municipality": {
"type": [
"string",
"null"
]
},
"place": {
"description": "Paraje (solo rustico)",
"type": [
"string",
"null"
]
},
"plot": {
"description": "Parcela dentro del poligono (solo rustico)",
"type": [
"string",
"null"
]
},
"polygon": {
"description": "Poligono (solo rustico)",
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"province": {
"type": [
"string",
"null"
]
},
"streetName": {
"type": [
"string",
"null"
]
},
"streetNumber": {
"type": [
"string",
"null"
]
},
"streetType": {
"description": "Tipo de via (CL, AV, PZ...)",
"type": [
"string",
"null"
]
}
},
"required": [
"full",
"province",
"municipality",
"postalCode",
"streetType",
"streetName",
"streetNumber",
"block",
"polygon",
"plot",
"place"
],
"type": "object"
},
"builtAreaM2": {
"description": "Superficie construida total en m2 (campo `sfc`). 0/null en rustico sin construccion",
"type": [
"number",
"null"
]
},
"class": {
"description": "Clase del inmueble: urbano (UR) o rustico (RU)",
"enum": [
"urban",
"rustic"
],
"type": "string"
},
"constructions": {
"description": "Desglose de construcciones (urbano)",
"items": {
"additionalProperties": false,
"properties": {
"areaM2": {
"description": "Superficie del local en m2 (campo `stl`)",
"type": [
"number",
"null"
]
},
"door": {
"type": [
"string",
"null"
]
},
"floor": {
"type": [
"string",
"null"
]
},
"use": {
"description": "Uso del local (VIVIENDA, ALMACEN, OTROS USOS...)",
"type": [
"string",
"null"
]
}
},
"required": [
"use",
"floor",
"door",
"areaM2"
],
"type": "object"
},
"type": "array"
},
"cultivations": {
"description": "Desglose de cultivos/subparcelas (rustico)",
"items": {
"additionalProperties": false,
"properties": {
"areaM2": {
"description": "Superficie de la subparcela en m2 (campo `ssp`)",
"type": [
"number",
"null"
]
},
"code": {
"description": "Codigo de clase de cultivo (campo `ccc`)",
"type": [
"string",
"null"
]
},
"description": {
"description": "Descripcion del cultivo (campo `dcc`)",
"type": [
"string",
"null"
]
},
"intensity": {
"description": "Intensidad productiva (campo `ip`)",
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"description",
"intensity",
"areaM2"
],
"type": "object"
},
"type": "array"
},
"participationPct": {
"description": "Coeficiente de participacion en % (campo `cpt`)",
"type": [
"number",
"null"
]
},
"reference": {
"additionalProperties": false,
"properties": {
"full": {
"description": "Referencia catastral completa (20 caracteres) si esta disponible",
"type": "string"
},
"parcel": {
"description": "14 primeros caracteres: identifican la parcela/finca",
"type": "string"
},
"parts": {
"additionalProperties": false,
"description": "Descomposicion tal cual la devuelve la OVC",
"properties": {
"car": {
"type": "string"
},
"cc1": {
"type": "string"
},
"cc2": {
"type": "string"
},
"pc1": {
"type": "string"
},
"pc2": {
"type": "string"
}
},
"type": "object"
}
},
"required": [
"full",
"parcel",
"parts"
],
"type": "object"
},
"use": {
"description": "Uso principal (campo `luso`): Residencial, Agrario, Industrial...",
"type": [
"string",
"null"
]
},
"yearBuilt": {
"description": "Anio de construccion (campo `ant`). null en rustico",
"type": [
"number",
"null"
]
}
},
"required": [
"reference",
"class",
"use",
"builtAreaM2",
"yearBuilt",
"participationPct",
"address",
"constructions",
"cultivations"
],
"type": "object"
},
{
"type": "null"
}
]
},
"source": {
"additionalProperties": false,
"properties": {
"cached": {
"description": "true si la respuesta se sirvio de cache (hit fresco o serve-stale), no de una llamada en vivo al OVC",
"type": "boolean"
},
"dataAsOf": {
"type": [
"string",
"null"
]
},
"provider": {
"type": "string"
},
"reference": {
"type": "string"
},
"retrievedAt": {
"type": "string"
},
"stale": {
"description": "true si el OVC no respondio y se sirvio un valor cacheado, posiblemente caducado (serve-stale-on-error, ADR-0010): el dato puede estar desactualizado",
"type": "boolean"
}
},
"required": [
"provider",
"reference",
"retrievedAt",
"dataAsOf",
"cached",
"stale"
],
"type": "object"
},
"status": {
"enum": [
"ok",
"multiple"
],
"type": "string"
}
},
"required": [
"status",
"property",
"candidates",
"message",
"source"
],
"type": "object"
}
},
{
"description": "Resuelve y devuelve los datos catastrales no protegidos de un inmueble espanol a partir de unas coordenadas geograficas (latitud/longitud). Util para resolver el inmueble desde un punto de un mapa cuando no se tiene la referencia catastral. SRS soportados: EPSG:4326 (WGS84, por defecto) y EPSG:4258 (ETRS89). Devuelve el MISMO JSON normalizado que la consulta por referencia catastral (clase urbano/rustico, uso, superficie construida, anio, direccion); si el punto cae en una parcela con varios inmuebles, devuelve la lista de candidatos. Cobertura: territorio comun (excluye Pais Vasco y Navarra).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"lat": {
"description": "Latitud en grados decimales (WGS84/ETRS89). Rango -90..90. Ej: 41.3915",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lon": {
"description": "Longitud en grados decimales (WGS84/ETRS89). Rango -180..180. Ej: 2.1620",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"srs": {
"description": "Codigo EPSG del sistema de referencia. Soportados: EPSG:4326 (WGS84, por defecto) y EPSG:4258 (ETRS89).",
"type": "string"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"name": "consultar_inmueble_por_coordenadas",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"candidates": {
"anyOf": [
{
"items": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Domicilio resumido del candidato",
"type": [
"string",
"null"
]
},
"builtAreaM2": {
"type": [
"number",
"null"
]
},
"reference": {
"$ref": "#/properties/property/anyOf/0/properties/reference"
},
"use": {
"type": [
"string",
"null"
]
}
},
"required": [
"reference",
"use",
"builtAreaM2",
"address"
],
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
]
},
"message": {
"type": [
"string",
"null"
]
},
"property": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"address": {
"additionalProperties": false,
"properties": {
"block": {
"description": "Bloque/escalera/planta/puerta si aplica",
"type": [
"string",
"null"
]
},
"full": {
"description": "Domicilio descriptivo completo (campo `ldt` de la OVC)",
"type": [
"string",
"null"
]
},
"municipality": {
"type": [
"string",
"null"
]
},
"place": {
"description": "Paraje (solo rustico)",
"type": [
"string",
"null"
]
},
"plot": {
"description": "Parcela dentro del poligono (solo rustico)",
"type": [
"string",
"null"
]
},
"polygon": {
"description": "Poligono (solo rustico)",
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"province": {
"type": [
"string",
"null"
]
},
"streetName": {
"type": [
"string",
"null"
]
},
"streetNumber": {
"type": [
"string",
"null"
]
},
"streetType": {
"description": "Tipo de via (CL, AV, PZ...)",
"type": [
"string",
"null"
]
}
},
"required": [
"full",
"province",
"municipality",
"postalCode",
"streetType",
"streetName",
"streetNumber",
"block",
"polygon",
"plot",
"place"
],
"type": "object"
},
"builtAreaM2": {
"description": "Superficie construida total en m2 (campo `sfc`). 0/null en rustico sin construccion",
"type": [
"number",
"null"
]
},
"class": {
"description": "Clase del inmueble: urbano (UR) o rustico (RU)",
"enum": [
"urban",
"rustic"
],
"type": "string"
},
"constructions": {
"description": "Desglose de construcciones (urbano)",
"items": {
"additionalProperties": false,
"properties": {
"areaM2": {
"description": "Superficie del local en m2 (campo `stl`)",
"type": [
"number",
"null"
]
},
"door": {
"type": [
"string",
"null"
]
},
"floor": {
"type": [
"string",
"null"
]
},
"use": {
"description": "Uso del local (VIVIENDA, ALMACEN, OTROS USOS...)",
"type": [
"string",
"null"
]
}
},
"required": [
"use",
"floor",
"door",
"areaM2"
],
"type": "object"
},
"type": "array"
},
"cultivations": {
"description": "Desglose de cultivos/subparcelas (rustico)",
"items": {
"additionalProperties": false,
"properties": {
"areaM2": {
"description": "Superficie de la subparcela en m2 (campo `ssp`)",
"type": [
"number",
"null"
]
},
"code": {
"description": "Codigo de clase de cultivo (campo `ccc`)",
"type": [
"string",
"null"
]
},
"description": {
"description": "Descripcion del cultivo (campo `dcc`)",
"type": [
"string",
"null"
]
},
"intensity": {
"description": "Intensidad productiva (campo `ip`)",
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"description",
"intensity",
"areaM2"
],
"type": "object"
},
"type": "array"
},
"participationPct": {
"description": "Coeficiente de participacion en % (campo `cpt`)",
"type": [
"number",
"null"
]
},
"reference": {
"additionalProperties": false,
"properties": {
"full": {
"description": "Referencia catastral completa (20 caracteres) si esta disponible",
"type": "string"
},
"parcel": {
"description": "14 primeros caracteres: identifican la parcela/finca",
"type": "string"
},
"parts": {
"additionalProperties": false,
"description": "Descomposicion tal cual la devuelve la OVC",
"properties": {
"car": {
"type": "string"
},
"cc1": {
"type": "string"
},
"cc2": {
"type": "string"
},
"pc1": {
"type": "string"
},
"pc2": {
"type": "string"
}
},
"type": "object"
}
},
"required": [
"full",
"parcel",
"parts"
],
"type": "object"
},
"use": {
"description": "Uso principal (campo `luso`): Residencial, Agrario, Industrial...",
"type": [
"string",
"null"
]
},
"yearBuilt": {
"description": "Anio de construccion (campo `ant`). null en rustico",
"type": [
"number",
"null"
]
}
},
"required": [
"reference",
"class",
"use",
"builtAreaM2",
"yearBuilt",
"participationPct",
"address",
"constructions",
"cultivations"
],
"type": "object"
},
{
"type": "null"
}
]
},
"source": {
"additionalProperties": false,
"properties": {
"cached": {
"description": "true si la respuesta se sirvio de cache (hit fresco o serve-stale), no de una llamada en vivo al OVC",
"type": "boolean"
},
"dataAsOf": {
"type": [
"string",
"null"
]
},
"provider": {
"type": "string"
},
"reference": {
"type": "string"
},
"retrievedAt": {
"type": "string"
},
"stale": {
"description": "true si el OVC no respondio y se sirvio un valor cacheado, posiblemente caducado (serve-stale-on-error, ADR-0010): el dato puede estar desactualizado",
"type": "boolean"
}
},
"required": [
"provider",
"reference",
"retrievedAt",
"dataAsOf",
"cached",
"stale"
],
"type": "object"
},
"status": {
"enum": [
"ok",
"multiple"
],
"type": "string"
}
},
"required": [
"status",
"property",
"candidates",
"message",
"source"
],
"type": "object"
}
},
{
"description": "Resuelve y devuelve los datos catastrales no protegidos de un inmueble urbano espanol a partir de su DIRECCION (provincia, municipio, via y numero). Util para resolver el inmueble desde el texto de un anuncio cuando no se tiene la referencia catastral. Provincia y municipio van por NOMBRE (no codigo); `streetType` es la sigla de la via (CL, AV, PZ...) y se recomienda para acertar. Devuelve el MISMO JSON normalizado que la consulta por referencia (clase urbano/rustico, uso, superficie construida, anio, direccion); si el numero corresponde a varios inmuebles (propiedad horizontal), devuelve la lista de candidatos para desambiguar (afina con bloque/escalera/planta/puerta). Solo direcciones urbanas; cobertura: territorio comun (excluye Pais Vasco y Navarra).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"block": {
"description": "Bloque, si aplica (propiedad horizontal). Opcional: afina a un inmueble concreto.",
"type": "string"
},
"door": {
"description": "Puerta, si aplica. Opcional: afina a un inmueble concreto.",
"type": "string"
},
"floor": {
"description": "Planta, si aplica. Opcional: afina a un inmueble concreto.",
"type": "string"
},
"municipality": {
"description": "Municipio por NOMBRE, p. ej. 'SANTA CRUZ DE MUDELA', 'MADRID'. Obligatorio.",
"minLength": 1,
"type": "string"
},
"province": {
"description": "Provincia por NOMBRE (no codigo), p. ej. 'CIUDAD REAL', 'MADRID'. Obligatorio. Territorio comun (excluye Pais Vasco y Navarra).",
"minLength": 1,
"type": "string"
},
"stairway": {
"description": "Escalera, si aplica. Opcional: afina a un inmueble concreto.",
"type": "string"
},
"streetName": {
"description": "Nombre de la via SIN la sigla, p. ej. 'GLORIA', 'ALCALA'. Obligatorio.",
"minLength": 1,
"type": "string"
},
"streetNumber": {
"description": "Numero de policia, p. ej. '51'. Obligatorio.",
"minLength": 1,
"type": "string"
},
"streetType": {
"description": "Tipo/sigla de via del Catastro: CL (calle), AV (avenida), PZ (plaza), CR (carretera), CM (camino)... Opcional pero recomendado para acertar la via.",
"type": "string"
}
},
"required": [
"province",
"municipality",
"streetName",
"streetNumber"
],
"type": "object"
},
"name": "consultar_inmueble_por_direccion",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"candidates": {
"anyOf": [
{
"items": {
"additionalProperties": false,
"properties": {
"address": {
"description": "Domicilio resumido del candidato",
"type": [
"string",
"null"
]
},
"builtAreaM2": {
"type": [
"number",
"null"
]
},
"reference": {
"$ref": "#/properties/property/anyOf/0/properties/reference"
},
"use": {
"type": [
"string",
"null"
]
}
},
"required": [
"reference",
"use",
"builtAreaM2",
"address"
],
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
]
},
"message": {
"type": [
"string",
"null"
]
},
"property": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"address": {
"additionalProperties": false,
"properties": {
"block": {
"description": "Bloque/escalera/planta/puerta si aplica",
"type": [
"string",
"null"
]
},
"full": {
"description": "Domicilio descriptivo completo (campo `ldt` de la OVC)",
"type": [
"string",
"null"
]
},
"municipality": {
"type": [
"string",
"null"
]
},
"place": {
"description": "Paraje (solo rustico)",
"type": [
"string",
"null"
]
},
"plot": {
"description": "Parcela dentro del poligono (solo rustico)",
"type": [
"string",
"null"
]
},
"polygon": {
"description": "Poligono (solo rustico)",
"type": [
"string",
"null"
]
},
"postalCode": {
"type": [
"string",
"null"
]
},
"province": {
"type": [
"string",
"null"
]
},
"streetName": {
"type": [
"string",
"null"
]
},
"streetNumber": {
"type": [
"string",
"null"
]
},
"streetType": {
"description": "Tipo de via (CL, AV, PZ...)",
"type": [
"string",
"null"
]
}
},
"required": [
"full",
"province",
"municipality",
"postalCode",
"streetType",
"streetName",
"streetNumber",
"block",
"polygon",
"plot",
"place"
],
"type": "object"
},
"builtAreaM2": {
"description": "Superficie construida total en m2 (campo `sfc`). 0/null en rustico sin construccion",
"type": [
"number",
"null"
]
},
"class": {
"description": "Clase del inmueble: urbano (UR) o rustico (RU)",
"enum": [
"urban",
"rustic"
],
"type": "string"
},
"constructions": {
"description": "Desglose de construcciones (urbano)",
"items": {
"additionalProperties": false,
"properties": {
"areaM2": {
"description": "Superficie del local en m2 (campo `stl`)",
"type": [
"number",
"null"
]
},
"door": {
"type": [
"string",
"null"
]
},
"floor": {
"type": [
"string",
"null"
]
},
"use": {
"description": "Uso del local (VIVIENDA, ALMACEN, OTROS USOS...)",
"type": [
"string",
"null"
]
}
},
"required": [
"use",
"floor",
"door",
"areaM2"
],
"type": "object"
},
"type": "array"
},
"cultivations": {
"description": "Desglose de cultivos/subparcelas (rustico)",
"items": {
"additionalProperties": false,
"properties": {
"areaM2": {
"description": "Superficie de la subparcela en m2 (campo `ssp`)",
"type": [
"number",
"null"
]
},
"code": {
"description": "Codigo de clase de cultivo (campo `ccc`)",
"type": [
"string",
"null"
]
},
"description": {
"description": "Descripcion del cultivo (campo `dcc`)",
"type": [
"string",
"null"
]
},
"intensity": {
"description": "Intensidad productiva (campo `ip`)",
"type": [
"string",
"null"
]
}
},
"required": [
"code",
"description",
"intensity",
"areaM2"
],
"type": "object"
},
"type": "array"
},
"participationPct": {
"description": "Coeficiente de participacion en % (campo `cpt`)",
"type": [
"number",
"null"
]
},
"reference": {
"additionalProperties": false,
"properties": {
"full": {
"description": "Referencia catastral completa (20 caracteres) si esta disponible",
"type": "string"
},
"parcel": {
"description": "14 primeros caracteres: identifican la parcela/finca",
"type": "string"
},
"parts": {
"additionalProperties": false,
"description": "Descomposicion tal cual la devuelve la OVC",
"properties": {
"car": {
"type": "string"
},
"cc1": {
"type": "string"
},
"cc2": {
"type": "string"
},
"pc1": {
"type": "string"
},
"pc2": {
"type": "string"
}
},
"type": "object"
}
},
"required": [
"full",
"parcel",
"parts"
],
"type": "object"
},
"use": {
"description": "Uso principal (campo `luso`): Residencial, Agrario, Industrial...",
"type": [
"string",
"null"
]
},
"yearBuilt": {
"description": "Anio de construccion (campo `ant`). null en rustico",
"type": [
"number",
"null"
]
}
},
"required": [
"reference",
"class",
"use",
"builtAreaM2",
"yearBuilt",
"participationPct",
"address",
"constructions",
"cultivations"
],
"type": "object"
},
{
"type": "null"
}
]
},
"source": {
"additionalProperties": false,
"properties": {
"cached": {
"description": "true si la respuesta se sirvio de cache (hit fresco o serve-stale), no de una llamada en vivo al OVC",
"type": "boolean"
},
"dataAsOf": {
"type": [
"string",
"null"
]
},
"provider": {
"type": "string"
},
"reference": {
"type": "string"
},
"retrievedAt": {
"type": "string"
},
"stale": {
"description": "true si el OVC no respondio y se sirvio un valor cacheado, posiblemente caducado (serve-stale-on-error, ADR-0010): el dato puede estar desactualizado",
"type": "boolean"
}
},
"required": [
"provider",
"reference",
"retrievedAt",
"dataAsOf",
"cached",
"stale"
],
"type": "object"
},
"status": {
"enum": [
"ok",
"multiple"
],
"type": "string"
}
},
"required": [
"status",
"property",
"candidates",
"message",
"source"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:db4f5d1e3eec1823e630fc5241b973fd454b87186bddde4e87617edf40563c11 | sha256sum