Bangalore BMTC Mobility Connectivity Platform

Integrations

  • Manages environment configuration for the BMTC MCP server deployment.

  • Provides version control for the BMTC MCP server codebase.

  • Hosts the repository for the BMTC MCP server code and documentation.

Servidor MCP BMTC de Bengaluru

Una implementación de un servidor del Programa de Conector de Centro Comercial (MCP) para los servicios de autobús de la Corporación de Transporte Metropolitano de Bangalore (BMTC).

Arquitectura

El servidor MCP de BMTC sigue una arquitectura modular en capas que separa las tareas y facilita el mantenimiento. El sistema está diseñado para gestionar datos de tránsito en tiempo real de los autobuses de la Corporación de Transporte Metropolitano de Bangalore (BMTC) y proporcionarlos mediante una API estandarizada.

Componentes principales

  1. Capa API : puntos finales RESTful para autenticación, rutas, paradas, ubicaciones de autobuses e información de ETA
  2. Capa de servicio : lógica empresarial, transformación de datos y cálculos de ETA
  3. Capa de acceso a datos : integración de MongoDB a través de Mongoose ODM
  4. Capa de almacenamiento en caché : almacenamiento en caché basado en Redis para un rendimiento mejorado
  5. Capa de integración externa : Integración de API BMTC

Lea la documentación completa de la arquitectura

Características

  • Seguimiento de la ubicación del autobús en tiempo real
  • Información de rutas y programación
  • Detalles de la parada y ETA (hora estimada de llegada)
  • Soporte para más de 2200 rutas de autobús y más de 8400 paradas de autobús en Bengaluru
  • Autenticación y autorización
  • Almacenamiento en caché y optimización de datos
  • Consultas geoespaciales para paradas y autobuses cercanos

Prerrequisitos

  • Node.js (v14 o posterior)
  • npm o hilo
  • MongoDB
  • Redis (opcional, para almacenamiento en caché)
  • Git

Instalación y configuración

Método 1: Instalación estándar

  1. Clonar el repositorio
git clone https://github.com/ajeetraina/bengaluru-bmtc-mcp.git cd bengaluru-bmtc-mcp
  1. Instalar dependencias
npm install
  1. Configurar variables de entorno
cp .env.example .env

Edite el archivo .env con su configuración:

PORT=3000 NODE_ENV=development MONGO_URI=mongodb://localhost:27017/bmtc-mcp REDIS_URI=redis://localhost:6379 API_KEY=your_api_key_here JWT_SECRET=your_jwt_secret_here JWT_EXPIRES_IN=86400 BMTC_API_ENDPOINT=https://bmtc-api-endpoint.example BMTC_API_KEY=your_bmtc_api_key_here CACHE_DURATION=300 LOG_LEVEL=info
  1. Sembrar la base de datos con datos simulados (opcional)
node src/scripts/seed.js
  1. Iniciar el servidor
npm start

Para desarrollo con reinicio automático:

npm run dev

Método 2: Usar Docker Compose

  1. Clonar el repositorio
git clone https://github.com/ajeetraina/bengaluru-bmtc-mcp.git cd bengaluru-bmtc-mcp
  1. Configurar variables de entorno (opcional)

Puede modificar las variables de entorno directamente en el archivo docker-compose.yml o crear un archivo .env :

cp .env.example .env
  1. Construir e iniciar los contenedores
docker-compose up -d

Esto iniciará tres contenedores:

  • bmtc-mcp-api : El servidor API de Node.js
  • bmtc-mcp-mongo : base de datos MongoDB
  • bmtc-mcp-redis : servidor de caché de Redis
  1. Sembrar la base de datos con datos simulados (opcional)
docker-compose exec api node src/scripts/seed.js
  1. Ver registros
docker-compose logs -f api
  1. Detener los contenedores
docker-compose down

Para eliminar volúmenes también:

docker-compose down -v

Usando la API

Una vez que el servidor esté en funcionamiento, puedes acceder a la API en:

http://localhost:3000/api/v1

Para obtener la documentación de la API, visite:

http://localhost:3000/api-docs

Puntos finales de API de ejemplo

