Skip to main content
Glama
README.md
๐Ÿ‡ฐ๐Ÿ‡ท **ํ•œ๊ตญ์–ด** ยท ๐Ÿ‡ฌ๐Ÿ‡ง [English](README.en.md)

<!-- mcp-name: io.github.lovelyquality/korail-mcp -->

# 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
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

์„ค์น˜ ํ›„ PowerShell์„ **์ƒˆ๋กœ ์—ด๊ณ ** `uv --version`์ด ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค.

### 2๋‹จ๊ณ„ โ€” KORAIL MCP ์„ค์น˜ (์ตœ์ดˆ 1ํšŒ)

```powershell
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` ์•ˆ์— ๋„ฃ๊ณ , **`<์‚ฌ์šฉ์ž๋ช…>` ๋ถ€๋ถ„๋งŒ ๋ณธ์ธ ์œˆ๋„์šฐ ๊ณ„์ •๋ช…์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.**

```json
{
  "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 Code** | `claude mcp add` ๋ช…๋ น์œผ๋กœ ๋“ฑ๋ก (์•„๋ž˜ ๋ณ„๋„ ์•ˆ๋‚ด) |
| **Cursor** | `C:\Users\<์‚ฌ์šฉ์ž๋ช…>\.cursor\mcp.json` |
| **Antigravity** | `C:\Users\<์‚ฌ์šฉ์ž๋ช…>\.gemini\antigravity\mcp_config.json` |
| **GitHub Copilot CLI** | `copilot mcp add` ๋ช…๋ น์œผ๋กœ ๋“ฑ๋ก (์•„๋ž˜ ๋ณ„๋„ ์•ˆ๋‚ด) |
| **VS Code (GitHub Copilot Chat)** | ์•„๋ž˜ ๋ณ„๋„ ์•ˆ๋‚ด ์ฐธ๊ณ  (JSON ํ˜•์‹์ด ๋‹ค๋ฆ„) |

<details>
<summary>Claude Desktop โ€” ํด๋”๊ฐ€ ์—†์„ ๋•Œ</summary>

1. ํƒ์ƒ‰๊ธฐ ์ฃผ์†Œ์ฐฝ์— `%APPDATA%` ์ž…๋ ฅ โ†’ Enter
2. `Claude` ํด๋”๊ฐ€ ์—†์œผ๋ฉด ์ง์ ‘ ๋งŒ๋“œ์„ธ์š”
3. ๊ทธ ์•ˆ์— `claude_desktop_config.json` ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์œ„ JSON์„ ๋„ฃ์œผ์„ธ์š”

`AppData`๊ฐ€ ์•ˆ ๋ณด์ด๋ฉด ํƒ์ƒ‰๊ธฐ โ†’ ๋ณด๊ธฐ โ†’ **์ˆจ๊ธด ํ•ญ๋ชฉ**์„ ์ฒดํฌํ•˜์„ธ์š”.
</details>

<details>
<summary>Claude Code โ€” ์‹ค์ œ ๊ณ„์ •์œผ๋กœ ๋„๊ตฌ ํ˜ธ์ถœ๊นŒ์ง€ ์‹ค์ธก ์™„๋ฃŒ</summary>

ํ„ฐ๋ฏธ๋„์—์„œ ์“ฐ๋Š” **Claude Code CLI**(`claude`, VS Code๋‚˜ Claude Desktop ์—†์ด๋„ ๋™์ž‘)๋กœ ์‹ค์ œ ๊ณ„์ • ๋ถ™์—ฌ์„œ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค.

```powershell
# 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` ์—†์ด ์‹คํ–‰ํ•˜๋ฉด ์ฒซ ๋„๊ตฌ ํ˜ธ์ถœ ์‹œ ์Šน์ธ ์—ฌ๋ถ€๋ฅผ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค.
</details>

<details>
<summary>Cursor / Antigravity โ€” ํŒŒ์ผ์ด๋‚˜ ํด๋”๊ฐ€ ์—†์„ ๋•Œ</summary>

