io.github.Leegwangwoon/korea-mcp·Travel & maps

Korea MCP

Get around Korea: subway routes in English, fares, public holidays and guides. No API key.

Stars
0
Version
0.1.0
License
MIT
Review
Passed
Language
TypeScript
Last commit
2h ago
Forks
0
Open issues
0
Registry update
Oct 14, 2026
ai-agentclaudecursorkoreamcpmcp-servermetromodel-context-protocolseoulsubwaytraveltypescript

Connect

npm
Terminal
$claude mcp add korea-mcp \  -- npx -y [email protected]

Environment variables

Nothing to configure — it works as is.

Security review

Review passed

Reviewed 1h ago.

metadata
scanned
packages
1 checked

No findings.

Tools

This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.

korea-mcp 🇰🇷

English · 한국어

Let your AI agent get you around Korea. Subway routes in English, fares, public holidays and practical tips, as an MCP server for Claude, Cursor, ChatGPT and any MCP client.

No API key. No Korean phone number. Works offline.

korea-mcp answering subway routes from Myeongdong to Seongsu and from Gangnam to Gyeongbokgung

You:    How do I get from Myeongdong to Seongsu by subway?

Agent:  Take Line 4 from Myeongdong (명동) on the platform whose next stop is
        Chungmuro (충무로). Ride 2 stops to Dongdaemun History & Culture Park.
        Transfer to Line 2 towards Sindang (신당) and ride 6 stops to Seongsu (성수).
        About 22 minutes, ₩1,550 with a T-money card.

Why Google Maps fails in Korea

If you have visited Korea, you know: Google Maps can't give you walking or driving directions here, and its transit results are often incomplete. Korea restricts exporting map data, so locals use Naver Map and KakaoMap instead.

That's fine for people, but bad for AI agents. Naver and Kakao don't offer a public transit-routing API, and their other APIs need a Korean developer account. So when you ask an AI "how do I get to Seongsu?", it guesses.

korea-mcp fixes the basics with open data bundled in the package:

  • 660 stations on 25 lines across Seoul, Incheon and Gyeonggi, with names in English, Korean, Japanese and Chinese
  • a route planner that knows transfers, platform direction and estimated time
  • the official distance-based fare formula
  • Korean public holidays, including substitute holidays
  • short, practical guides on T-money, airport transfers, emergency numbers and the apps that work

Install

Claude Code

claude mcp add korea -- npx -y korea-mcp

Claude Desktop, Cursor and other MCP clients. Add this to your MCP config (claude_desktop_config.json, .cursor/mcp.json, …):

{
  "mcpServers": {
    "korea": {
      "command": "npx",
      "args": ["-y", "korea-mcp"]
    }
  }
}

Requires Node.js 20+.

Tools

ToolWhat it does
subway_routeRoute between two stations: lines, transfers, the platform to use, stops, minutes and fare. Accepts English, 한국어, 日本語, 中文 and landmarks ("Hongdae", "COEX", "Incheon Airport T1"). Tolerates typos.
subway_stationLook up and translate a station name. Returns every language, the lines that serve it and coordinates.
korea_holidaysPublic holidays in a date range, or "is this date a holiday?". Includes substitute holidays and the 2026 additions (Labour Day, Constitution Day).
korea_guidePractical guides: transit-card, airport, emergency, apps.

Things to ask

  • "I land at Incheon T2 at 9pm. How do I get to my hotel near Hongdae?"
  • "What's the fastest way from Gangnam to Gyeongbokgung, and how much is it?"
  • "Is anything closed in Korea the week of September 24, 2026?"
  • "How do I top up a T-money card?"
  • "What does 을지로입구 mean in English, and which lines stop there?"

Accuracy

Here is what this server knows, and what it only estimates:

  • Station order and transfers come from OpenStreetMap and are reliable.
  • Ride times are estimates. They're based on distance, line speed and about 7 minutes per transfer, calibrated against published journey times. There is no live timetable.
  • Fares use the official integrated distance formula for adults (₩1,550 base with a card, effective 2025-06-28). Lines with their own surcharges (Shinbundang, AREX, GTX-A) are flagged in the response, not added to the total.
  • Express trains are off by default because express stopping patterns in OSM are incomplete. Turn them on with allow_express.

Found a wrong route? Open an issue with the two stations. That's the most useful bug report there is.

Roadmap

These are planned optional extras that need free API keys. Everything above keeps working without them.

  • Real-time train arrivals (Seoul Open Data)
  • Place search ("cafés near Seongsu", "pharmacy open now") via the Kakao Local API
  • Bus and door-to-door routing via ODsay
  • A hosted remote server, so there is nothing to install
  • Busan, Daegu, Daejeon and Gwangju metros
  • Guides for longer stays: ARC, bank accounts, phone plans, health insurance

See docs/api-keys.md for how keys will work.

Development

npm install
npm test              # route, fare and holiday tests
npm run dev           # run the server with tsx
npm run data:subway   # rebuild data/subway.json from OpenStreetMap

The subway dataset is generated by scripts/build-subway.mjs from OpenStreetMap route relations. Line definitions and name overrides are in that script. The speed model is in src/subway/route.ts.

Contributions in any language are welcome. Issues and PRs in Korean are fine too.

Credits & related projects

These projects explored parts of this space first. Go give them a star:

