Skip to main content
Glama
joseph-kang777

FarmSubsidy Korea MCP

๐ŸŒพ FarmSubsidy Korea (๋†์—…๋ณด์กฐ๊ธˆ ์•Œ๋ฆฌ๋ฏธ) MCP

ํ•œ๊ตญ์˜ ๋†์—… ๊ด€๋ จ ๋ณด์กฐ๊ธˆยท์ง€์›๊ธˆ ๊ณต๊ณ ๋ฅผ ์ •๋ถ€ ์†Œ์Šค ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ํ†ตํ•ฉ(aggregation) ํ•ด์„œ ์ œ๊ณตํ•˜๋Š” MCP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์นด์นด์˜ค PlayMCP โ€” AGENTIC PLAYER 10 ๊ณต๋ชจ์ „ ์ถœํ’ˆ์ž‘.

  • ์ ‘์ˆ˜์ค‘/์ ‘์ˆ˜์˜ˆ์ •/๋งˆ๊ฐ์ž„๋ฐ• ๊ณต๊ณ ๋ฅผ ํ‚ค์›Œ๋“œยท์ง€์—ญยท์ƒํƒœ๋กœ ๊ฒ€์ƒ‰

  • ์ ‘์ˆ˜ ๋งˆ๊ฐ์ผยท์‹œ์ž‘์ผ์„ ํ†ก์บ˜๋ฆฐ๋” MCP(CreateEvent)์— ๋ฐ”๋กœ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋Š” ์ผ์ • ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ โ†’ ์•Œ๋ฆผ/์ผ์ • ๋“ฑ๋ก ์‹œ๋‚˜๋ฆฌ์˜ค

  • Streamable HTTP(stateless), MCP ์ŠคํŽ™ 2025-03-26+ ์ค€์ˆ˜, PlayMCP ์‹ฌ์‚ฌ ์š”๊ฑด(annotations 5์ข…, TextContent/Markdown, 24KB ์ œํ•œ, ์‘๋‹ต์†๋„) ๋ฐ˜์˜

๋ฐ์ดํ„ฐ ์†Œ์Šค

์†Œ์Šค

๋ฐฉ์‹

์ธ์ฆํ‚ค

๋‚ด์šฉ

๋†์—…e์ง€ (nongupez.go.kr)

REST/JSON

๋ถˆํ•„์š”

๋†์‹ํ’ˆ๋ถ€ ๋†๋ฆผ์‚ฌ์—… ํ†ตํ•ฉ ํฌํ„ธ โ€” ์—ฐ๋„๋ณ„ ์ „์ฒด ์‚ฌ์—…, ์ ‘์ˆ˜๊ธฐ๊ฐ„ยท์˜จ๋ผ์ธ์‹ ์ฒญ ์—ฌ๋ถ€ (ํŒœ๋ชจ๋‹์˜ ์›๋ณธ ์†Œ์Šค)

๋ณด์กฐ๊ธˆ24 (ํ–‰์•ˆ๋ถ€ ๊ณต๊ณต์„œ๋น„์Šค API)

REST/JSON

GOV24_API_KEY (data.go.kr, ์ž๋™์Šน์ธ)

์ค‘์•™๋ถ€์ฒ˜+์ง€์ž์ฒด ๊ณต๊ณต์„œ๋น„์Šค(ํ˜œํƒ) โ€” ์ง€์›๋Œ€์ƒ/๋‚ด์šฉ/์‹ ์ฒญ๊ธฐํ•œ ๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ

๊ธฐ์—…๋งˆ๋‹น (bizinfo.go.kr)

REST/JSON

BIZINFO_API_KEY (์ฆ‰์‹œ๋ฐœ๊ธ‰)

์‹ ์ฒญ๊ธฐ๊ฐ„์ด ๋ช…ํ™•ํ•œ ์ง€์›์‚ฌ์—… ๊ณต๊ณ  ์ŠคํŠธ๋ฆผ

๋†๋ฆผ์ถ•์‚ฐ์‹ํ’ˆ๋ถ€ ๊ณต์ง€ยท๊ณต๊ณ  RSS

RSS

๋ถˆํ•„์š”

๋ถ€์ฒ˜ ๊ณต๊ณ  ์›๋ฌธ ์‹ค์‹œ๊ฐ„