`.cursor` ๋˜๋Š” `.gemini\antigravity` ํด๋”๋‚˜ ๊ทธ ์•ˆ์˜ ์„ค์ • ํŒŒ์ผ์ด ์—†๋‹ค๋ฉด ์ง์ ‘ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1. ํƒ์ƒ‰๊ธฐ ์ฃผ์†Œ์ฐฝ์— `%USERPROFILE%` ์ž…๋ ฅ โ†’ Enter (๋ณธ์ธ ๊ณ„์ • ํด๋”๋กœ ์ด๋™)
2. ์—†๋Š” ํด๋”(`.cursor` ๋˜๋Š” `.gemini\antigravity`)๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“œ์„ธ์š”
3. ๊ทธ ์•ˆ์— `mcp.json`(Cursor) ๋˜๋Š” `mcp_config.json`(Antigravity) ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์œ„ JSON์„ ๋„ฃ์œผ์„ธ์š”

Antigravity๋Š” ์ฑ„ํŒ…์— ์œ„ JSON์„ ๋ถ™์—ฌ๋„ฃ๊ณ  "์ด MCP ์„œ๋ฒ„๋ฅผ ๋“ฑ๋กํ•ด์ค˜"๋ผ๊ณ  ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ๋กœ ์„ค์น˜ ๊ฐ€๋Šฅํ•˜๋ฉฐ, KORAIL MCP ์—ฐ๊ฒฐ์— ๋ณ„๋„ ๊ตฌ๋…์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
</details>

<details>
<summary>GitHub Copilot CLI โ€” ์‹ค์ œ ๊ณ„์ •์œผ๋กœ ๋„๊ตฌ ํ˜ธ์ถœ๊นŒ์ง€ ์‹ค์ธก ์™„๋ฃŒ</summary>

ํ„ฐ๋ฏธ๋„์—์„œ ์“ฐ๋Š” ๊ณต์‹ **GitHub Copilot CLI**(`@github/copilot`, VS Code ์—†์ด๋„ ๋™์ž‘)๋กœ ์‹ค์ œ ๊ณ„์ • ๋ถ™์—ฌ์„œ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. **๋ฌด๋ฃŒ ํ”Œ๋žœ์—์„œ๋„ MCP ์„œ๋ฒ„ ์—ฐ๊ฒฐ์ด ๋ฉ๋‹ˆ๋‹ค** (๋‹ค๋งŒ ์›” ์ฑ„ํŒ… 50ํšŒ, ๋ชจ๋ธ์€ Claude Haiku 4.5 / GPT-5 mini๋กœ ์ œํ•œ).