License

The code is MIT. The subway data is © OpenStreetMap contributors, under ODbL 1.0.


한국어

English · 한국어

외국인 친구가 AI한테 "명동에서 성수 어떻게 가?"라고 물으면, 제대로 된 답이 나오게 하는 MCP 서버입니다.

지하철 경로와 요금, 공휴일, 생활 정보를 영어·한국어·일본어·중국어로 알려줍니다. Claude, Cursor, ChatGPT 등 MCP를 지원하는 모든 AI 에이전트에서 쓸 수 있어요.

API 키 없이, 한국 휴대폰 번호 없이, 오프라인에서 동작합니다.

왜 만들었나

한국에서는 구글 지도로 도보·자동차 길찾기를 할 수 없고, 대중교통 정보도 부정확한 경우가 많습니다. 지도 데이터의 국외 반출 제한 때문이에요. 그래서 한국 사람들은 네이버 지도와 카카오맵을 씁니다.

그런데 AI 에이전트에게는 이게 문제입니다. 네이버와 카카오는 대중교통 길찾기 API를 외부에 공개하지 않고, 다른 API도 한국 개발자 계정이 있어야 쓸 수 있어요. 결국 AI가 경로를 지어내게 됩니다.

korea-mcp는 공개 데이터를 패키지에 내장해서 이 문제를 해결합니다.

  • 수도권(서울·인천·경기) 25개 노선, 660개 역과 4개 국어 역명
  • 환승, 탈 승강장 방향, 예상 소요 시간을 알려주는 경로 탐색
  • 공식 거리비례 요금 계산
  • 대체공휴일까지 포함한 한국 공휴일
  • 티머니, 공항 이동, 긴급전화, 한국에서 쓸 만한 앱 안내

설치

Claude Code

claude mcp add korea -- npx -y korea-mcp

Claude Desktop, Cursor 등. MCP 설정 파일에 아래 내용을 추가하세요.

{
  "mcpServers": {
    "korea": {
      "command": "npx",
      "args": ["-y", "korea-mcp"]
    }
  }
}

Node.js 20 이상이 필요합니다.

도구

도구기능
subway_route두 역 사이 경로: 노선, 환승역, 탈 승강장, 정거장 수, 예상 시간, 요금. 영어·한국어·일본어·중국어 역명과 랜드마크("Hongdae", "COEX")를 알아듣고, 오타도 처리합니다.
subway_station역 검색과 역명 번역. 언어별 이름, 지나는 노선, 좌표를 알려줍니다.
korea_holidays기간 내 공휴일 조회, 특정 날짜가 공휴일인지 확인. 대체공휴일과 2026년에 새로 생긴 노동절·제헌절도 포함합니다.
korea_guide생활 가이드: transit-card(교통카드), airport(공항), emergency(긴급전화), apps(앱)

정확도

  • 역 순서와 환승 정보는 OpenStreetMap 기반이라 신뢰할 수 있습니다.
  • 소요 시간은 추정치입니다. 역 간 거리, 노선별 속도, 환승 약 7분으로 계산하고 공개된 소요 시간에 맞춰 보정했어요. 실시간 시간표는 아닙니다.
  • 요금은 2025년 6월 28일부터 적용된 수도권 통합 거리비례제(교통카드 성인 기본 1,550원)를 따릅니다. 신분당선, 공항철도, GTX-A처럼 별도 요금이 붙는 노선은 응답에 안내만 하고 합계에는 넣지 않습니다.
  • 급행은 기본으로 꺼져 있습니다. OSM의 급행 정차 정보가 불완전하기 때문이에요. 쓰려면 allow_express 옵션을 켜세요.

틀린 경로를 발견하면 출발역과 도착역을 적어서 이슈로 알려주세요. 가장 도움이 되는 제보입니다.

로드맵

아래 기능은 무료 API 키가 있으면 쓸 수 있는 선택 기능으로 추가할 예정입니다. 키가 없어도 기존 기능은 그대로 동작해요.

  • 실시간 지하철 도착 정보 (서울 열린데이터광장)
  • 장소 검색 ("성수 근처 카페", "지금 문 연 약국"), 카카오 로컬 API 사용
  • 버스를 포함한 출발지→도착지 경로 (ODsay)
  • 설치 없이 쓰는 원격 서버
  • 부산·대구·대전·광주 도시철도
  • 장기 체류자용 가이드: 외국인등록증, 은행 계좌, 휴대폰 개통, 건강보험

키 사용 방식은 docs/api-keys.md를 참고하세요.

개발

npm install
npm test              # 경로·요금·공휴일 테스트
npm run dev           # tsx로 서버 실행
npm run data:subway   # OpenStreetMap에서 data/subway.json 다시 생성

이슈와 PR은 한국어로 남기셔도 됩니다. 영어 역명 오류, 빠진 노선, 가이드 내용 보완 같은 기여를 특히 환영해요.

참고 프로젝트

이 분야를 먼저 다룬 프로젝트들입니다. 위의 Credits 목록을 참고하세요.

라이선스

코드는 MIT, 지하철 데이터는 © OpenStreetMap contributors이며 ODbL 1.0을 따릅니다.

From the server's repository — third-party content, read it before running anything it suggests.

More in Travel & maps

Listing from the official MCP Registry · repository facts from GitHub, 1h ago.