์ˆ˜์ง‘์€ ์„œ๋ฒ„ ๊ธฐ๋™ ์‹œ 1ํšŒ + 10๋ถ„ ์ฃผ๊ธฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ , tool ํ˜ธ์ถœ์€ ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ์—์„œ ์ฆ‰์‹œ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค(PlayMCP ์‘๋‹ต์†๋„ ๊ธฐ์ค€: ํ‰๊ท  100ms, p99 3s). ์ผ๋ถ€ ์†Œ์Šค ์žฅ์•  ์‹œ ๋‚˜๋จธ์ง€ ์†Œ์Šค๋กœ ๊ณ„์† ์„œ๋น„์Šคํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ณต ๋„๊ตฌ (6์ข…, ์ „๋ถ€ ์ฝ๊ธฐ ์ „์šฉ)

Tool

์„ค๋ช…

search_farm_subsidies

ํ‚ค์›Œ๋“œ/์ง€์—ญ/์ ‘์ˆ˜์ƒํƒœ ํ†ตํ•ฉ ๊ฒ€์ƒ‰ (D-day ํฌํ•จ)

get_subsidy_detail

ID๋กœ ์ƒ์„ธ ์กฐํšŒ (์ง€์›๋Œ€์ƒยท๋‚ด์šฉยท์‹ ์ฒญ ๋งํฌ)

get_closing_soon_subsidies

N์ผ ์ด๋‚ด ๋งˆ๊ฐ ์ž„๋ฐ• ๊ณต๊ณ  (๋งˆ๊ฐ์ผ์ˆœ)

get_upcoming_subsidies

์ ‘์ˆ˜ ์˜ˆ์ • ๊ณต๊ณ  (์‹œ์ž‘์ผ์ˆœ)

get_daily_briefing

์‹ ๊ทœ(3์ผ)/๋งˆ๊ฐ์ž„๋ฐ•(7์ผ)/์ ‘์ˆ˜์˜ˆ์ • ๋ฐ์ผ๋ฆฌ ๋ธŒ๋ฆฌํ•‘

build_calendar_events

๋งˆ๊ฐ์ผยท์‹œ์ž‘์ผ โ†’ ํ†ก์บ˜๋ฆฐ๋” CreateEvent ํ˜ธํ™˜ ์ผ์ • ํŽ˜์ด๋กœ๋“œ ์ƒ์„ฑ (๋ฏธ๋ฆฌ์•Œ๋ฆผ 1์ผ/7์ผ ์ „)

ํ†ก์บ˜๋ฆฐ๋” ์—ฐ๋™ ์‹œ๋‚˜๋ฆฌ์˜ค: ์‚ฌ์šฉ์ž๊ฐ€ "์Šค๋งˆํŠธํŒœ ๋ณด์กฐ๊ธˆ ๋งˆ๊ฐ์ผ ์บ˜๋ฆฐ๋”์— ๋“ฑ๋กํ•ด์ค˜"๋ผ๊ณ  ํ•˜๋ฉด, ์—์ด์ „ํŠธ๊ฐ€ โ‘  search_farm_subsidies โ†’ โ‘ก build_calendar_events โ†’ โ‘ข ํ†ก์บ˜๋ฆฐ๋” MCP์˜ CreateEvent๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ˜ธ์ถœํ•˜๋Š” MCP ์ฒด์ด๋‹์œผ๋กœ ์™„์„ฑ๋ฉ๋‹ˆ๋‹ค.

API ํ‚ค ๋ฐœ๊ธ‰ (๋‘˜ ๋‹ค ์ฆ‰์‹œ ๋ฐœ๊ธ‰, ๋ฌด๋ฃŒ)

  1. ๋ณด์กฐ๊ธˆ24: data.go.kr 15113968 โ†’ ๋กœ๊ทธ์ธ โ†’ "ํ™œ์šฉ์‹ ์ฒญ" (์ž๋™์Šน์ธ) โ†’ ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์ผ๋ฐ˜ ์ธ์ฆํ‚ค(Decoding) ๋ณต์‚ฌ โ†’ GOV24_API_KEY

  2. ๊ธฐ์—…๋งˆ๋‹น: API ์ƒ์„ธ ํŽ˜์ด์ง€ ํ•˜๋‹จ ํผ์—์„œ ์ •๋ณด ์ž…๋ ฅ ํ›„ ๋“ฑ๋ก โ†’ ํ™”๋ฉด/์ด๋ฉ”์ผ๋กœ ์ธ์ฆํ‚ค ์ˆ˜๋ น โ†’ BIZINFO_API_KEY