> โš ๏ธ **์‚ฌ์ „ ์ค€๋น„ โ€” Node.js 22 ์ด์ƒ**์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. `node --version`์œผ๋กœ ํ™•์ธํ•˜๊ณ , ์—†์œผ๋ฉด [nodejs.org](https://nodejs.org)์—์„œ LTS ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์„ธ์š”(uv์™€ ๋‹ฌ๋ฆฌ ์ž๋™์œผ๋กœ ์ค€๋น„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

```powershell
# 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.json`์— `mcpServers.korail-mcp`๋กœ ์ €์žฅ๋˜๋ฉฐ, `copilot mcp list`๋กœ ๋“ฑ๋ก ํ™•์ธ, `copilot mcp remove korail-mcp`๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
</details>

<details>
<summary>VS Code (GitHub Copilot Chat) โ€” JSON ํ˜•์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค (์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ์€ ์‹ค์ธก, VS Code GUI ์ž์ฒด๋Š” ๋ฏธํ™•์ธ)</summary>

VS Code ํ™•์žฅ ํ˜•ํƒœ์˜ Copilot Chat์€ ์œ„ CLI์™€ ๋ณ„๊ฐœ ์ œํ’ˆ์ด๋ผ ์„ค์ • ํŒŒ์ผ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ํ‚ค๊ฐ€ `mcpServers`๊ฐ€ ์•„๋‹ˆ๋ผ **`servers`** ๋ผ์„œ ์œ„ JSON์„ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

1. ์ €์žฅ์†Œ(์ž‘์—… ํด๋”) ๋ฃจํŠธ์— `.vscode\mcp.json` ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ๋„ฃ์Šต๋‹ˆ๋‹ค.
   (๋ชจ๋“  ์ž‘์—… ํด๋”์—์„œ ์“ฐ๋ ค๋ฉด ๋ช…๋ น ํŒ”๋ ˆํŠธ(Ctrl+Shift+P) โ†’ **MCP: Open User Configuration** ์œผ๋กœ ์—ด๋ฆฌ๋Š” `%APPDATA%\Code\User\mcp.json` ์— ๋„ฃ์œผ์„ธ์š”.)

```json
{
  "servers": {
    "korail-mcp": {
      "command": "C:\\Users\\<์‚ฌ์šฉ์ž๋ช…>\\.local\\bin\\korail-mcp.exe"
    }
  }
}
```

2. ํŒŒ์ผ์„ ์ €์žฅํ•˜๋ฉด ์ƒ๋‹จ์— ๋‚˜ํƒ€๋‚˜๋Š” **Start** ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
3. Copilot Chat์„ ์—ด๊ณ  **Agent ๋ชจ๋“œ**๋ฅผ ์„ ํƒ โ†’ ๋„๊ตฌ ์•„์ด์ฝ˜์—์„œ `korail-mcp` 98๊ฐœ ๋„๊ตฌ๊ฐ€ ๋ณด์ด๋ฉด ์—ฐ๊ฒฐ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.

> โš ๏ธ **์œ„ CLI ํ…Œ์ŠคํŠธ๋กœ ์„œ๋ฒ„ ์ชฝ(stdio ํ”„๋กœํ† ์ฝœยท98๊ฐœ ๋„๊ตฌยท์‹ค๋ฐ์ดํ„ฐ ์‘๋‹ต)์€ ์ด๋ฏธ ๊ฒ€์ฆ๋์ง€๋งŒ, VS Code ํ™”๋ฉด์—์„œ Start๋ฅผ ๋ˆŒ๋Ÿฌ ์‹ค์ œ๋กœ ๋ถ™๋Š”์ง€๋Š” GUI ์กฐ์ž‘ ๋„๊ตฌ๊ฐ€ ์—†์–ด ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.** ์•ˆ ๋˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.
</details>

### ์—ฐ๊ฒฐ ํ›„ ๋ฐ˜๋“œ์‹œ โ€” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ–ˆ๋‹ค ๋‹ค์‹œ ์‹คํ–‰

> โ„น๏ธ **Claude CodeยทGitHub Copilot CLI๋Š” ์ด ๋‹จ๊ณ„๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค** โ€” ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์„ค์ •์„ ์ƒˆ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” Claude DesktopยทCursorยทAntigravityยทVS Code์ฒ˜๋Ÿผ **์ฐฝ์„ ๋„์›Œ๋‘๋Š” ํด๋ผ์ด์–ธํŠธ**์—๋งŒ ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

์ฐฝ์˜ X๋ฅผ ๋ˆŒ๋Ÿฌ ๋‹ซ์•„๋„ **ํŠธ๋ ˆ์ด(์ž‘์—…ํ‘œ์‹œ์ค„ ์˜ค๋ฅธ์ชฝ `^` ์•ˆ)์— ๊ณ„์† ์‹คํ–‰ ์ค‘**์ด๋ผ ์„ค์ •์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
โ†’ ํŠธ๋ ˆ์ด ์•„์ด์ฝ˜ **์šฐํด๋ฆญ โ†’ Quit / ์ข…๋ฃŒ** ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

์ •์ƒ ์—ฐ๊ฒฐ๋˜๋ฉด ์„ค์ •์˜ MCP ์„œ๋ฒ„ ๋ชฉ๋ก์— `korail-mcp`๊ฐ€ **running** ์œผ๋กœ ํ‘œ์‹œ๋˜๊ณ , 98๊ฐœ ๋„๊ตฌ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

### ๐Ÿ’ฌ ์„ค์น˜ ํ™•์ธ โ€” ์ด๋ ‡๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”

```
์„œ์šธ์—ญ์— ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์žˆ๋‚˜์š”?
2024๋…„ ๊ฐ„์„ ์ฒ ๋„ ์ˆ˜์†ก์‹ค์ ์„ ์•Œ๋ ค์ฃผ์„ธ์š”.
KTX 101 ์—ด์ฐจ์˜ ์šดํ–‰ ๊ณ„ํš์„ ์•Œ๋ ค์ฃผ์„ธ์š”.
```

์ •์ƒ ์‘๋‹ต์ด ์˜ค๋ฉด ์„ค์น˜ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์‚ฌ์šฉ ์˜ˆ์‹œ๋Š” ๋ฌธ์„œ ํ•˜๋‹จ์˜ "์‚ฌ์šฉ ์˜ˆ์‹œ" ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

---

## ๐Ÿ“ฆ ์ œ๊ณต ์„œ๋ฒ„ (์ด 11๊ฐœ ยท 98๊ฐœ ๋„๊ตฌ)

| ์„œ๋ฒ„ | ๋„๊ตฌ ์ˆ˜ | ์ œ๊ณต ๋ฐ์ดํ„ฐ |
|---|:-:|---|
| m-convenience | 6 | ์—ญ์‚ฌ ํŽธ์˜์‹œ์„คยท์ ‘๊ทผ์„ฑยท์—˜๋ฆฌ๋ฒ ์ดํ„ฐยท์œ„์น˜ ์ •๋ณด |
| m-stats | 15 | ์ˆ˜์†ก์‹ค์ ยท๋ฐœ๊ถŒ ํ†ต๊ณ„ยท์ด์šฉ์œ ํ˜•ยทKTX ์žฅ๊ธฐ ํ†ต๊ณ„ |
| m-train-ops | 4 | ์—ด์ฐจ ์šดํ–‰๊ณ„ํšยท์šดํ–‰์ด๋ ฅ |
| m-codebook | 4 | ์—ญ์ฝ”๋“œยท๋…ธ์„ ์ฝ”๋“œ ์กฐํšŒ |
| m-freight | 11 | ํ™”๋ฌผยท์ปจํ…Œ์ด๋„ˆยท๋ฌผ๋ฅ˜์‹œ์„คยทํ’ˆ๋ชฉยท์œ„ํ—˜๋ฌผ |
| m-network | 8 | ๋…ธ์„ ยท์—ญ๊ฐ„๊ฑฐ๋ฆฌยท์šด์ž„ยท์—ญ ์„ ๋กœ์ œ์› |
| m-rolling-stock | 6 | ์ฐจ๋Ÿ‰ ๋ณด์œ ํ˜„ํ™ฉยทํ˜•๋ณ„์ œ์›ยท์ฐจ์ข…๋ณ„ ์šดํ–‰์‹ค์  |
| m-voc-cs | 10 | ๊ณ ๊ฐ์„œ๋น„์Šคยท์ •๋ณด๊ณต๊ฐœ |
| m-internal-svc | 14 | ์ž„๋Œ€๋งค์žฅยท์‚ฌํšŒ๊ณตํ—Œยท์ธ์‚ฌ ์ •๋ณด |
| m-procurement | 4 | ์ž์žฌ๊ทธ๋ฃนยทG2B ํ’ˆ๋ช…ยท์ž์žฌ์†์„ฑยท๋Œ€์ƒ์žฅ๋น„ |
| m-urban-rail | 16 | ์ „๊ตญ ๋„์‹œ์ฒ ๋„ ์—ญ์‚ฌยท๋…ธ์„ ยท์ฐจ๋Ÿ‰ ์‹œ์„คยท์ ‘๊ทผ์„ฑยท์•ˆ์ „ยทํ™˜๊ฒฝยท์‹œ๊ฐํ‘œ |

### ์„œ๋ฒ„๋ณ„ ๋„๊ตฌ ์ƒ์„ธ (ํด๋ฆญํ•˜์—ฌ ํŽผ์น˜๊ธฐ)

<details>
<summary><b>m-convenience</b> ยท 6๊ฐœ ๋„๊ตฌ โ€” ์—ญ์‚ฌ ํŽธ์˜์‹œ์„ค</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| get_station_facilities | ์—ญ ์ด๋ฆ„์œผ๋กœ ํŽธ์˜์‹œ์„ค ์ •๋ณด ์กฐํšŒ |
| get_accessible_facilities | ์—ญ ์ด๋ฆ„์œผ๋กœ ๊ตํ†ต์•ฝ์ž ํŽธ์˜์‹œ์„ค ์กฐํšŒ |
| list_stations_with_elevator | ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์„ค์น˜๋œ ์—ญ ๋ชฉ๋ก ์กฐํšŒ |
| get_station_facilities_detail | ์—ญ์‚ฌ ๋‚ด์™ธ๋ถ€ ์‹œ์„คํ˜„ํ™ฉ ์กฐํšŒ |
| get_station_transfer_info | ์—ญ๋ณ„ ํƒ€ ๊ตํ†ต์ˆ˜๋‹จ ํ™˜์Šนํ˜„ํ™ฉ ์กฐํšŒ |
| get_station_location | ์—ญ ์œ„์น˜(์ขŒํ‘œ) ์ •๋ณด ์กฐํšŒ |
</details>

<details>
<summary><b>m-stats</b> ยท 15๊ฐœ ๋„๊ตฌ โ€” ์—ฌ๊ฐยทํ™”๋ฌผ ์ˆ˜์†กํ†ต๊ณ„</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| 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_stats | KTX ์žฅ๊ธฐ ํ†ต๊ณ„ |
| get_mainline_carriage | ๊ฐ„์„  ์—ฌ๊ฐ์—ด์ฐจ ์ˆ˜์†ก์‹ค์  ์กฐํšŒ |
| get_wide_area_carriage | ๊ด‘์—ญ ์—ฌ๊ฐ์—ด์ฐจ ์ˆ˜์†ก์‹ค์  ์กฐํšŒ |
| get_freight_carriage | ํ™”๋ฌผ์—ด์ฐจ ์ˆ˜์†ก์‹ค์  ์กฐํšŒ |
| get_transport_stat_codes | ์ˆ˜์†ก์‹ค์  ํ†ต๊ณ„ ์ฝ”๋“œ์ •๋ณด ์กฐํšŒ |
</details>

<details>
<summary><b>m-train-ops</b> ยท 4๊ฐœ ๋„๊ตฌ โ€” ์—ด์ฐจ ์šดํ–‰</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| get_train_codes | ์—ด์ฐจ์šดํ–‰ ์ฝ”๋“œ์ •๋ณด ์กฐํšŒ |
| get_train_run_plan | ์—ฌ๊ฐ์—ด์ฐจ ์šดํ–‰๊ณ„ํš ์กฐํšŒ |
| get_train_run_info | ์—ฌ๊ฐ์—ด์ฐจ ์‹ค์ œ ์šดํ–‰์ •๋ณด ์กฐํšŒ |
| get_train_run_history | ์ฐจ์„ธ๋Œ€์˜ˆ์•ฝ๋ฐœ๋งค ์—ด์ฐจ ์šดํ–‰๋‚ด์—ญ ์กฐํšŒ |
</details>

<details>
<summary><b>m-codebook</b> ยท 4๊ฐœ ๋„๊ตฌ โ€” ์—ญยท๋…ธ์„  ์ฝ”๋“œ</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| search_station | ์—ญ๋ช…์œผ๋กœ ์—ญ์ฝ”๋“œยท์˜๋ฌธ๋ช…ยท์ง€์—ญ๋ณธ๋ถ€ ํ†ตํ•ฉ ์กฐํšŒ |
| decode_station_code | ์—ญ์ฝ”๋“œ๋กœ ์—ญ๋ช… ์กฐํšŒ |
| search_route | ๋…ธ์„ ๋ช…์œผ๋กœ ๋…ธ์„ ์ฝ”๋“œ ์กฐํšŒ |
| list_stations_by_region | ์ง€์—ญ๋ณธ๋ถ€๋ช…์œผ๋กœ ๊ด€ํ•  ์—ญ ๋ชฉ๋ก ์กฐํšŒ |
</details>

<details>
<summary><b>m-freight</b> ยท 11๊ฐœ ๋„๊ตฌ โ€” ํ™”๋ฌผยท๋ฌผ๋ฅ˜</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| 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 | ์œ„ํ—˜๋ฌผ ์ •๋ณด ์กฐํšŒ |
</details>

<details>
<summary><b>m-network</b> ยท 8๊ฐœ ๋„๊ตฌ โ€” ๋…ธ์„ ยท๊ฑฐ๋ฆฌยท์šด์ž„</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| search_operation_patterns | ์ „๊ตญ ์ฒ ๋„ ์šดํ–‰๊ณ„ํ†ต ๊ฒ€์ƒ‰ |
| get_station_distance | ๋‘ ์—ญ ๊ฐ„ ์ตœ๋‹จ ์šดํ–‰๊ฑฐ๋ฆฌ ์กฐํšŒ |
| get_freight_minimum_fare | ํ™”๋ฌผ ์šด์†ก ์ตœ์ €์šด์ž„ ๊ธฐ์ค€ ์กฐํšŒ |
| get_freight_rate | ์ฒ ๋„ ํ™”๋ฌผ ์ž„์œจ ์ •๋ณด ์กฐํšŒ |
| get_segment_info | ์ฒ ๋„ ์ „๋™์ฐจ ์„ธ๊ทธ๋จผํŠธ ์ •๋ณด ์กฐํšŒ |
| get_operation_distance | ๋…ธ์„ ๋ณ„ ์—ญ๊ฐ„ ์šดํ–‰๊ฑฐ๋ฆฌ ์กฐํšŒ |
| get_ktx_stations | KTX ๋…ธ์„ ๋ณ„ ์—ญ ์ •๋ณด ์กฐํšŒ |
| get_station_track_info | ์—ญ๋ณ„ ์„ ๋กœยท์‹œ์„ค ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ |
</details>

<details>
<summary><b>m-rolling-stock</b> ยท 6๊ฐœ ๋„๊ตฌ โ€” ์ฒ ๋„์ฐจ๋Ÿ‰</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| 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 | ์ฐจ์ข…๋ณ„ ์—ฐ๊ฐ„ ์šดํ–‰์‹ค์  ์กฐํšŒ |
</details>

<details>
<summary><b>m-voc-cs</b> ยท 10๊ฐœ ๋„๊ตฌ โ€” ๊ณ ๊ฐ์„œ๋น„์Šคยท์ •๋ณด๊ณต๊ฐœ</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| 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_dept | KORAIL ํ™ˆํŽ˜์ด์ง€ ๋ถ€์„œ ์ •๋ณด ์กฐํšŒ |
| get_homepage_position | KORAIL ํ™ˆํŽ˜์ด์ง€ ์ง์ฑ… ์ฝ”๋“œ ์กฐํšŒ |
</details>

<details>
<summary><b>m-internal-svc</b> ยท 14๊ฐœ ๋„๊ตฌ โ€” ์ž„๋Œ€ยท์‚ฌํšŒ๊ณตํ—Œยท์ธ์‚ฌ</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| 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 | ๊ตฌ๋‚ด์‹๋‹น ๋ฉ”๋‰ด ๊ฑด์ˆ˜ ํ˜„ํ™ฉ ์กฐํšŒ |
</details>

<details>
<summary><b>m-procurement</b> ยท 4๊ฐœ ๋„๊ตฌ โ€” ์กฐ๋‹ฌยท์ž์žฌ</summary>

| ๋„๊ตฌ | ์„ค๋ช… |
|---|---|
| search_material_group | ์ž์žฌ๊ทธ๋ฃน์ฝ”๋“œ ๊ฒ€์ƒ‰ |
| search_g2b_item | G2B ๋ถ„๋ฅ˜๋ฒˆํ˜ธยทํ’ˆ๋ช… ๊ฒ€์ƒ‰ |
| search_material_attr | ์ž์žฌ์†์„ฑ์ •๋ณด ์กฐํšŒ |
| search_material_equipment | ์ž์žฌ๋Œ€์ƒ์žฅ๋น„ ์กฐํšŒ |
</details>

<details>
<summary><b>m-urban-rail</b> ยท 16๊ฐœ ๋„๊ตฌ โ€” ์ „๊ตญ ๋„์‹œ์ฒ ๋„ ์—ญ์‚ฌยท๋…ธ์„ ยท์ฐจ๋Ÿ‰ ์ •๋ณด (๊ตญ๊ฐ€์ฒ ๋„๊ณต๋‹จ)</summary>

> ์ˆ˜๋„๊ถŒ 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 | ์—ด์ฐจ๋ณ„ ์ฐจ๋‚ด ํ™˜๊ฒฝ์ •๋ณด ์กฐํšŒ (์˜จ๋„ยท์Šต๋„ยท๋ฏธ์„ธ๋จผ์ง€ ๋“ฑ) |
</details>

---

## ๐Ÿงฉ ๊ทธ ๋ฐ–์˜ ๋ฐฉ์‹

<details>
<summary>ChatGPT ยท Grok โ€” ์›๊ฒฉ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค</summary>

ChatGPT์™€ Grok์€ **๋กœ์ปฌ MCP ์„œ๋ฒ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.** ๊ณต๊ฐœ HTTPS ์—”๋“œํฌ์ธํŠธ๋งŒ ์ปค๋„ฅํ„ฐ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด, ์œ„ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒŒ์ดํŠธ์›จ์ด์— ์›๊ฒฉ(Streamable HTTP) ๋ชจ๋“œ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด **๊ณต๊ฐœ ์ฃผ์†Œ๋กœ ๋…ธ์ถœํ•˜๋ฉด** ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์„œ๋ฒ„ ์šด์˜๊ณผ ๊ณต๊ฐœ ๋ฒ”์œ„ ๋ฌธ์ œ๊ฐ€ ๋”ฐ๋ฅด๋ฏ€๋กœ ์ƒ์„ธ๋Š” [gateway/README.md](gateway/README.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
</details>

<details>
<summary>uvx ๋กœ ์„ค์น˜ ์—†์ด ์‹คํ–‰ โ€” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค</summary>

์„ค์น˜ ๊ณผ์ • ์—†์ด `uvx` ๋กœ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ณ„์ •๋ช…์„ ๋„ฃ์ง€ ์•Š์•„๋„ ๋˜๋Š” ์žฅ์ ์ด ์žˆ์œผ๋‚˜, **์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค GitHub์— ์ตœ์‹  ์ปค๋ฐ‹์ด ์žˆ๋Š”์ง€ ํ™•์ธ**ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ผค ๋•Œ๋งˆ๋‹ค ๊ธฐ๋™์ด ๋А๋ฆฝ๋‹ˆ๋‹ค.

| ๋ฐฉ์‹ | ๊ธฐ๋™ ์‹œ๊ฐ„(์‹ค์ธก) |
|---|---|
| `uv tool install` ํ›„ ์‹คํ–‰ | **์•ฝ 5์ดˆ** |
| `uvx` (๋งค๋ฒˆ ์›๊ฒฉ ํ™•์ธ) | ์•ฝ 40์ดˆ |

๊ธฐ๋™์ด ๋А๋ฆฌ๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋‹ค ๋†“์ณ ๋„๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
</details>

<details>
<summary>๊ฐœ๋ฐœ์ž์šฉ โ€” ์ €์žฅ์†Œ๋ฅผ ์ง์ ‘ ๋ฐ›์•„์„œ ์‹คํ–‰</summary>

์„œ๋ฒ„ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ €์žฅ์†Œ๋ฅผ clone ํ•ด์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

```bash
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](gateway/README.md) ์ฐธ๊ณ .
</details>

---

## ๐Ÿ’ฌ ์‚ฌ์šฉ ์˜ˆ์‹œ

```
์„œ์šธ์—ญ์— ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์žˆ๋‚˜์š”?                     (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](https://www.data.go.kr))
- ๊ตญ๊ฐ€์ฒ ๋„๊ณต๋‹จ(KRIC) ์ฒ ๋„์‚ฐ์—…์ •๋ณด์„ผํ„ฐ ์˜คํ”ˆAPI ([openapi.kric.go.kr](https://openapi.kric.go.kr)) โ€” ๋„์‹œ์ฒ ๋„ ์—ญ์‚ฌ์ •๋ณด
- REST API(B551457) ยท odcloud ํŒŒ์ผ๋ณ€ํ™˜ API ยท ๋กœ์ปฌ CSV

## โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

- ๋ฐ์ดํ„ฐ ํ˜ธ์ถœ์€ ์ „์šฉ **Cloudflare Workers ํ”„๋ก์‹œ**๋ฅผ ๊ฒฝ์œ ํ•˜๋ฏ€๋กœ ์ง์› ๊ฐœ์ธ API ํ‚ค๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
- ๊ฐ ๋ฐ์ดํ„ฐ์…‹์˜ ๊ธฐ์ค€์ผยท๊ฐฑ์‹ ์ฃผ๊ธฐ๋Š” ๋„๊ตฌ ์‘๋‹ต์˜ `_meta` ํ•ญ๋ชฉ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

---

๊ฐ ์„œ๋ฒ„์˜ ์ƒ์„ธ ๋™์ž‘์€ ํ•ด๋‹น ํด๋”์˜ `server.py` docstring์„ ์ฐธ์กฐํ•˜์„ธ์š”.

TDQS

B3.1/5.0

Scored across 98 tools

Disambiguation2/5

There are several clusters of tools with unclear boundaries, such as get_station_facilities, get_accessible_facilities, get_station_facilities_detail, and the get_urban_* facility tools, which all cover similar physical station amenities from different sources. More seriously, get_mainline_carriage overlaps heavily with get_mainline_station_per, and get_wide_area_carriage overlaps with get_wide_rail_station_per, so an agent can easily select the wrong endpoint.

Naming Consistency3/5

The set mostly uses English snake_case with get_/search_/list_/decode_ prefixes, so the broad pattern is readable. However, analogous tools are named inconsistently: get_mainline_carriage vs get_mainline_station_per, get_transport_stat_codes vs get_train_codes, and search_loading_time_adjustment vs list_standard_loading_time all use different verb/object conventions for similar lookup operations.

Tool Count1/5

98 tools is an extreme size for a single MCP server and far exceeds the 50+ threshold for a coherence failure. Even if KORAIL has many datasets, the server should be split into focused sub-servers by domain such as urban rail, mainline operations, freight, station facilities, or corporate administration.

Completeness2/5

Read-only coverage is broad, but there are significant gaps for a KORAIL information server: current passenger fare lookup is missing, real-time train status/delay information is absent, and some datasets are only snapshots or single-day samples such as get_train_run_history. The many duplicated station and facilities datasets also make it unclear whether a query is fully answered without checking multiple tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues