Back to Browse

Korail MCP Server

Developer ToolsUse Caution4.2MCP RegistryLocal
Free

Server data from the Official MCP Registry

한국철도공사(KORAIL) 공공데이터 MCP 서버 — 98개 도구, API 키 신청 불필요. 역·열차·화물·통계 데이터 자연어 조회.

About

한국철도공사(KORAIL) 공공데이터 MCP 서버 — 98개 도구, API 키 신청 불필요. 역·열차·화물·통계 데이터 자연어 조회.

Security Report

4.2
Use Caution4.2High Risk

This is a legitimate KORAIL public data MCP server with well-structured code and appropriate permissions for its purpose. The server uses a Cloudflare Workers proxy to access public APIs without requiring user API keys, eliminating credential management risks. Minor code quality observations exist but do not constitute security vulnerabilities. Supply chain analysis found 6 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.

4 files analyzed · 10 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-lovelyquality-korail-mcp": {
      "args": [
        "korail-mcp"
      ],
      "command": "uvx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

🇰🇷 한국어 · 🇬🇧 English

KORAIL 공공데이터 MCP

한국철도공사(KORAIL) 공공데이터를 AI에 연결하는 MCP(Model Context Protocol) 서버 모음입니다. 설치 후 Claude Desktop·Claude Code·Cursor·Antigravity·GitHub Copilot(CLI/VS Code) 등에서 자연어로 KORAIL 데이터를 조회할 수 있습니다.

API 키 신청 불필요 — 전용 프록시 서버가 공공데이터 API 호출을 대신 처리합니다.

💻 로컬 설치형 (stdio) — 별도 서버 없이 개인 PC에서 직접 실행됩니다. Claude Desktop·Claude Code·Cursor·Antigravity·GitHub Copilot(CLI/VS Code) 등 로컬 MCP 클라이언트에 연결합니다. ChatGPT·Grok 같은 웹 서비스는 원격 연결이 필요합니다(하단 "그 밖의 방식" 참고).

📦 필요 디스크 공간 — 약 100MB (uv가 관리하는 Python과 패키지 포함)

👉 처음이신가요? 바로 아래 "제일 쉬운 방법"부터 시도해보세요. 98개 도구 전체 목록은 설치를 마친 뒤 필요할 때 참고하세요.


🤖 제일 쉬운 방법 — AI에게 그대로 시키기

Claude Code·Cursor·GitHub Copilot(CLI/VS Code)·Antigravity처럼 터미널 명령을 직접 실행할 수 있는 AI를 쓰고 있다면, 그 채팅창에 아래 문장을 그대로 붙여넣으세요.

https://github.com/lovelyquality/korail-mcp 의 README를 참고해서 이 MCP 서버를 설치하고 내 클라이언트에 연결해줘.

AI가 README를 직접 읽고 uv 설치 → korail-mcp 설치 → 클라이언트 설정 파일 등록까지 알아서 처리합니다. 완료되면 "서울역에 엘리베이터가 있나요?" 같은 질문으로 확인해보세요.

⚠️ ChatGPT·Grok처럼 로컬 명령을 실행하지 못하는 AI에서는 이 방법이 통하지 않습니다(왜인지는 하단 "그 밖의 방식" 참고). 그리고 AI가 중간에 막히거나, 애초에 이런 방식의 AI 도구가 없다면 → 바로 아래 "수동 설치"를 그대로 따라 하시면 됩니다.


⚙️ 수동 설치 (Windows · 2단계)

Python을 따로 설치하거나 저장소를 다운로드할 필요가 없습니다. uv가 필요한 것을 알아서 준비합니다.

1단계 — uv 설치 (최초 1회)

PowerShell을 열고 아래를 붙여넣습니다. 관리자 권한이 필요 없습니다.

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

설치 후 PowerShell을 새로 열고 uv --version이 출력되면 성공입니다.

2단계 — KORAIL MCP 설치 (최초 1회)

uv tool install --from git+https://github.com/lovelyquality/korail-mcp.git korail-mcp

마지막에 Installed 1 executable: korail-mcp 가 나오면 성공입니다.