cp .env.example .env   # ํ‚ค ์ž…๋ ฅ

ํ‚ค๊ฐ€ ์—†์–ด๋„ ์„œ๋ฒ„๋Š” ๋œจ๊ณ  ๋†์‹ํ’ˆ๋ถ€ RSS ์†Œ์Šค๋งŒ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค(ํ•ด๋‹น ์†Œ์Šค๋Š” ์ ‘์ˆ˜๊ธฐ๊ฐ„ ์ •๋ณด๊ฐ€ ์ œํ•œ์ ).

๋กœ์ปฌ ์‹คํ–‰

npm install
npm run build
npm start        # http://localhost:8080/mcp (POST), /healthz
npm test         # ๋ณ„๋„ ํ„ฐ๋ฏธ๋„์—์„œ ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ (6๊ฐœ ๋„๊ตฌ ํ˜ธ์ถœ ๊ฒ€์ฆ)

๋ฐฐํฌ โ€” ์นด์นด์˜คํด๋ผ์šฐ๋“œ "PlayMCP in KC"

๊ณต๋ชจ์ „ ์˜ˆ์„ ์€ PlayMCP in KC(์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ ์„œ๋น„์Šค) ์‚ฌ์šฉ์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ์„  ์ ‘์ˆ˜ ๊ธฐ๊ฐ„(6/15~7/14)์—๋งŒ ์„œ๋ฒ„ ๋ฐœ๊ธ‰ ๊ฐ€๋Šฅ, ๊ณ„์ •๋‹น 2๋Œ€.

๋ฐฉ๋ฒ• A. Git ์†Œ์Šค ๋นŒ๋“œ (๊ถŒ์žฅ โ€” ๊ฐ€์žฅ ๊ฐ„๋‹จ)

  1. ์ด ํ”„๋กœ์ ํŠธ๋ฅผ GitHub ์ €์žฅ์†Œ์— push (Dockerfile ํฌํ•จ๋˜์–ด ์žˆ์Œ)

  2. PlayMCP in KC ์ฝ˜์†”์—์„œ Git URL + ๋ธŒ๋žœ์น˜ ์ž…๋ ฅ (private๋ฉด PAT ์ž…๋ ฅ)

  3. Status๊ฐ€ Active๊ฐ€ ๋˜๋ฉด Endpoint URL ๋ฐœ๊ธ‰

๋ฐฉ๋ฒ• B. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋“ฑ๋ก

docker build --platform linux/amd64 -t <dockerํ—ˆ๋ธŒID>/farm-subsidy-mcp:0.1.0 .   # ๋ฐ˜๋“œ์‹œ linux/amd64
docker push <dockerํ—ˆ๋ธŒID>/farm-subsidy-mcp:0.1.0

์ฝ˜์†”์—์„œ ํ˜ธ์ŠคํŠธ(docker.io)/์ด๋ฏธ์ง€๋ช…/ํƒœ๊ทธ ์ž…๋ ฅ.

ํ™˜๊ฒฝ๋ณ€์ˆ˜(GOV24_API_KEY, BIZINFO_API_KEY)๋Š” ๋ฐฐํฌ ์ฝ˜์†”์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์— ์ž…๋ ฅํ•˜์„ธ์š”.

