redbus-mcp

redbus-mcp

Enables natural language queries for interprovincial bus schedules, cities, and seat maps in Peru via RedBus, without booking or payment.

Category
Visit Server

README

redbus-mcp

Servidor MCP (Model Context Protocol) para consultar pasajes de bus interprovinciales en Perú a través de redbus.pe. Permite que asistentes de IA compatibles con MCP (Cursor, VS Code, etc.) busquen buses en lenguaje natural: "buses de Lima a Arequipa el 20 de julio".

Alcance: solo consulta (lectura). No reserva ni realiza pagos.

Herramientas expuestas

Herramienta Qué hace
buscar_ciudades Busca ciudades/terminales por nombre y devuelve su ID (ej. Lima = 195105).
buscar_buses Lista buses de una ruta y fecha: empresa, tipo, horarios, duración, precios, asientos disponibles, calificación, embarque/descenso y amenidades. Acepta nombres o IDs de ciudad.
detalle_servicio Detalle de un servicio: mapa de asientos (número, tipo, precio, disponibilidad, piso) y puntos de embarque/descenso con horas y direcciones.

Requisitos

  • Node.js ≥ 18 (probado en Node 22).

Instalación

npm install
npm run build

Verificación

Prueba end-to-end contra la API real de RedBus (sin capa MCP):

npm run smoke            # usa una fecha 3 días en el futuro
npm run smoke 2026-08-05 # o una fecha concreta (ISO yyyy-MM-dd)

Inspección interactiva del servidor MCP:

npm run inspector        # abre el MCP Inspector

Uso en un cliente MCP

Registra el servidor en la configuración MCP de tu cliente (el formato mcpServers es común a la mayoría). Ejemplo:

{
  "mcpServers": {
    "redbus-peru": {
      "command": "node",
      "args": ["C:\\Users\\paranda\\Documents\\Proyectos-personales\\redbus-mcp\\build\\index.js"]
    }
  }
}

Reinicia el cliente y pregunta, por ejemplo: "¿Qué buses hay de Lima a Cusco el 2026-07-20? Ordénalos por precio."

En Cursor / VS Code la configuración es equivalente (mcp.json / settings del cliente), apuntando command/args al mismo build/index.js.

Fechas

  • Entrada del usuario: ISO yyyy-MM-dd (ej. 2026-07-20).
  • Internamente el cliente convierte al formato que exige cada endpoint de RedBus (dd-MMM-yyyy para la búsqueda, ISO para el layout de asientos).
  • La fecha debe ser hoy o futura; RedBus suele vender con pocas semanas de anticipación.

Cómo funciona (arquitectura)

RedBus expone una API interna en https://www.redbus.pe/rpw/api/. Un fetch plano es rechazado (protección anti-bot), por lo que src/redbusClient.ts:

  1. Envía headers realistas de Chrome (User-Agent, Referer, Accept-Language: es-PE, etc.).
  2. Hace warm-up: visita la home para obtener cookies y las reenvía en cada llamada.
  3. Reintenta con backoff y re-hace el warm-up si detecta bloqueo (403/429/reset).
  4. Aplica un rate-limit suave entre peticiones.

Toda la lógica anti-bot está aislada en redbusClient.ts: si RedBus endurece la protección, se puede migrar ese módulo a un navegador headless (Playwright) sin tocar las herramientas.

Estructura

src/
  index.ts            # arranque del servidor MCP (stdio) + registro de tools
  redbusClient.ts     # cliente HTTP: cookies, headers, warm-up, reintentos, endpoints
  types.ts            # tipos de las respuestas de RedBus
  tools/              # buscar_ciudades, buscar_buses, detalle_servicio
  lib/                # fechas, normalización de datos, catálogo de amenidades

Aviso

Este proyecto consume una API interna no pública de RedBus con fines personales y educativos. Respeta sus términos de servicio y evita un uso intensivo (ya incluye un rate-limit suave). No está afiliado a RedBus.

Licencia

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured