DB Timetable MCP Server

Integrations

  • Supports configuration through .env files for storing API credentials and server settings.

  • Handles content licensed under Creative Commons Attribution 4.0 International License (CC BY 4.0), ensuring proper attribution for Deutsche Bahn timetable data.

  • Provides access to Deutsche Bahn timetable data, including current schedules, planned timetables, schedule changes, and station search functionality through the Deutsche Bahn API.

DB 시간표 MCP 서버

Deutsche Bahn 시간표 API를 위한 MCP(모델 컨텍스트 프로토콜) 서버입니다. 이 서버는 MCP 도구와 리소스를 제공하여 시간표 데이터, 역 정보 및 열차 변경 사항에 액세스할 수 있도록 합니다.

이름을 밝힐 의무:

이 프로젝트는 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스(CC BY 4.0) 에 따라 공개적으로 이용 가능한 도이체반 시간표 데이터를 제공합니다.

API 및 라이선스 조건에 대한 자세한 내용은 developers.deutschebahn.com 에서 확인할 수 있습니다. API 요청은 라이센스 조건을 따릅니다.

기능

  • 현재 시간표 : 역의 현재 시간표 데이터를 검색합니다.
  • 시간표 변경 사항 : 최신 변경 사항 추적
  • 계획된 시간표 : 특정 시간에 대한 계획된 시간표 데이터에 액세스
  • 역 검색 : 역명이나 코드로 기차역 검색

요구 사항

  • Node.js 18 이상
  • DB Timetable API에 대한 API 자격 증명(클라이언트 ID 및 클라이언트 비밀번호)

설치

  1. 복제 저장소:지엑스피1
  2. 종속성 설치:
    npm install
  3. TypeScript 코드를 컴파일합니다.
    npm run build

구성

프로젝트의 루트 디렉토리에 다음 환경 변수를 사용하여 .env 파일을 만듭니다.

DB_TIMETABLE_CLIENT_ID=deine-client-id DB_TIMETABLE_CLIENT_SECRET=dein-client-secret TRANSPORT_TYPE=stdio PORT=8080 SSE_ENDPOINT=/sse LOG_LEVEL=info

구성 옵션

  • 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 테스트 및 디버깅용):

npm start

SSE 모드(웹 클라이언트용):

TRANSPORT_TYPE=sse npm start

검사 모드로 테스트

서버는 FastMCP Inspector로 테스트할 수 있습니다.

npx fastmcp inspect path/to/index.js

MCP 도구

서버는 다음과 같은 도구를 제공합니다.

  1. getCurrentTimetable : 역의 현재 시간표 데이터를 검색합니다.
    • 매개변수: evaNo - 역의 EVA 번호(예: 프랑크푸르트 중앙역의 경우 8000105)
  2. getRecentChanges : 스테이션의 최근 변경 사항을 검색합니다.
    • 매개변수: evaNo - 역의 EVA 번호(예: 프랑크푸르트 중앙역의 경우 8000105)
  3. getPlannedTimetable : 역의 계획된 시간표 데이터를 검색합니다.
    • 매개변수:
      • evaNo - 역의 EVA 번호(예: 프랑크푸르트 중앙역의 경우 8000105)
      • date - YYMMDD 형식의 날짜(예: 2023년 4월 1일의 경우 230401)
      • hour - HH 형식의 시간(예: 오후 2시는 14)
  4. findStations : 검색 패턴을 사용하여 스테이션을 검색합니다.
    • 매개변수: pattern - 검색 패턴(예: "Frankfurt" 또는 "BLS")

MCP 리소스

서버는 다음과 같은 리소스를 제공합니다.

  1. 현재 시간표 데이터 : db-api:timetable/current/{evaNo}
  2. 현재 시간표 변경 사항 : db-api:timetable/changes/{evaNo}
  3. 계획된 시간표 데이터 : db-api:timetable/planned/{evaNo}/{date}/{hour}
  4. 스테이션 검색 : db-api:station/{pattern}

개발

프로젝트 구조

db-mcp/ ├── src/ │ ├── api/ # API-Client und Typen │ ├── tools/ # MCP-Tools │ ├── resources/ # MCP-Ressourcen │ ├── utils/ # Hilfsfunktionen │ ├── config.ts # Konfiguration │ └── index.ts # Haupteinstiegspunkt ├── dist/ # Kompilierte Dateien ├── .env # Umgebungsvariablen ├── package.json ├── tsconfig.json └── README.md

NPM 스크립트

  • npm run build : TypeScript 코드를 컴파일합니다.
  • npm start : 서버를 시작합니다
  • npm run dev : 자동 재로딩을 통해 개발 모드로 서버를 시작합니다.
  • npm test : 테스트를 실행합니다

확장성

잠재적 확장

  1. 데이터 처리 및 강화
    • 의미론적 시간표 데이터 처리: 의미론적 강화를 통한 XML에서 구조화된 JSON으로
    • 지연 및 중단에 대한 과거 데이터 분석
    • 다중 모드 교통 연결의 통합
  2. 고급 MCP 도구
    • 역 간 경로 계획
    • AI 기반 지연 및 용량 예측
    • 여행 중단 분석
    • 역 및 연결편 접근성 점검

특허

MCP 서버: MIT 라이선스

DB 시간표 API: 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스

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

모델 컨텍스트 프로토콜 도구와 리소스를 통해 Deutsche Bahn 열차 시간표, 역 정보 및 일정 변경 사항에 대한 액세스를 제공합니다.

  1. Funktionen
    1. Voraussetzungen
      1. Installation
        1. Konfiguration
          1. Konfigurationsoptionen
        2. Verwendung
          1. Server starten
          2. Mit Inspect-Modus testen
          3. MCP-Tools
          4. MCP-Ressourcen
        3. Entwicklung
          1. Projekt-Struktur
          2. NPM-Skripte
        4. Erweiterbarkeit
          1. Lizenz
            ID: bgzurp6esf