DB 시간표 MCP 서버
Deutsche Bahn 시간표 API를 위한 MCP(모델 컨텍스트 프로토콜) 서버입니다. 이 서버는 MCP 도구와 리소스를 제공하여 시간표 데이터, 역 정보 및 열차 변경 사항에 액세스할 수 있도록 합니다.
이름을 밝힐 의무:
이 프로젝트는 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스(CC BY 4.0) 에 따라 공개적으로 이용 가능한 도이체반 시간표 데이터를 제공합니다.
API 및 라이선스 조건에 대한 자세한 내용은 developers.deutschebahn.com 에서 확인할 수 있습니다. API 요청은 라이센스 조건을 따릅니다.
기능
현재 시간표 : 역의 현재 시간표 데이터를 검색합니다.
시간표 변경 사항 : 최신 변경 사항 추적
계획된 시간표 : 특정 시간에 대한 계획된 시간표 데이터에 액세스
역 검색 : 역명이나 코드로 기차역 검색
Related MCP server: DevDb MCP Server
요구 사항
Node.js 18 이상
DB Timetable API에 대한 API 자격 증명(클라이언트 ID 및 클라이언트 비밀번호)
설치
복제 저장소:
지엑스피1
종속성 설치:
npm installTypeScript 코드를 컴파일합니다.
npm run build
구성
프로젝트의 루트 디렉토리에 다음 환경 변수를 사용하여 .env 파일을 만듭니다.
구성 옵션
DB_TIMETABLE_CLIENT_ID: DB API의 클라이언트 ID(필수)DB_TIMETABLE_CLIENT_SECRET: DB API에 대한 클라이언트 비밀번호(필수)TRANSPORT_TYPE: MCP 서버의 전송 유형(stdio또는sse, 기본값:stdio)PORT: SSE 서버의 포트(기본값:8080)SSE_ENDPOINT: SSE 연결의 엔드포인트(기본값:/sse)LOG_LEVEL: 로깅 레벨(debug,info,warn,error, 기본값:info)
사용
서버 시작
stdio 모드에서(CLI 테스트 및 디버깅용):
SSE 모드(웹 클라이언트용):
검사 모드로 테스트
서버는 FastMCP Inspector로 테스트할 수 있습니다.
MCP 도구
서버는 다음과 같은 도구를 제공합니다.
getCurrentTimetable : 역의 현재 시간표 데이터를 검색합니다.
매개변수:
evaNo- 역의 EVA 번호(예: 프랑크푸르트 중앙역의 경우 8000105)
getRecentChanges : 스테이션의 최근 변경 사항을 검색합니다.
매개변수:
evaNo- 역의 EVA 번호(예: 프랑크푸르트 중앙역의 경우 8000105)
getPlannedTimetable : 역의 계획된 시간표 데이터를 검색합니다.
매개변수:
evaNo- 역의 EVA 번호(예: 프랑크푸르트 중앙역의 경우 8000105)date- YYMMDD 형식의 날짜(예: 2023년 4월 1일의 경우 230401)hour- HH 형식의 시간(예: 오후 2시는 14)
findStations : 검색 패턴을 사용하여 스테이션을 검색합니다.
매개변수:
pattern- 검색 패턴(예: "Frankfurt" 또는 "BLS")
MCP 리소스
서버는 다음과 같은 리소스를 제공합니다.
현재 시간표 데이터 :
db-api:timetable/current/{evaNo}현재 시간표 변경 사항 :
db-api:timetable/changes/{evaNo}계획된 시간표 데이터 :
db-api:timetable/planned/{evaNo}/{date}/{hour}스테이션 검색 :
db-api:station/{pattern}
개발
프로젝트 구조
NPM 스크립트
npm run build: TypeScript 코드를 컴파일합니다.npm start: 서버를 시작합니다npm run dev: 자동 재로딩을 통해 개발 모드로 서버를 시작합니다.npm test: 테스트를 실행합니다
확장성
잠재적 확장
데이터 처리 및 강화
의미론적 시간표 데이터 처리: 의미론적 강화를 통한 XML에서 구조화된 JSON으로
지연 및 중단에 대한 과거 데이터 분석
다중 모드 교통 연결의 통합
고급 MCP 도구
역 간 경로 계획
AI 기반 지연 및 용량 예측
여행 중단 분석
역 및 연결편 접근성 점검
특허
MCP 서버: MIT 라이선스
DB 시간표 API: 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스