Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,544Letters: 14Defects: 1,324counted just now
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:db4f5d1e3eec1823e630fc5241b973fd454b87186bddde4e87617edf40563c11 | sha256sum