Callejear Madrid
Read-only MCP for Madrid’s 9,400 official streets: search, coverage, street context and comparisons with partial service counts within 500 m.
Server MCP Terhosting
npx add-mcp 'https://callejear.com/api/mcp'Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
Consulta las calles desde tu asistente.
Busca registros de calles y compara los servicios observados a 500 metros de su punto de referencia, con sus fuentes y limitaciones.
Servicio público de lectura. La cobertura está limitada al conjunto que devuelve callejear_get_coverage.
Conexión
Transporte: Streamable HTTP. El endpoint de protocolo es distinto de esta página de documentación.
https://callejear.com/api/mcp
Cliente comprobado: @modelcontextprotocol/client 2.3.1. Protocolo: 2025-11-25. Versión desplegada: 0.2.0.
Comprobación externa: 2026-10-14T11:21:45.041Z. Esto acredita la conexión del SDK; no la compatibilidad con un asistente concreto.
Ejemplo para Node 22.22.x: instala el cliente fijado, guarda el código en consulta.mjs y ejecuta node consulta.mjs.
npm install --save-exact @modelcontextprotocol/[email protected]
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';
const client = new Client({ name: 'callejear-example', version: '1.0.0' });
try {
await client.connect(new StreamableHTTPClientTransport(
new URL('https://callejear.com/api/mcp')
));
console.log(await client.callTool({
name: 'callejear_get_coverage', arguments: {}
}));
} finally {
await client.close();
}
El piloto está diseñado para consultas públicas sin autenticación. No realiza acciones sobre inmuebles ni campañas, ni solicita credenciales de otros servicios.
Read-only MCP service for Madrid. The coverage tool reports the catalogue extent and source date. Nearby-service counts describe partial observations around representative points, not whole streets or housing recommendations.
Un municipio, cobertura explícita
9400 registros admitidos
500 m radio único
Madrid España · INE 28079
Catálogo completo de los 9400 códigos de vía de la fuente municipal, actualizada el 2026-10-13T06:39:42+00:00. 9151 tienen punto de referencia validado y 249 siguen disponibles para búsqueda con ubicación y métricas en null. 4 códigos conservan nombres contradictorios en origen, señalados como official_name_conflict. La cobertura corresponde al municipio de Madrid y a esta fecha; el inventario de servicios sigue siendo parcial.
- Registros de farmacia — recuento de registros.
- Registros de colegio — recuento de registros.
- Registros de supermercado — recuento de registros.
- Registros de biblioteca — recuento de registros.
Sin datos de seguridad, calidad educativa, frecuencia de transporte, precios inmobiliarios ni clasificación de mejores calles para vivir.
Configuración de clientes
Ejemplos de configuración; la comprobación del SDK indicada arriba no certifica todos estos clientes. La disponibilidad depende de la versión, el plan y los permisos del cliente.
Claude Code
claude mcp add --transport http callejear https://callejear.com/api/mcp
Cursor
En .cursor/mcp.json, según su guía oficial:
{"mcpServers":{"callejear":{"url":"https://callejear.com/api/mcp"}}}
VS Code
En .vscode/mcp.json, según su guía oficial:
{"servers":{"callejear":{"type":"http","url":"https://callejear.com/api/mcp"}}}
Claude web y Desktop · ChatGPT
Cuando tu cuenta permita conectores MCP remotos, utiliza https://callejear.com/api/mcp como URL. Consulta los pasos y disponibilidad en las guías de Claude y ChatGPT. El piloto ofrece datos públicos sin credenciales; no se ha verificado aquí cada interfaz.
Cuatro herramientas de lectura
callejear_get_coverage
Descubre qué registros, dimensiones y radios puedes consultar.
city_id opcional. Otro municipio devuelve out_of_coverage.
callejear_search_streets
Busca por nombre y devuelve IDs estables; punto y enlace quedan en null cuando no están verificados.
city_id, query de 2–120 caracteres, limit de 1–20 y cursor opcional.
callejear_get_street_context
Consulta los registros de servicios observados alrededor del punto.
street_id, radius_m opcional (500) y dimensions opcional.
callejear_compare_streets
Compara métricas equivalentes conservando ausencia de datos y parcialidad.
street_ids: entre 2 y 5 IDs distintos; dimensions y radius_m opcionales.
No se admiten filtros de métricas en esta versión. La búsqueda exige texto, no admite un inventario vacío y devuelve como máximo 20 resultados. Las dimensiones o radios desconocidos se rechazan; nunca se ignoran.
Claves de dimensión: pharmacy_records (farmacias), school_records (colegios), supermarket_records (supermercados) y library_records (bibliotecas). Son recuentos de registros observados.
La búsqueda prioriza nombres exactos ignorando el tipo de vía y el artículo inicial. Los cursores caducan a los 15 minutos y pertenecen a una búsqueda, tamaño de página, orden y versión de datos concretos. Si cambia el orden entre versiones, comienza una búsqueda nueva.
Calles de control: Alcalá, Atocha, Serrano, Goya, Fuencarral, Gran Vía y Paseo del Prado. Los identificadores oficiales es:28079:via:… permiten consultar todas las vías del catálogo; los anteriores legacy:calle:… siguen funcionando. Las respuestas usan esquema 2.0: point, canonical_url y reference_geometry pueden ser null. No se inventan fichas web para las vías incorporadas. Las variantes de nombre figuran en name_variants.
Ejemplos con registros del conjunto
1. Descubrir cobertura
callejear_get_coverage
{"city_id":"28079"}
2. Buscar una calle
callejear_search_streets
{"city_id":"28079","query":"Alcalá","limit":5}
3. Consultar su entorno
callejear_get_street_context
{"street_id":"legacy:calle:109907","radius_m":500,"dimensions":["pharmacy_records","school_records"]}
4. Comparar dos registros
callejear_compare_streets
{"street_ids":["legacy:calle:109907","legacy:calle:110074"],"radius_m":500}
Registros utilizados: Calle de Alcalá y Calle de Atocha. Son ubicaciones de referencia concretas; la comparación no elige una vivienda ni un ganador.
Qué significan los valores
- El entorno corresponde al punto representativo del registro, no a toda la calle.
- Distancias en línea recta; no son recorridos ni minutos caminando.
- Inventario local parcial de Madrid. En los bordes municipales pueden faltar servicios del municipio vecino.
- Se cuentan registros, no establecimientos únicos. No se conservó el tipo OSM y pueden existir representaciones duplicadas.
- La fecha individual del inventario de servicios se desconoce; no se ha verificado su actividad actual.
- Cero significa cero registros observados; no demuestra ausencia real de servicios.
- La cobertura completa se refiere a códigos del callejero oficial en una fecha concreta, no a servicios completos ni a toda la Comunidad de Madrid.
- Los registros sin punto validado siguen siendo consultables; su punto, enlace web no verificado y métricas quedan en null.
- Los códigos con varias denominaciones oficiales conservan todas las variantes y no se les asignan métricas.
- Los puntos nuevos proceden de la superficie municipal; los anteriores mantienen su segmento OSM. Comparar puntos no equivale a comparar vías enteras.
partial indica que el inventario puede ser incompleto. null indica dato no disponible; no se sustituye por cero. Dos valores solo se comparan si comparten definición, radio, unidad y método.
La fecha de cálculo del paquete es 2026-10-14T09:48:48.771270+00:00. No es la fecha de actualización de los servicios. Cada fuente conserva por separado las fechas conocidas; las desconocidas permanecen vacías.
Versión de datos
madrid-a5802f9ce7bc1947f9b1069ba61d5cf240cb9bde6a6d235ae51d6a47187856f7
Límites de uso
| Control | Valor |
|---|---|
| Comparación | Entre 2 y 5 registros distintos, de 1 a 4 dimensiones |
| Cuota por origen | 30 llamadas a herramientas por minuto y 100 al día UTC |
| Presupuesto conjunto | 1.000 llamadas diarias, ventana UTC |
| Tiempo de consulta | Hasta 5 segundos |
| Respuesta | Hasta 32 KiB serializados |
Los límites se aplican también cuando se usa caché. Alcanzar la cuota global puede dejar temporalmente sin servicio a todos los clientes. El piloto puede desactivarse sin retirar las fichas públicas.
Las cuotas de herramientas se reservan tras validar el nombre y los argumentos; incluyen los aciertos de caché y las consultas válidas que terminan en error. Las peticiones inválidas, discovery y salud tienen un límite HTTP independiente de 60/minuto por origen y 300/minuto globales. Las ventanas por minuto son fijas. Compartir IP o red IPv6 /64 implica compartir cuota. La búsqueda valida siempre los cursores y no usa caché.
Una cuota de herramienta agotada devuelve quota_exceeded dentro de la respuesta MCP (HTTP 200). RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset describen su ventana por minuto; X-Callejear-Daily-Remaining indica el presupuesto diario disponible y X-Callejear-Retry-After los segundos de espera cuando se rechaza. El límite HTTP devuelve 429 con Retry-After. No se deben interpretar solo los códigos HTTP para saber si una herramienta tuvo éxito.
La comparación de 5 registros y 4 dimensiones conserva todos los datos en structuredContent. Cuando duplicar el JSON excede el límite, content[0].text ofrece un resumen legible con atribución y limitaciones. Los clientes deben leer los datos completos desde structuredContent; no asumir que todo texto es JSON. Si un resultado futuro supera el límite incluso así, response_too_large orienta a reducir resultados o dimensiones.
El piloto no ofrece mensajes de servidor por SSE: un GET con Accept: text/event-stream recibe 405 inmediatamente. Las consultas se envían por POST.
Las llamadas MCP se miden separadas de las visitas web. No se registran prompts completos, consultas libres ni tokens en la analítica del piloto.
Fuentes y reutilización
OpenStreetMap
© OpenStreetMap contributors
Fuente y condiciones · ODbL-1.0
Inventario local parcial de Madrid. En los bordes municipales pueden faltar servicios del municipio vecino. Se cuentan registros, no establecimientos únicos. No se conservó el tipo OSM y pueden existir representaciones duplicadas. La fecha individual del inventario de servicios se desconoce; no se ha verificado su actividad actual.
Actualización conocida: no conservada.
OpenStreetMap street geometry
© OpenStreetMap contributors
Fuente y condiciones · ODbL-1.0
Geometría del elemento de origen, no de toda la vía.
Actualización conocida: 2026-10-03T11:41:01Z.
Ayuntamiento de Madrid — Callejero oficial
Ayuntamiento de Madrid; cruce y selección realizados por Callejear, sin respaldo institucional.
Fuente y condiciones · CC-BY-4.0
Catálogo completo de códigos del CSV municipal vigente en la fecha indicada; las denominaciones contradictorias se señalan expresamente.
Actualización conocida: 2026-10-13T06:39:42+00:00.
Ayuntamiento de Madrid — superficies viarias
Ayuntamiento de Madrid; cruce y selección realizados por Callejear, sin respaldo institucional.
Fuente y condiciones · CC-BY-4.0
Geometría descargada el 2026-10-03T11:33:20.175321+00:00. Fecha de edición desconocida. Punto interior de la mayor superficie dentro del municipio; no es un centro de toda la vía.
Actualización conocida: no conservada.
Selección, cruce y recuentos elaborados por Callejear. El Ayuntamiento de Madrid y OpenStreetMap no patrocinan ni certifican este servicio.
El extracto derivado de OSM se ofrece bajo ODbL 1.0. Los datos municipales conservan atribución y CC BY 4.0.
Responsable y contacto
Yoel Castaño Peón, Callejear. Para informar de un error, incluye el ID del registro y la versión de datos: [email protected].