⏳ 첫 설치는 1~3분 걸립니다(Python과 패키지를 받는 시간). 설치 후 실행은 약 5초입니다.

🔄 최신 버전으로 갱신uv tool upgrade korail-mcp 실행 후 클라이언트를 재시작하세요.

⚠️ 갱신 전에는 korail-mcp를 쓰는 클라이언트(Claude Desktop·Cursor·Antigravity·VS Code 등)를 먼저 완전히 종료하세요. 실행 중인 상태로 갱신하면 실행파일이 잠겨 있어 내부 패키지만 새 버전으로 바뀌고 실행파일은 그대로 남아 ModuleNotFoundError: No module named 'gateway'로 깨질 수 있습니다 (2026-08-24 실측으로 재현·확인). 이미 이 에러가 나면 korail-mcp.exe를 쓰는 모든 프로세스를 작업 관리자에서 종료한 뒤 uv tool install --from git+https://github.com/lovelyquality/korail-mcp.git korail-mcp --force로 재설치하세요. 여러 클라이언트가 같은 설치를 동시에 쓰는 것 자체는 문제 없습니다 — 충돌은 갱신하는 그 순간에만 일어납니다.


🔌 3단계 — 클라이언트 연결

아래 JSON을 클라이언트 설정 파일의 mcpServers 안에 넣고, <사용자명> 부분만 본인 윈도우 계정명으로 바꿉니다.

{
  "mcpServers": {
    "korail-mcp": {
      "command": "C:\\Users\\<사용자명>\\.local\\bin\\korail-mcp.exe"
    }
  }
}

💡 계정명을 모르면 PowerShell에 echo $env:USERNAME 을 입력하세요. 경로의 역슬래시는 JSON 규칙상 두 개(\\) 로 씁니다.

⚠️ 이미 다른 MCP 서버를 쓰고 있다면 korail-mcp 항목만 기존 mcpServers 안에 추가하세요(전체를 덮어쓰면 기존 서버가 사라집니다).

설정 파일 위치

클라이언트설정 파일
Claude Desktop%APPDATA%\Claude\claude_desktop_config.json
Claude Codeclaude mcp add 명령으로 등록 (아래 별도 안내)
CursorC:\Users\<사용자명>\.cursor\mcp.json
AntigravityC:\Users\<사용자명>\.gemini\antigravity\mcp_config.json
GitHub Copilot CLIcopilot mcp add 명령으로 등록 (아래 별도 안내)
VS Code (GitHub Copilot Chat)아래 별도 안내 참고 (JSON 형식이 다름)
  1. 탐색기 주소창에 %APPDATA% 입력 → Enter
  2. Claude 폴더가 없으면 직접 만드세요
  3. 그 안에 claude_desktop_config.json 파일을 만들고 위 JSON을 넣으세요

AppData가 안 보이면 탐색기 → 보기 → 숨긴 항목을 체크하세요.

터미널에서 쓰는 Claude Code CLI(claude, VS Code나 Claude Desktop 없이도 동작)로 실제 계정 붙여서 검증했습니다.

# 1) korail-mcp를 MCP 서버로 등록 (최초 1회)
claude mcp add korail-mcp -s user -- "C:\Users\<사용자명>\.local\bin\korail-mcp.exe"

# 2) 실제 질문 (해당 도구만 허용)
claude -p "korail-mcp 도구를 사용해서 서울역에 엘리베이터가 있는지 알려줘" --allowedTools "mcp__korail-mcp__*"

2026-08-24 실측 결과 — 위 명령을 실제로 실행해서 실데이터 답변까지 확인했습니다:

서울역 — 엘리베이터 있음 (18개)
에스컬레이터: 23개 · 일반화장실: 있음 · 수유실: 있음 · 종합안내센터: 있음
(출처: 한국철도공사 공공데이터포털 편의시설정보, 실시간 API 기준)

claude mcp list로 등록 확인, claude mcp remove korail-mcp로 제거할 수 있습니다. 대화형으로 쓸 때는 --allowedTools 없이 실행하면 첫 도구 호출 시 승인 여부를 물어봅니다.

.cursor 또는 .gemini\antigravity 폴더나 그 안의 설정 파일이 없다면 직접 만들면 됩니다.

  1. 탐색기 주소창에 %USERPROFILE% 입력 → Enter (본인 계정 폴더로 이동)
  2. 없는 폴더(.cursor 또는 .gemini\antigravity)를 새로 만드세요
  3. 그 안에 mcp.json(Cursor) 또는 mcp_config.json(Antigravity) 파일을 만들고 위 JSON을 넣으세요

Antigravity는 채팅에 위 JSON을 붙여넣고 "이 MCP 서버를 등록해줘"라고 요청하는 방법이 더 쉽습니다. 무료로 설치 가능하며, KORAIL MCP 연결에 별도 구독이 필요 없습니다.

터미널에서 쓰는 공식 GitHub Copilot CLI(@github/copilot, VS Code 없이도 동작)로 실제 계정 붙여서 검증했습니다. 무료 플랜에서도 MCP 서버 연결이 됩니다 (다만 월 채팅 50회, 모델은 Claude Haiku 4.5 / GPT-5 mini로 제한).

⚠️ 사전 준비 — Node.js 22 이상이 필요합니다. node --version으로 확인하고, 없으면 nodejs.org에서 LTS 버전을 설치하세요(uv와 달리 자동으로 준비되지 않습니다).

# 1) 설치 (최초 1회)
npm install -g @github/copilot

# 2) korail-mcp를 MCP 서버로 등록 (최초 1회)
copilot mcp add korail-mcp -- "C:\Users\<사용자명>\.local\bin\korail-mcp.exe"

# 3) 실제 질문 (도구 자동 승인)
copilot -p "서울역에 엘리베이터가 있는지 korail-mcp 도구로 조회해줘" --allow-all-tools

2026-08-24 실측 결과 — 위 명령을 실제로 실행해서 GitHub Copilot이 get_urban_accessibility 도구를 스스로 호출하고 실데이터로 답변하는 것까지 확인했습니다:

● get_urban_accessibility (MCP: korail-mcp) · station_name: "서울역", facility_type: "elevator"

네, 서울역에는 엘리베이터가 있습니다! 총 17개의 엘리베이터가 설치되어 있습니다.
- 공항철도(AR): 9개 · 경의중앙선(KR): 1개 · 1호선(S1): 4개 · 4호선(S1): 3개

설정 파일은 ~/.copilot/mcp-config.jsonmcpServers.korail-mcp로 저장되며, copilot mcp list로 등록 확인, copilot mcp remove korail-mcp로 제거할 수 있습니다.

VS Code 확장 형태의 Copilot Chat은 위 CLI와 별개 제품이라 설정 파일이 다릅니다. 최상위 키가 mcpServers가 아니라 servers 라서 위 JSON을 그대로 쓸 수 없습니다.

  1. 저장소(작업 폴더) 루트에 .vscode\mcp.json 파일을 만들고 아래 내용을 넣습니다. (모든 작업 폴더에서 쓰려면 명령 팔레트(Ctrl+Shift+P) → MCP: Open User Configuration 으로 열리는 %APPDATA%\Code\User\mcp.json 에 넣으세요.)
{
  "servers": {
    "korail-mcp": {
      "command": "C:\\Users\\<사용자명>\\.local\\bin\\korail-mcp.exe"
    }
  }
}
  1. 파일을 저장하면 상단에 나타나는 Start 버튼을 클릭합니다.
  2. Copilot Chat을 열고 Agent 모드를 선택 → 도구 아이콘에서 korail-mcp 98개 도구가 보이면 연결 완료입니다.

⚠️ 위 CLI 테스트로 서버 쪽(stdio 프로토콜·98개 도구·실데이터 응답)은 이미 검증됐지만, VS Code 화면에서 Start를 눌러 실제로 붙는지는 GUI 조작 도구가 없어 확인하지 못했습니다. 안 되면 알려주세요.

연결 후 반드시 — 클라이언트를 완전히 종료했다 다시 실행

ℹ️ Claude Code·GitHub Copilot CLI는 이 단계가 필요 없습니다 — 명령을 실행할 때마다 설정을 새로 읽습니다. 아래는 Claude Desktop·Cursor·Antigravity·VS Code처럼 창을 띄워두는 클라이언트에만 해당합니다.