# Authentication POST /api/v1/auth/login GET /api/v1/auth/me # Routes GET /api/v1/routes GET /api/v1/routes/:routeId GET /api/v1/routes/search?source=Kempegowda&destination=Electronic # Stops GET /api/v1/stops GET /api/v1/stops/:stopId GET /api/v1/stops/near?lat=12.9767&lng=77.5713&radius=500 GET /api/v1/stops/search?query=Lalbagh # Bus Locations GET /api/v1/bus-locations GET /api/v1/bus-locations/:busId GET /api/v1/bus-locations/near?lat=12.9767&lng=77.5713&radius=1000 # ETA GET /api/v1/eta/:stopId GET /api/v1/eta/:stopId/:routeId

Claves API

Secreto de JWT

El secreto JWT se utiliza para firmar tokens de autenticación. Genere una cadena aleatoria segura:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Añade esto a tu archivo .env :

JWT_SECRET=your_generated_secret_here

Clave API de BMTC

Para el desarrollo, puede utilizar datos simulados sin una clave API BMTC real:

BMTC_API_ENDPOINT=https://bmtc-api-endpoint.example BMTC_API_KEY=your_bmtc_api_key_here

Para la producción, deberá comunicarse directamente con BMTC para solicitar acceso oficial a la API.

Desarrollo

Pruebas

Ejecutar las pruebas:

npm test

Ejecutar pruebas con cobertura:

npm run test:coverage

Pelusa

Comprobar el estilo del código:

npm run lint

Corregir problemas de estilo de código:

npm run lint:fix

Estructura del proyecto

bengaluru-bmtc-mcp/ ├── .env.example # Environment variables template ├── .eslintrc.json # ESLint configuration ├── .github/ # GitHub configuration │ └── workflows/ # GitHub Actions workflows ├── .gitignore # Git ignore file ├── CONTRIBUTING.md # Contribution guidelines ├── Dockerfile # Docker configuration ├── LICENSE # MIT License ├── README.md # Project documentation ├── docker-compose.yml # Docker Compose configuration ├── docs/ # Documentation │ ├── api.md # API documentation │ └── setup.md # Setup guide ├── jest.config.js # Jest configuration ├── package.json # Project dependencies └── src/ # Source code ├── config/ # Configuration files ├── controllers/ # Request handlers ├── index.js # Application entry point ├── middlewares/ # Express middlewares ├── models/ # MongoDB models ├── public/ # Static files ├── routes/ # API routes ├── scripts/ # Utility scripts ├── services/ # External service integrations ├── tests/ # Test files └── utils/ # Utility functions

Contribuyendo

Lea CONTRIBUTING.md para obtener detalles sobre nuestro código de conducta y el proceso para enviar solicitudes de extracción.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Expresiones de gratitud

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Proporciona acceso en tiempo real a la información del transporte público de Bangalore, incluido el seguimiento de autobuses, horarios, rutas y actualizaciones del servicio para mejorar la experiencia de los pasajeros.

  1. Arquitectura
    1. Componentes principales
  2. Características
    1. Prerrequisitos
      1. Instalación y configuración
        1. Método 1: Instalación estándar
        2. Método 2: Usar Docker Compose
      2. Usando la API
        1. Puntos finales de API de ejemplo
      3. Claves API
        1. Secreto de JWT
        2. Clave API de BMTC
      4. Desarrollo
        1. Pruebas
        2. Pelusa
        3. Estructura del proyecto
      5. Contribuyendo
        1. Licencia
          1. Expresiones de gratitud

            Related MCP Servers

            • A
              security
              F
              license
              A
              quality
              Enables Large Language Models to access real-time data on Vilnius public transport stops and routes through the Model Context Protocol.
              Last updated -
              2
              1
              Python
            • A
              security
              F
              license
              A
              quality
              Facilitates real-time access to Singapore's Land Transport Authority (LTA) transportation data, offering insights into bus arrivals, train services, traffic conditions, and more through integration with the LTA DataMall API.
              Last updated -
              7
              JavaScript
            • -
              security
              A
              license
              -
              quality
              This server enables large language models to access and interact with real-time transport alerts from Transport for NSW's network, supporting filtering by transport mode and returning formatted alert information about disruptions and planned works.
              Last updated -
              11
              5
              JavaScript
              MIT License
              • Apple
            • -
              security
              F
              license
              -
              quality
              A Model Context Protocol server that provides real-time access to Hong Kong's KMB and Long Win Bus route information and arrival times, enabling Language Models to answer user questions about bus routes, stops, and ETAs.
              Last updated -
              3
              Python
              • Linux
              • Apple

            View all related MCP servers

            ID: 2l0m5ujizz