๐Ÿ‡ฐ๐Ÿ‡ท **ํ•œ๊ตญ์–ด** ยท ๐Ÿ‡ฌ๐Ÿ‡ง [English](README.en.md) # 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 ํ˜•์‹์ด ๋‹ค๋ฆ„) |
Claude Desktop โ€” ํด๋”๊ฐ€ ์—†์„ ๋•Œ 1. ํƒ์ƒ‰๊ธฐ ์ฃผ์†Œ์ฐฝ์— `%APPDATA%` ์ž…๋ ฅ โ†’ Enter 2. `Claude` ํด๋”๊ฐ€ ์—†์œผ๋ฉด ์ง์ ‘ ๋งŒ๋“œ์„ธ์š” 3. ๊ทธ ์•ˆ์— `claude_desktop_config.json` ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์œ„ JSON์„ ๋„ฃ์œผ์„ธ์š” `AppData`๊ฐ€ ์•ˆ ๋ณด์ด๋ฉด ํƒ์ƒ‰๊ธฐ โ†’ ๋ณด๊ธฐ โ†’ **์ˆจ๊ธด ํ•ญ๋ชฉ**์„ ์ฒดํฌํ•˜์„ธ์š”.
Claude Code โ€” ์‹ค์ œ ๊ณ„์ •์œผ๋กœ ๋„๊ตฌ ํ˜ธ์ถœ๊นŒ์ง€ ์‹ค์ธก ์™„๋ฃŒ ํ„ฐ๋ฏธ๋„์—์„œ ์“ฐ๋Š” **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` ์—†์ด ์‹คํ–‰ํ•˜๋ฉด ์ฒซ ๋„๊ตฌ ํ˜ธ์ถœ ์‹œ ์Šน์ธ ์—ฌ๋ถ€๋ฅผ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค.
Cursor / Antigravity โ€” ํŒŒ์ผ์ด๋‚˜ ํด๋”๊ฐ€ ์—†์„ ๋•Œ `.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 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`๋กœ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
VS Code (GitHub Copilot Chat) โ€” JSON ํ˜•์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค (์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ์€ ์‹ค์ธก, VS Code GUI ์ž์ฒด๋Š” ๋ฏธํ™•์ธ) 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 ์กฐ์ž‘ ๋„๊ตฌ๊ฐ€ ์—†์–ด ํ™•์ธํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.** ์•ˆ ๋˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.
### ์—ฐ๊ฒฐ ํ›„ ๋ฐ˜๋“œ์‹œ โ€” ํด๋ผ์ด์–ธํŠธ๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ–ˆ๋‹ค ๋‹ค์‹œ ์‹คํ–‰ > โ„น๏ธ **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 | ์ „๊ตญ ๋„์‹œ์ฒ ๋„ ์—ญ์‚ฌยท๋…ธ์„ ยท์ฐจ๋Ÿ‰ ์‹œ์„คยท์ ‘๊ทผ์„ฑยท์•ˆ์ „ยทํ™˜๊ฒฝยท์‹œ๊ฐํ‘œ | ### ์„œ๋ฒ„๋ณ„ ๋„๊ตฌ ์ƒ์„ธ (ํด๋ฆญํ•˜์—ฌ ํŽผ์น˜๊ธฐ)
m-convenience ยท 6๊ฐœ ๋„๊ตฌ โ€” ์—ญ์‚ฌ ํŽธ์˜์‹œ์„ค | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | get_station_facilities | ์—ญ ์ด๋ฆ„์œผ๋กœ ํŽธ์˜์‹œ์„ค ์ •๋ณด ์กฐํšŒ | | get_accessible_facilities | ์—ญ ์ด๋ฆ„์œผ๋กœ ๊ตํ†ต์•ฝ์ž ํŽธ์˜์‹œ์„ค ์กฐํšŒ | | list_stations_with_elevator | ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์„ค์น˜๋œ ์—ญ ๋ชฉ๋ก ์กฐํšŒ | | get_station_facilities_detail | ์—ญ์‚ฌ ๋‚ด์™ธ๋ถ€ ์‹œ์„คํ˜„ํ™ฉ ์กฐํšŒ | | get_station_transfer_info | ์—ญ๋ณ„ ํƒ€ ๊ตํ†ต์ˆ˜๋‹จ ํ™˜์Šนํ˜„ํ™ฉ ์กฐํšŒ | | get_station_location | ์—ญ ์œ„์น˜(์ขŒํ‘œ) ์ •๋ณด ์กฐํšŒ |
m-stats ยท 15๊ฐœ ๋„๊ตฌ โ€” ์—ฌ๊ฐยทํ™”๋ฌผ ์ˆ˜์†กํ†ต๊ณ„ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | 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 | ์ˆ˜์†ก์‹ค์  ํ†ต๊ณ„ ์ฝ”๋“œ์ •๋ณด ์กฐํšŒ |
m-train-ops ยท 4๊ฐœ ๋„๊ตฌ โ€” ์—ด์ฐจ ์šดํ–‰ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | get_train_codes | ์—ด์ฐจ์šดํ–‰ ์ฝ”๋“œ์ •๋ณด ์กฐํšŒ | | get_train_run_plan | ์—ฌ๊ฐ์—ด์ฐจ ์šดํ–‰๊ณ„ํš ์กฐํšŒ | | get_train_run_info | ์—ฌ๊ฐ์—ด์ฐจ ์‹ค์ œ ์šดํ–‰์ •๋ณด ์กฐํšŒ | | get_train_run_history | ์ฐจ์„ธ๋Œ€์˜ˆ์•ฝ๋ฐœ๋งค ์—ด์ฐจ ์šดํ–‰๋‚ด์—ญ ์กฐํšŒ |
m-codebook ยท 4๊ฐœ ๋„๊ตฌ โ€” ์—ญยท๋…ธ์„  ์ฝ”๋“œ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | search_station | ์—ญ๋ช…์œผ๋กœ ์—ญ์ฝ”๋“œยท์˜๋ฌธ๋ช…ยท์ง€์—ญ๋ณธ๋ถ€ ํ†ตํ•ฉ ์กฐํšŒ | | decode_station_code | ์—ญ์ฝ”๋“œ๋กœ ์—ญ๋ช… ์กฐํšŒ | | search_route | ๋…ธ์„ ๋ช…์œผ๋กœ ๋…ธ์„ ์ฝ”๋“œ ์กฐํšŒ | | list_stations_by_region | ์ง€์—ญ๋ณธ๋ถ€๋ช…์œผ๋กœ ๊ด€ํ•  ์—ญ ๋ชฉ๋ก ์กฐํšŒ |
m-freight ยท 11๊ฐœ ๋„๊ตฌ โ€” ํ™”๋ฌผยท๋ฌผ๋ฅ˜ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | 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 | ์œ„ํ—˜๋ฌผ ์ •๋ณด ์กฐํšŒ |
m-network ยท 8๊ฐœ ๋„๊ตฌ โ€” ๋…ธ์„ ยท๊ฑฐ๋ฆฌยท์šด์ž„ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | 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 | ์—ญ๋ณ„ ์„ ๋กœยท์‹œ์„ค ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ |
m-rolling-stock ยท 6๊ฐœ ๋„๊ตฌ โ€” ์ฒ ๋„์ฐจ๋Ÿ‰ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | 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 | ์ฐจ์ข…๋ณ„ ์—ฐ๊ฐ„ ์šดํ–‰์‹ค์  ์กฐํšŒ |
m-voc-cs ยท 10๊ฐœ ๋„๊ตฌ โ€” ๊ณ ๊ฐ์„œ๋น„์Šคยท์ •๋ณด๊ณต๊ฐœ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | 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 ํ™ˆํŽ˜์ด์ง€ ์ง์ฑ… ์ฝ”๋“œ ์กฐํšŒ |
m-internal-svc ยท 14๊ฐœ ๋„๊ตฌ โ€” ์ž„๋Œ€ยท์‚ฌํšŒ๊ณตํ—Œยท์ธ์‚ฌ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | 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 | ๊ตฌ๋‚ด์‹๋‹น ๋ฉ”๋‰ด ๊ฑด์ˆ˜ ํ˜„ํ™ฉ ์กฐํšŒ |
m-procurement ยท 4๊ฐœ ๋„๊ตฌ โ€” ์กฐ๋‹ฌยท์ž์žฌ | ๋„๊ตฌ | ์„ค๋ช… | |---|---| | search_material_group | ์ž์žฌ๊ทธ๋ฃน์ฝ”๋“œ ๊ฒ€์ƒ‰ | | search_g2b_item | G2B ๋ถ„๋ฅ˜๋ฒˆํ˜ธยทํ’ˆ๋ช… ๊ฒ€์ƒ‰ | | search_material_attr | ์ž์žฌ์†์„ฑ์ •๋ณด ์กฐํšŒ | | search_material_equipment | ์ž์žฌ๋Œ€์ƒ์žฅ๋น„ ์กฐํšŒ |
m-urban-rail ยท 16๊ฐœ ๋„๊ตฌ โ€” ์ „๊ตญ ๋„์‹œ์ฒ ๋„ ์—ญ์‚ฌยท๋…ธ์„ ยท์ฐจ๋Ÿ‰ ์ •๋ณด (๊ตญ๊ฐ€์ฒ ๋„๊ณต๋‹จ) > ์ˆ˜๋„๊ถŒ 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 โ€” ์›๊ฒฉ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค ChatGPT์™€ Grok์€ **๋กœ์ปฌ MCP ์„œ๋ฒ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.** ๊ณต๊ฐœ HTTPS ์—”๋“œํฌ์ธํŠธ๋งŒ ์ปค๋„ฅํ„ฐ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด, ์œ„ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ดํŠธ์›จ์ด์— ์›๊ฒฉ(Streamable HTTP) ๋ชจ๋“œ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด **๊ณต๊ฐœ ์ฃผ์†Œ๋กœ ๋…ธ์ถœํ•˜๋ฉด** ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์„œ๋ฒ„ ์šด์˜๊ณผ ๊ณต๊ฐœ ๋ฒ”์œ„ ๋ฌธ์ œ๊ฐ€ ๋”ฐ๋ฅด๋ฏ€๋กœ ์ƒ์„ธ๋Š” [gateway/README.md](gateway/README.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
uvx ๋กœ ์„ค์น˜ ์—†์ด ์‹คํ–‰ โ€” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ์„ค์น˜ ๊ณผ์ • ์—†์ด `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์ดˆ | ๊ธฐ๋™์ด ๋А๋ฆฌ๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋‹ค ๋†“์ณ ๋„๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐœ๋ฐœ์ž์šฉ โ€” ์ €์žฅ์†Œ๋ฅผ ์ง์ ‘ ๋ฐ›์•„์„œ ์‹คํ–‰ ์„œ๋ฒ„ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ €์žฅ์†Œ๋ฅผ 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) ์ฐธ๊ณ .
--- ## ๐Ÿ’ฌ ์‚ฌ์šฉ ์˜ˆ์‹œ ``` ์„œ์šธ์—ญ์— ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์žˆ๋‚˜์š”? (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์„ ์ฐธ์กฐํ•˜์„ธ์š”.