창의 X를 눌러 닫아도 트레이(작업표시줄 오른쪽 ^ 안)에 계속 실행 중이라 설정이 적용되지 않습니다. → 트레이 아이콘 우클릭 → Quit / 종료 후 다시 실행하세요.

정상 연결되면 설정의 MCP 서버 목록에 korail-mcprunning 으로 표시되고, 98개 도구를 쓸 수 있습니다.

💬 설치 확인 — 이렇게 물어보세요

서울역에 엘리베이터가 있나요?
2024년 간선철도 수송실적을 알려주세요.
KTX 101 열차의 운행 계획을 알려주세요.

정상 응답이 오면 설치 완료입니다. 더 많은 사용 예시는 문서 하단의 "사용 예시" 섹션을 참고하세요.


📦 제공 서버 (총 11개 · 98개 도구)

서버도구 수제공 데이터
m-convenience6역사 편의시설·접근성·엘리베이터·위치 정보
m-stats15수송실적·발권 통계·이용유형·KTX 장기 통계
m-train-ops4열차 운행계획·운행이력
m-codebook4역코드·노선코드 조회
m-freight11화물·컨테이너·물류시설·품목·위험물
m-network8노선·역간거리·운임·역 선로제원
m-rolling-stock6차량 보유현황·형별제원·차종별 운행실적
m-voc-cs10고객서비스·정보공개
m-internal-svc14임대매장·사회공헌·인사 정보
m-procurement4자재그룹·G2B 품명·자재속성·대상장비
m-urban-rail16전국 도시철도 역사·노선·차량 시설·접근성·안전·환경·시각표

서버별 도구 상세 (클릭하여 펼치기)

