Skip to main content
Glama
ajeetraina

Bangalore BMTC Mobility Connectivity Platform

by ajeetraina

벵갈루루 BMTC MCP 서버

방갈로르 도시 교통 공사(BMTC) 버스 서비스를 위한 몰 커넥터 프로그램(MCP) 서버 구현.

건축학

BMTC MCP 아키텍처

BMTC MCP 서버는 모듈식 계층 구조를 기반으로 문제를 분리하고 유지 관리 편의성을 높입니다. 이 시스템은 방갈로르 도시 교통 공사(Bangalore Metropolitan Transport Corporation) 버스의 실시간 교통 데이터를 처리하고 표준화된 API를 통해 제공하도록 설계되었습니다.

핵심 구성 요소

  1. API 계층 : 인증, 경로, 정류장, 버스 위치 및 ETA 정보를 위한 RESTful 엔드포인트

  2. 서비스 계층 : 비즈니스 로직, 데이터 변환 및 ETA 계산

  3. 데이터 액세스 계층 : Mongoose ODM을 통한 MongoDB 통합

  4. 캐싱 계층 : 성능 향상을 위한 Redis 기반 캐싱

  5. 외부 통합 계층 : BMTC API 통합

전체 아키텍처 문서를 읽어보세요

Related MCP server: Singapore LTA MCP Server

특징

  • 실시간 버스 위치 추적

  • 경로 정보 및 일정

  • 정류장 세부 정보 및 ETA(예상 도착 시간)

  • 벵갈루루에서 2,200개 이상의 버스 노선과 8,400개 이상의 버스 정류장 지원

  • 인증 및 권한 부여

  • 데이터 캐싱 및 최적화

  • 근처 정류장 및 버스에 대한 지리공간 쿼리

필수 조건

  • Node.js(v14 이상)

  • npm 또는 yarn

  • 몽고디비

  • Redis(캐싱용 선택 사항)

설치 및 설정

방법 1: 표준 설치

  1. 저장소를 복제합니다

지엑스피1

  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 : Node.js API 서버

  • 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

BMTC API 키

개발을 위해 실제 BMTC API 키 없이 모의 데이터를 사용할 수 있습니다.

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

생산의 경우, 공식 API 액세스를 요청하려면 BMTC에 직접 문의해야 합니다.

개발

테스트

테스트를 실행하세요:

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 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

감사의 말

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

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