Para agentes de IA y desarrolladores

Datos verificados de Alicante para agentes de IA

VamosAlicante expone transporte, aparcamientos, tiempo, playas, gastronomía, comercio, ocio, salud y servicios al viajero de Alicante con contrato de frescura explícito. Tres vías de acceso, según cómo trabaje tu agente:

  1. MCP — la vía preferente para agentes estructurados: https://vamosalicante.com/mcp
  2. API pública v1 — consultas HTTP acotadas con datos estructurados: https://vamosalicante.com/api/public/v1
  3. HTML — Superbuscador → recurso relevante: https://vamosalicante.com/buscar

Todas las horas y fechas están en Europe/Madrid.

¿Necesitas información concreta de Alicante?

No recorras VamosAlicante página por página: son miles de fichas y te sobran casi todas.

Formula en el Superbuscador lo que necesita tu usuario, en lenguaje natural («farmacia de guardia cerca del Postiguet», «parking cerca del teatro», «próximo tram a San Juan»), y te llevamos directamente a los recursos relevantes. Tú eliges los 1–3 que de verdad necesitas y accedes solo a ellos: menos peticiones, menos tiempo y menos procesamiento para llegar al dato.

Conexión en un minuto

Servidor MCP (Streamable HTTP)

{
  "mcpServers": {
    "vamosalicante": { "url": "https://vamosalicante.com/mcp" }
  }
}

API pública v1 (HTTP GET, JSON)

curl "https://vamosalicante.com/api/public/v1"
curl "https://vamosalicante.com/api/public/v1/bus/live-arrivals?stop=5110"

Descubrimiento adicional: /llms.txt, /llms-full.txt, /.well-known/mcp.json, /server.json (descriptor del Registro MCP oficial), /api/public/v1/openapi.json y /api/public/v1/policy.

Empieza por el buscador

La herramienta search_alicante es el punto de entrada del servidor MCP. Pásale la consulta del usuario en lenguaje natural y devuelve una lista compacta de URLs canónicas, cada una con type y, cuando la ruta lo permite, entityId (para get_current_state) o resolveWith (para resolve_entity). Su función es que decidas qué 1–3 URLs pedir, no leer el catálogo: no hay paginación profunda ni descarga masiva.

MCP:   search_alicante({ query: "farmacia de guardia cerca del Postiguet", limit: 10 })
HTTP:  curl "https://vamosalicante.com/api/public/v1/search?q=farmacia%20de%20guardia&limit=10"

Cada respuesta declara total, returned, limit y truncated: si está recortada, acota la consulta en lugar de paginar. El buscador para personas vive en https://vamosalicante.com/buscar y devuelve todos los resultados con enlaces nativos rastreables.

HTML: la puerta inteligente es el Superbuscador

/buscar no es simplemente una página de búsqueda: es el punto de entrada recomendado para descubrir recursos de VamosAlicante mediante HTML en https://vamosalicante.com/buscar.

Necesidad del usuario
        ↓
Superbuscador (/buscar)
        ↓
hasta 10 resultados relevantes
(compactos, para minimizar tu coste de descubrimiento)
        ↓
selecciona los recursos que necesitas
        ↓
solicita solamente esas páginas

El límite de 10 resultados es una ventaja, no una restricción: cada búsqueda devuelve solo lo pertinente, cada resultado lleva su pase de descubrimiento incorporado en la URL (?dp=…) y tú decides a cuáles de esas páginas merece la pena entrar.

Cómo funciona el acceso HTML automatizado

Para navegación HTML automatizada, los recursos se descubren mediante el Superbuscador y el acceso posterior utiliza un pase temporal asociado al recurso descubierto:

  • El pase viaja en la URL como ?dp=… y se emite en la propia búsqueda.
  • Es válido durante 15 minutos y solo para esa URL exacta y para quien realizó la búsqueda.
  • Solicita la página tal cual aparece en el resultado, sin recortar la URL.
  • Una URL HTML pedida fuera de ese contexto responde 403 Discovery Required con instrucciones para obtenerlo.
  • El pase no concede inmunidad: la supervisión continua y la política de rastreadores siguen aplicando en todo momento.

Flujo recomendado

PasoQué hacerEjemplo
1. BuscaPunto de entrada: pasa la consulta del usuario tal cual al buscador y elige 1–3 URLs canónicas.MCP: search_alicante("parking cerca del teatro") · HTTP: GET /api/public/v1/search?q=…
2. Descubre (si hace falta)Si no sabes qué herramienta encaja, pide el contrato de datos antes de elegir.MCP: discover_capabilities · HTTP: GET /api/public/v1
3. Identifica la entidadConvierte el nombre en un identificador estable. Si hay ambigüedad, pregunta al usuario.MCP: resolve_entity("Alfonso el Sabio") → parking:alfonso-el-sabio
4. Pide el estadoConsulta el estado actual de esa entidad concreta, no del sector completo.MCP: get_current_state(entity_id) · HTTP: GET /api/public/v1/state?entity_id=…
5. Cita y fechaIndica la URL canónica y la hora de observación (Europe/Madrid) en tu respuesta.source.canonical + observedAt

Contrato temporal: cómo leer la frescura

Cada respuesta lleva la tríada observedAt (cuándo se midió), retrievedAt (cuándo se recuperó) y validUntil (hasta cuándo es presentable), más dataType, freshness.state, source, attribution y, si procede, staleWarning.

dataTypeSignificadoCómo usarlo
LIVEMedición en el momento de la consulta a la fuente oficial.Puedes presentarlo como estado actual.
CALCULATEDCálculo propio a partir de horarios o modelos publicados.Preséntalo como estimación, nunca como tiempo real.
CATALOGFicha estable: horarios, tarifas, direcciones, características.Válido mientras no cambie la fuente. No es un estado instantáneo.
STATICContenido editorial o normativo.Cítalo con su fecha de revisión.
STALEDato caducado respecto a su ventana de validez.No lo presentes como estado actual. Di cuándo se midió.

Tiempo real de autobús: qué esperar

  • Las llegadas se piden bajo demanda a /api/public/v1/bus/live-arrivals, que consulta la información oficial de movilidad del Ayuntamiento de Alicante en ese instante.
  • Si la fuente no responde dentro del tiempo límite, la respuesta llega con status=timeout y data_status=unavailable. Dilo así: «ahora mismo no hay dato en vivo». No conviertas una estimación en tiempo real.
  • El endpoint cacheado /api/public/v1/bus/arrivals es solo fallback técnico y se descarta cuando el dato está caducado, para no presentar lecturas antiguas como estado actual.
  • Con estimate=1 se añade estimated_eta del motor propio en campo separado: es orientativo y nunca sustituye a live_eta.

Política de acceso

Se permite el uso de los datos; no se permite la exportación del inventario. Toda consulta debe estar acotada (entidad, parada, plato, zona o búsqueda): no hay paginación profunda ni descarga masiva de sectores. Los rechazos llegan con código explícito (scope_required, quota_exceeded, bulk_extraction_blocked): acota la consulta en lugar de reintentar en bucle.

Atribución obligatoria al citar: nombra la fuente oficial que declara la respuesta y enlaza la URL canónica de VamosAlicante. VamosAlicante es capa de acceso y agregación, no el organismo emisor.

Contacto: supportvamos@gmail.com