도구설명
get_station_facilities역 이름으로 편의시설 정보 조회
get_accessible_facilities역 이름으로 교통약자 편의시설 조회
list_stations_with_elevator엘리베이터가 설치된 역 목록 조회
get_station_facilities_detail역사 내외부 시설현황 조회
get_station_transfer_info역별 타 교통수단 환승현황 조회
get_station_location역 위치(좌표) 정보 조회
도구설명
get_mainline_station_per간선열차 역별 승하차 통계
get_mainline_route_per간선열차 노선별 이용인원 통계
get_wide_rail_station_per광역철도 역별 승하차 통계
get_wide_rail_route_per광역철도 노선별 이용인원 통계
get_mainline_distance_per간선열차 거리별 이용인원 통계
get_mainline_model_per간선열차 차량별 이용인원 통계
get_mainline_day_of_week_per간선열차 요일별 이용인원 통계
get_mainline_grade_per간선열차 객실별 이용인원 통계
get_mainline_ticketing_stat간선열차 발권유형 통계
get_mainline_person_distance간선열차 노선별 인거리 통계
get_ktx_long_term_statsKTX 장기 통계
get_mainline_carriage간선 여객열차 수송실적 조회
get_wide_area_carriage광역 여객열차 수송실적 조회
get_freight_carriage화물열차 수송실적 조회
get_transport_stat_codes수송실적 통계 코드정보 조회
도구설명
get_train_codes열차운행 코드정보 조회
get_train_run_plan여객열차 운행계획 조회
get_train_run_info여객열차 실제 운행정보 조회
get_train_run_history차세대예약발매 열차 운행내역 조회
도구설명
search_station역명으로 역코드·영문명·지역본부 통합 조회
decode_station_code역코드로 역명 조회
search_route노선명으로 노선코드 조회
list_stations_by_region지역본부명으로 관할 역 목록 조회
도구설명
search_freight_code내적화물코드 검색
decode_freight_code내적화물분류코드 단건 디코딩
search_container_record컨테이너 적재 이력 조회
list_freight_work_lines화물적하작업 전용 작업선 정보
list_standard_loading_time표준 적하시간 마스터 조회
search_loading_time_adjustment적하시간 조정 이력 조회
search_consignment_change수탁변경요금 검색
search_consignment_change_per_wagon수탁변경요금 화차별 조회
get_logistics_facility물류시설 정보 통합 조회
get_freight_items화물 품목정보 조회
get_hazardous_cargo위험물 정보 조회
도구설명
search_operation_patterns전국 철도 운행계통 검색
get_station_distance두 역 간 최단 운행거리 조회
get_freight_minimum_fare화물 운송 최저운임 기준 조회
get_freight_rate철도 화물 임율 정보 조회
get_segment_info철도 전동차 세그먼트 정보 조회
get_operation_distance노선별 역간 운행거리 조회
get_ktx_stationsKTX 노선별 역 정보 조회
get_station_track_info역별 선로·시설 상세 정보 조회
도구설명
get_train_type_specs동력차 형별제원 조회
get_rolling_stock_by_year연도별 차량보유현황 조회
get_wagon_by_weight_class화차 자중별 보유현황 조회
get_wagon_by_load_capacity화차 적재하중별 보유현황 조회
get_maintenance_equipment철도차량 검수용 기계 보유현황 조회
get_train_operation_by_type차종별 연간 운행실적 조회
도구설명
get_customer_satisfaction_stats고객의소리 만족도 일별 통계
get_consultation_types철도 고객센터 상담유형 코드 조회
get_consultation_departments철도 고객센터 담당 부서 목록 조회
get_advance_disclosure홈페이지 사전정보공표 목록 조회
get_advance_disclosure_detail사전정보공표 세부 내역 조회
get_advance_disclosure_files사전정보공표 첨부파일 목록 조회
get_info_disclosure_dept정보공개 담당 부서 목록 조회
get_info_disclosure_codes정보공개 시스템 공통코드 조회
get_homepage_deptKORAIL 홈페이지 부서 정보 조회
get_homepage_positionKORAIL 홈페이지 직책 코드 조회
도구설명
get_lease_stores역사 내 임대매장 운영정보 조회
get_lease_codes임대 시스템 코드 조회
get_leased_assets임대자산 현황 조회
get_dormitory_longterm_codes직원숙사 장기예약 사유 코드 조회
get_social_funds사회공헌 펀드 종류 조회
get_social_volunteer_fields사회공헌 봉사 분야 코드 조회
get_social_donations사랑의 성금 사용 내역 조회
get_social_volunteer_matching봉사활동 매칭 지출 내역 조회
get_social_org사회공헌 포털 조직정보 조회
get_support_facilities사옥 내 부대시설 목록 조회
get_support_departments업무지원 부서별 인원 현황 조회
get_office_meeting_rooms본사 사옥 회의실 목록 조회
get_job_grades직급 코드 정보 조회
get_cafeteria_menu_stats구내식당 메뉴 건수 현황 조회
도구설명
search_material_group자재그룹코드 검색
search_g2b_itemG2B 분류번호·품명 검색
search_material_attr자재속성정보 조회
search_material_equipment자재대상장비 조회

수도권 1~9호선·신분당·공항철도, 부산·대구·대전·광주·인천, 경전철·GTX 등 전국 22개 운영기관 1,108개 역. 운영기관·선·역코드가 필요하므로 먼저 search_urban_station으로 역을 특정하세요. 환승역 등 동일 역명은 operator(운영기관)로 구분합니다.

도구설명
search_urban_station역명으로 운영기관·선·역코드 검색 (다른 조회의 선행 단계)
get_urban_station_info역사 기본정보 조회 (주소·좌표·다국어 역명)
get_urban_accessibility역사 접근성 시설 조회 (엘리베이터·에스컬레이터·휠체어리프트 현황/위치·이동동선·안전발판·이격거리·점자·장애인화장실·인접계단 차량번호 등)
get_urban_amenity역사 편의시설 조회 (화장실·수유실·물품보관함·ATM·유실물센터·무선인터넷)
get_urban_safety역사 안전시설 조회 (제세동기·소화설비·비상콜폰·공기호흡기·스크린도어·승강장 안전펜스)
get_urban_surroundings역 주변 시설 조회 (대중교통·주차장·자전거 주차/대여)
get_urban_exit_info역사 출구정보 조회 (출구번호·주변시설·거리)
get_urban_transfer_info역사 환승정보 조회 (환승노선·환승거리·동선)
get_urban_movement교통약자 출입구→승강장 이동경로(무장애 동선) 조회
get_urban_platform역사 승강장 정보 조회 (승강장 유형·복합여부 등)
get_urban_environment역사 환경측정 조회 (공기질·온도·습도·소음)
get_urban_timetable역사별 운행시각표 조회 (평일/휴일·급행 선택)
get_urban_route노선 전체 역 구성(상행~하행 순서) 조회 — 역 무관
get_urban_train_composition운영기관별 열차 편성종류(편성코드·호차) 조회 — 차량별 조회 선행
get_urban_train_facility차량(호차)별 시설 조회 (소화기·비상콜폰·제세동기·임산부석·노약자석·휠체어 등)
get_urban_train_environment열차별 차내 환경정보 조회 (온도·습도·미세먼지 등)