PlayMCP ๋“ฑ๋ก ์ ˆ์ฐจ

  1. playmcp.kakao.com/console โ†’ "์ƒˆ๋กœ์šด MCP ์„œ๋ฒ„ ๋“ฑ๋ก"

  2. Endpoint URL ์ž…๋ ฅ (https://<๋ฐœ๊ธ‰๋„๋ฉ”์ธ>/mcp) โ†’ "์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ" ๋กœ tool ๋ชฉ๋ก fetch ํ™•์ธ

  3. MCP ์‹๋ณ„์žยท๋Œ€ํ™” ์˜ˆ์‹œ(starter messages)ยท๋Œ€ํ‘œ ์ด๋ฏธ์ง€ ์ž…๋ ฅ โ†’ ์ž„์‹œ ๋“ฑ๋ก์œผ๋กœ ์‹ค์ œ ๋Œ€ํ™” ํ…Œ์ŠคํŠธ

  4. "๋“ฑ๋ก ๋ฐ ์‹ฌ์‚ฌ ์š”์ฒญ" โ†’ ์Šน์ธ ํ›„ "๋‚˜์—๊ฒŒ๋งŒ ๊ณต๊ฐœ" โ†’ "์ „์ฒด ๊ณต๊ฐœ"๋กœ ๋ฐ˜๋“œ์‹œ ์ „ํ™˜

  5. ๊ณต๋ชจ์ „ ํŽ˜์ด์ง€ ํ•˜๋‹จ ๋ฒ„ํŠผ์œผ๋กœ ์˜ˆ์„  ์ฐธ์—ฌ ์ ‘์ˆ˜ (1ํšŒ๋งŒ ๊ฐ€๋Šฅ)

์‹ฌ์‚ฌ ์ผ์ • ์ฃผ์˜

  • ์‹ฌ์‚ฌ๋Š” ์˜์—…์ผ ์ตœ๋Œ€ 7์ผ (ํ‰๊ท  1~2์ผ). 7/7๊นŒ์ง€ ์‹ฌ์‚ฌ ์š”์ฒญํ•˜๋ฉด 7/10๊นŒ์ง€ ์‹ฌ์‚ฌ ์™„๋ฃŒ ๋ณด์žฅ โ€” ๋งˆ๊ฐ(7/14) ์ง์ „ ์š”์ฒญ์€ ์œ„ํ—˜.

๋“ฑ๋ก ์‹œ ์ž…๋ ฅ ์ถ”์ฒœ๊ฐ’

  • ๋Œ€ํ™” ์˜ˆ์‹œ: "์ด๋ฒˆ ์ฃผ์— ๋งˆ๊ฐ๋˜๋Š” ๋†์—… ๋ณด์กฐ๊ธˆ ์•Œ๋ ค์ค˜" / "์ „๋ถ ์Šค๋งˆํŠธํŒœ ์ง€์›์‚ฌ์—… ์ฐพ์•„์ค˜" / "์ฒญ๋…„๋† ๋ณด์กฐ๊ธˆ ๋งˆ๊ฐ์ผ ํ†ก์บ˜๋ฆฐ๋”์— ๋“ฑ๋กํ•ด์ค˜" / "์˜ค๋Š˜์˜ ๋†์—… ๋ณด์กฐ๊ธˆ ๋ธŒ๋ฆฌํ•‘"

์•„ํ‚คํ…์ฒ˜

src/
  index.ts        Express + Streamable HTTP (stateless, POST /mcp, GET /healthz)
  server.ts       MCP ๋„๊ตฌ 6์ข… ์ •์˜ (annotations, Markdown ์‘๋‹ต, 24KB ์บก)
  aggregate.ts    ๋ฉ€ํ‹ฐ์†Œ์Šค ์ˆ˜์ง‘ยท์ค‘๋ณต์ œ๊ฑฐยท์ •๋ ฌ + ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ฐฑ์‹ (10๋ถ„) + stale-while-revalidate
  sources/
    nongupez.ts   ๋†์—…e์ง€ ์‚ฌ์—…๊ฒ€์ƒ‰ API (์ธ์ฆ ๋ถˆํ•„์š”, JSON POST)
    gov24.ts      ๋ณด์กฐ๊ธˆ24 API (์„œ๋ฒ„์ธก ๋ถ„์•ผํ•„ํ„ฐ โ†’ ์‹คํŒจ ์‹œ ํด๋ผ์ด์–ธํŠธ ํ•„ํ„ฐ ํด๋ฐฑ)
    bizinfo.ts    ๊ธฐ์—…๋งˆ๋‹น API (๋†์—… ํ‚ค์›Œ๋“œ ํ•„ํ„ฐ)
    mafra.ts      ๋†์‹ํ’ˆ๋ถ€ RSS (์˜์กด์„ฑ ์—†๋Š” XML ํŒŒ์‹ฑ)
    keywords.ts   ๋†์—… ํŒ๋ณ„ ํ‚ค์›Œ๋“œ/๊ธฐ๊ด€ ์‚ฌ์ „
  util.ts         ๋‚ ์งœ ์ •๊ทœํ™”ยท๊ธฐ๊ฐ„ ํŒŒ์‹ฑยท์ƒํƒœ ๊ณ„์‚ฐยทHTML ์ œ๊ฑฐยทTTL ์บ์‹œ
  test/smoke.ts   MCP ํด๋ผ์ด์–ธํŠธ ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ

Latest Blog Posts

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/joseph-kang777/farm_subsidy_mcp'

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