Skip to main content
Glama
ajeetraina

Bangalore BMTC Mobility Connectivity Platform

by ajeetraina

Сервер MCP BMTC в Бангалоре

Реализация сервера Model Context Protocol (MCP) для автобусных служб Bangalore Metropolitan Transport Corporation (BMTC).

Архитектура

Сервер BMTC MCP следует модульной, многоуровневой архитектуре. Система разработана для обработки транзитных данных в реальном времени от автобусов Bangalore Metropolitan Transport Corporation и предоставления их через стандартизированный API.

Основные компоненты

  1. Уровень API : конечные точки RESTful для аутентификации, маршрутов, остановок, местоположений автобусов и информации об ожидаемом времени прибытия

  2. Уровень обслуживания : бизнес-логика, преобразование данных и расчеты расчетного времени прибытия

  3. Уровень доступа к данным : интеграция MongoDB через Mongoose ODM

  4. Уровень кэширования : кэширование на основе Redis для повышения производительности

  5. Внешний уровень интеграции : интеграция API BMTC

Прочитайте полную документацию по архитектуре

Related MCP server: poa-bus-mcp

Функции

Вот список того, что вы можете найти с помощью MCP Client или окна чата:

  • Отслеживание местонахождения автобуса в режиме реального времени

  • Информация о маршруте и расписание

  • Информация об остановках и расчетное время прибытия

  • Поддержка более 2200 автобусных маршрутов и более 8400 автобусных остановок в Бангалоре

  • Аутентификация и авторизация

  • Кэширование и оптимизация данных

  • Геопространственные запросы на ближайшие остановки и автобусы

Предпосылки

  • Node.js (v14 или более поздняя версия)

  • npm или пряжа

  • MongoDB

  • Redis (опционально, для кэширования)

  • Гит

Установка и настройка

Метод 1: Стандартная установка

  1. Клонировать репозиторий

git clone https://github.com/ajeetraina/bengaluru-bmtc-mcp.git
cd bengaluru-bmtc-mcp
  1. Установить зависимости

npm install
  1. Настройте переменные среды

cp .env.example .env

Отредактируйте файл .env в соответствии со своей конфигурацией:

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. Заполнить базу данных фиктивными данными (необязательно)

node src/scripts/seed.js
  1. Запустить сервер

npm start

Для разработки с автоматическим перезапуском:

npm run dev

Метод 2: Использование Docker Compose

  1. Клонировать репозиторий

git clone https://github.com/ajeetraina/bengaluru-bmtc-mcp.git
cd bengaluru-bmtc-mcp
  1. Настройте переменные среды (необязательно)

Вы можете изменить переменные среды непосредственно в файле docker-compose.yml или создать файл .env :

cp .env.example .env
  1. Постройте и запустите контейнеры

docker-compose up -d

Это запустит три контейнера:

  • bmtc-mcp-api : сервер API Node.js

  • bmtc-mcp-mongo : База данных MongoDB

  • bmtc-mcp-redis : сервер кэширования Redis

  1. Заполнить базу данных фиктивными данными (необязательно)

docker-compose exec api node src/scripts/seed.js
  1. Посмотреть журналы

docker-compose logs -f api
  1. Остановите контейнеры.

docker-compose down

Чтобы удалить также и тома:

docker-compose down -v

Использование API

После запуска сервера вы сможете получить доступ к API по адресу:

http://localhost:3000/api/v1

Документацию по API можно найти на сайте:

http://localhost:3000/api-docs

Примеры конечных точек API

# 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

API-ключи

JWT-секрет

Секрет JWT используется для подписи токенов аутентификации. Сгенерируйте безопасную случайную строку:

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

Добавьте это в ваш файл .env :

JWT_SECRET=your_generated_secret_here

API-ключ BMTC

Для разработки вы можете использовать фиктивные данные без фактического ключа API BMTC:

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

Для производства вам необходимо связаться с BMTC напрямую, чтобы запросить официальный доступ к API.

Разработка

Тестирование

Запустите тесты:

npm test

Запустите тесты с покрытием:

npm run test:coverage

Линтинг

Проверьте стиль кода:

npm run lint

Исправление проблем со стилем кода:

npm run lint:fix

Структура проекта

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

Внося вклад

Подробную информацию о нашем кодексе поведения и процессе подачи запросов на включение изменений см. на сайте CONTRIBUTING.md.

Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .

Благодарности

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.

  • Lviv public transport MCP: stops, timetables, routes, and live vehicle positions. No API key.

  • MBTA MCP — Boston real-time transit via the MBTA v3 API (api-v3.mbta.com)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ajeetraina/bengaluru-bmtc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server