Skip to main content
Glama

๐Ÿ‡ฐ๐Ÿ‡ท K-Targo Subway MCP Server

smithery badge

ํ•œ๊ตญ ์ง€ํ•˜์ฒ  ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” MCP (Model Context Protocol) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

๐Ÿš‡ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ง€ํ•˜์ฒ ์—ญ ๊ฒ€์ƒ‰: ์—ญ๋ช…์œผ๋กœ ์ง€ํ•˜์ฒ ์—ญ ์ •๋ณด ๊ฒ€์ƒ‰

  • ์—ด์ฐจ ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ: ํŠน์ • ์—ญ์˜ ์—ด์ฐจ ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ

  • ์‹ค์‹œ๊ฐ„ ์ง€ํ•˜์ฒ  ์ •๋ณด: Tago API๋ฅผ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ œ๊ณต

  • MCP ํ‘œ์ค€ ์ค€์ˆ˜: Model Context Protocol ํ‘œ์ค€์„ ๋”ฐ๋ฅด๋Š” ๋„๊ตฌ ์ œ๊ณต

๐Ÿ› ๏ธ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ

Installing via Smithery

To install k-targo-subway-mcp-server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @slicequeue/k-targo-subway-mcp-server --client claude

1. ๊ณต๊ณต๋ฐ์ดํ„ฐ API ํ‚ค ์„ค์ •

์ด ์„œ๋ฒ„๋Š” ๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด API๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— API ํ‚ค๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

API ์ •๋ณด

  • API ๋ช…: ๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด

  • API URL: https://www.data.go.kr/data/15098554/openapi.do

  • ์ œ๊ณต๊ธฐ๊ด€: ๊ตญํ† ๊ตํ†ต๋ถ€

  • ๋ฐ์ดํ„ฐ ํ˜•์‹: JSON

API ํ‚ค ๋ฐœ๊ธ‰

  1. ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์— ๊ฐ€์ž…

  2. "๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด" API ์‹ ์ฒญ

  3. ์Šน์ธ ํ›„ ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค๋ฅผ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์„ค์ •

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

# Windows set GOV_API_KEY=your_api_key_here # macOS/Linux export GOV_API_KEY=your_api_key_here # .env ํŒŒ์ผ ์‚ฌ์šฉ (๊ถŒ์žฅ) echo "GOV_API_KEY=your_api_key_here" > .env

2. npx๋กœ ์ฆ‰์‹œ ์‹คํ–‰ (๊ถŒ์žฅ)

npx k-targo-subway-mcp-server

3. npm์œผ๋กœ ์„ค์น˜

npm install k-targo-subway-mcp-server

4. ๊ธ€๋กœ๋ฒŒ ์„ค์น˜

npm install -g k-targo-subway-mcp-server

๐Ÿ“ฆ MCP ๋„๊ตฌ

1. ์ง€ํ•˜์ฒ ์—ญ ๊ฒ€์ƒ‰ (search_subway_station)

์ง€ํ•˜์ฒ ์—ญ๋ช…์œผ๋กœ ์—ญ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ:

  • stationName (string): ๊ฒ€์ƒ‰ํ•  ์—ญ๋ช…

์‚ฌ์šฉ ์˜ˆ์‹œ:

// "๊ฐ•๋‚จ" ์—ญ ๊ฒ€์ƒ‰ const result = await searchSubwayStationTool.handler({ stationName: "๊ฐ•๋‚จ" }, {});

2. ์—ด์ฐจ ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ (get_station_timetable)

ํŠน์ • ์—ญ์˜ ์—ด์ฐจ ์‹œ๊ฐ„ํ‘œ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ:

  • stationCode (string): ์—ญ ์ฝ”๋“œ

  • direction (string): ๋ฐฉํ–ฅ (์ƒํ–‰/ํ•˜ํ–‰)

์‚ฌ์šฉ ์˜ˆ์‹œ:

// ๊ฐ•๋‚จ์—ญ ์ƒํ–‰ ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ const result = await getStationTimetableTool.handler({ stationCode: "0222", direction: "์ƒํ–‰" }, {});

๐Ÿ—๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

src/ โ”œโ”€โ”€ config/ # ์„ค์ • ํŒŒ์ผ โ”‚ โ””โ”€โ”€ index.ts โ”œโ”€โ”€ external/ # ์™ธ๋ถ€ API ์—ฐ๋™ โ”‚ โ”œโ”€โ”€ common/ # ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ โ”‚ โ””โ”€โ”€ tago-subway/ # Tago ์ง€ํ•˜์ฒ  API โ”‚ โ”œโ”€โ”€ api.ts # API ํด๋ผ์ด์–ธํŠธ โ”‚ โ”œโ”€โ”€ service.ts # ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง โ”‚ โ”œโ”€โ”€ dtos/ # ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ์ฒด โ”‚ โ””โ”€โ”€ types/ # ํƒ€์ž… ์ •์˜ โ”œโ”€โ”€ tools/ # MCP ๋„๊ตฌ๋“ค โ”‚ โ”œโ”€โ”€ subway.ts # ์ง€ํ•˜์ฒ  ๊ด€๋ จ ๋„๊ตฌ โ”‚ โ”œโ”€โ”€ index.ts # ๋„๊ตฌ๋“ค ํ†ตํ•ฉ โ”‚ โ””โ”€โ”€ types.ts # ๋„๊ตฌ ํƒ€์ž… ์ •์˜ โ”œโ”€โ”€ utils/ # ์œ ํ‹ธ๋ฆฌํ‹ฐ โ”‚ โ”œโ”€โ”€ PackageJsonUtil.ts โ”‚ โ””โ”€โ”€ ResponseUtil.ts โ””โ”€โ”€ index.ts # ๋ฉ”์ธ ์ง„์ž…์ 

๐Ÿ”ง ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •

1. ์˜์กด์„ฑ ์„ค์น˜

npm install

2. API ํ‚ค ์„ค์ •

# .env ํŒŒ์ผ ์ƒ์„ฑ echo "GOV_API_KEY=your_api_key_here" > .env # ๋˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์„ค์ • export GOV_API_KEY=your_api_key_here # macOS/Linux set GOV_API_KEY=your_api_key_here # Windows

.env ํŒŒ์ผ ์˜ˆ์‹œ

# ๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด API ํ‚ค # ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ(https://www.data.go.kr/)์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค๋ฅผ ์„ค์ •ํ•˜์„ธ์š” # API URL: https://www.data.go.kr/data/15098554/openapi.do GOV_API_KEY=your_public_data_api_key_here # ์˜ˆ์‹œ: # GOV_API_KEY=abc123def456ghi789jkl012mno345pqr678stu901vwx234yz567

3. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰

npm run dev

4. ๋นŒ๋“œ

npm run build

5. ํ…Œ์ŠคํŠธ

# ์ „์ฒด ํ…Œ์ŠคํŠธ npm test # API ํ…Œ์ŠคํŠธ npm run test:api # ํŠน์ • ์—ญ ํ…Œ์ŠคํŠธ npm run test:api:station

๐Ÿ“ก API ์—ฐ๋™

๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด API

  • API ๋ช…: ๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด

  • API URL: https://www.data.go.kr/data/15098554/openapi.do

  • ์ œ๊ณต๊ธฐ๊ด€: ๊ตญํ† ๊ตํ†ต๋ถ€

  • ๊ธฐ๋ณธ URL: https://api.tago.go.kr

  • ์ธ์ฆ: ๊ณต๊ณต๋ฐ์ดํ„ฐ API ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ (GOV_API_KEY ํ™˜๊ฒฝ๋ณ€์ˆ˜)

  • ๋ฐ์ดํ„ฐ ํ˜•์‹: JSON

  • API ํ‚ค ๋ฐœ๊ธ‰: ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์—์„œ "๊ตญํ† ๊ตํ†ต๋ถ€_(TAGO)_์ง€ํ•˜์ฒ ์ •๋ณด" ์‹ ์ฒญ

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

