Server data from the Official MCP Registry
Get around Korea: subway routes in English, fares, public holidays and guides. No API key.
About
Get around Korea: subway routes in English, fares, public holidays and guides. No API key.
Security Report
Valid MCP server (3 strong, 5 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
7 files analyzed ยท 1 issue 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.
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-leegwangwoon-korea-mcp": {
"args": [
"-y",
"korea-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
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.

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, one click. Download korea-mcp.mcpb and open it. Claude Desktop installs it as an extension.
Claude Desktop (manual), 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
| Tool | What it does |
|---|---|
subway_route | Route 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_station | Look up and translate a station name. Returns every language, the lines that serve it and coordinates. |
korea_holidays | Public holidays in a date range, or "is this date a holiday?". Includes substitute holidays and the 2026 additions (Labour Day, Constitution Day). |
korea_guide | Practical 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.
If korea-mcp helped you get around, a โญ helps other travelers find it.
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:
- naeryeo: Korean transit routing CLI and MCP using ODsay
- seoul-essentials: public facilities for foreign visitors in Seoul
- kakao-navigation-mcp-server, mcp-server-kakao-map, and the Naver Maps MCP servers
- awesome-mcp-korea: a list of Korean MCP servers
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 ์ํด๋ฆญ ์ค์น. korea-mcp.mcpb๋ฅผ ๋ด๋ ค๋ฐ์ ์ด๋ฉด Claude Desktop์ ํ์ฅ ํ๋ก๊ทธ๋จ์ผ๋ก ์ค์น๋ฉ๋๋ค.
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์ ๋ฐ๋ฆ ๋๋ค.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Fetch
Freeby Modelcontextprotocol ยท Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol ยท Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace ยท Developer Tools
Search and install MCP servers from inside your AI client.
mcp-creator-python
Freeby mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
FinAgent
Freeby mcp-marketplace ยท Finance
Free stock data and market news for any MCP-compatible AI assistant.