🧩 그 밖의 방식

ChatGPT와 Grok은 로컬 MCP 서버를 지원하지 않습니다. 공개 HTTPS 엔드포인트만 커넥터로 추가할 수 있어, 위 방법으로는 연결되지 않습니다.

게이트웨이에 원격(Streamable HTTP) 모드가 내장되어 있어 공개 주소로 노출하면 연결이 가능합니다. 다만 서버 운영과 공개 범위 문제가 따르므로 상세는 gateway/README.md를 참고하세요.

설치 과정 없이 uvx 로 바로 실행할 수도 있습니다.

{
  "mcpServers": {
    "korail-mcp": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/lovelyquality/korail-mcp.git", "korail-mcp"]
    }
  }
}

계정명을 넣지 않아도 되는 장점이 있으나, 실행할 때마다 GitHub에 최신 커밋이 있는지 확인하기 때문에 클라이언트를 켤 때마다 기동이 느립니다.

방식기동 시간(실측)
uv tool install 후 실행약 5초
uvx (매번 원격 확인)약 40초

기동이 느리면 클라이언트가 서버를 기다리다 놓쳐 도구가 나타나지 않을 수 있습니다.

서버 코드를 수정하려면 저장소를 clone 해서 실행합니다.

git clone https://github.com/lovelyquality/korail-mcp.git
cd korail-mcp
uv run gateway/server.py

의존성은 gateway/server.py 상단에 선언되어 있어 uv가 자동으로 준비합니다. 변경 후에는 python docker-test/smoke_test.py 로 11개 서버·98개 도구·반환 타입 선언을 한 번에 검증하세요.

상세는 gateway/README.md 참고.


💬 사용 예시

서울역에 엘리베이터가 있나요?                     (convenience)
2026년 4월 KTX 발권유형 비율을 알려주세요.        (stats)
KTX 101 열차의 운행 계획을 알려주세요.            (train-ops)
서울역 코드가 뭔가요?                             (codebook)
2024년 간선철도 수송실적을 알려주세요.            (stats)
컨테이너 화물 운송 이력을 조회해주세요.           (freight)
경부선 KTX 정차역과 역간 거리를 알려주세요.       (network)
KTX 차량 형별 제원을 보여주세요.                  (rolling-stock)
철도 고객센터 상담유형 코드를 알려주세요.         (voc-cs)
역사 임대매장 현황을 알려주세요.                  (internal-svc)
'EMU용품' 자재그룹코드를 검색해주세요.            (procurement)
강남역(서울교통공사) 엘리베이터 위치를 알려주세요.  (urban-rail)
서울역 도시철도 역사들의 운영기관을 찾아주세요.    (urban-rail)

📚 데이터 출처

  • 한국철도공사 공공데이터포털 (data.go.kr)
  • 국가철도공단(KRIC) 철도산업정보센터 오픈API (openapi.kric.go.kr) — 도시철도 역사정보
  • REST API(B551457) · odcloud 파일변환 API · 로컬 CSV

⚠️ 주의사항

  • 데이터 호출은 전용 Cloudflare Workers 프록시를 경유하므로 직원 개인 API 키가 필요 없습니다.
  • 각 데이터셋의 기준일·갱신주기는 도구 응답의 _meta 항목에 표시됩니다.

각 서버의 상세 동작은 해당 폴더의 server.py docstring을 참조하세요.

Reviews

No reviews yet

Be the first to review this server!