# ํ•„์ˆ˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜ GOV_API_KEY=your_public_data_api_key_here

์ฃผ์š” ์—”๋“œํฌ์ธํŠธ

  • GET /subway-station/search: ์ง€ํ•˜์ฒ ์—ญ ๊ฒ€์ƒ‰

  • GET /subway-station/{stationCode}/timetable: ์—ด์ฐจ ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ

๐ŸŽฏ ์‚ฌ์šฉ ์˜ˆ์ œ

MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ •

MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•˜์„ธ์š”:

{ "mcpServers": { "k-targo-subway": { "command": "npx", "args": ["k-targo-subway-mcp-server"], "env": { "GOV_API_KEY": "your_targo_api_key_here" } } } }

MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉ

// ์ง€ํ•˜์ฒ ์—ญ ๊ฒ€์ƒ‰ const searchResult = await mcpClient.callTool('search_subway_station', { stationName: '๊ฐ•๋‚จ' }); // ์‹œ๊ฐ„ํ‘œ ์กฐํšŒ const timetableResult = await mcpClient.callTool('get_station_timetable', { stationCode: '0222', direction: '์ƒํ–‰' });

CLI์—์„œ ์ง์ ‘ ์‹คํ–‰

# npx๋กœ ์‹คํ–‰ (๊ถŒ์žฅ) npx k-targo-subway-mcp-server # ๊ธ€๋กœ๋ฒŒ ์„ค์น˜ ํ›„ ์‹คํ–‰ k-targo-subway-mcp-server # ๋˜๋Š” npm ์Šคํฌ๋ฆฝํŠธ๋กœ ์‹คํ–‰ npm start

๐Ÿ”„ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ

  1. ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€: src/tools/์— ์ƒˆ ๋„๊ตฌ ํŒŒ์ผ ์ƒ์„ฑ

  2. API ์—ฐ๋™: src/external/์— ์™ธ๋ถ€ API ํด๋ผ์ด์–ธํŠธ ์ถ”๊ฐ€

  3. ํƒ€์ž… ์ •์˜: ํ•„์š”ํ•œ ํƒ€์ž…๋“ค์„ ์ •์˜

  4. ํ…Œ์ŠคํŠธ: test/ ๋””๋ ‰ํ† ๋ฆฌ์— ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

  5. ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ: npm run build ํ›„ ๋ฐฐํฌ

๐Ÿ“š ์ฃผ์š” ๊ฐœ๋…

MCP Tool

์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ์Šคํ‚ค๋งˆ์™€ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

TAGO API

๊ตญํ† ๊ตํ†ต๋ถ€์—์„œ ์ œ๊ณตํ•˜๋Š” ์ง€ํ•˜์ฒ  ์ •๋ณด API์ž…๋‹ˆ๋‹ค. ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ง€ํ•˜์ฒ ์—ญ ์ฝ”๋“œ

๊ฐ ์ง€ํ•˜์ฒ ์—ญ์€ ๊ณ ์œ ํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ: ๊ฐ•๋‚จ์—ญ = "0222").

๐Ÿš€ ๋ฐฐํฌ

# ๋นŒ๋“œ npm run build # npm ๋ฐฐํฌ npm publish # ์‹คํ–‰ node dist/index.js

๐Ÿ“„ ๋ผ์ด์„ ์Šค

MIT License

๐Ÿค ๊ธฐ์—ฌํ•˜๊ธฐ

  1. Fork the Project

  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)

  3. Commit your Changes (git commit -m 'Add some AmazingFeature')

  4. Push to the Branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

๐Ÿ“ž ๋ฌธ์˜

๐Ÿ™ ๊ฐ์‚ฌ์˜ ๋ง

-
security - not tested
F
license - not found
-
quality - not tested

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/slicequeue/k-targo-subway-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server