Skip to main content
Glama
jorekai

DB Timetable MCP Server

by jorekai

대장간 배지

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. 복제 저장소:

    지엑스피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

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/jorekai/db-timetable-mcp'

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