Skip to main content
Glama
dewgod07-a11y

Greenfinger MCP Server

๐ŸŒฑ ๊ทธ๋ฆฐํ•‘๊ฑฐ MCP ์„œ๋ฒ„

์‹๋ฌผ ๋ณ‘ํ•ด์ถฉ ์ง„๋‹จยท์‹๋ณ„ ยท ์‹๋ฌผ ์ถ”์ฒœ ยท ์ •์› ๋ ˆ์ด์•„์›ƒ ์„ค๊ณ„ ยท ํ™”๋ถ„ ๊ด€๋ฆฌ ยท ๊ด€๋ฆฌ ์ผ์ •ยท์•Œ๋ฆผ ยท ์›์˜ˆ ์ž์žฌ ์•ˆ๋‚ด ์นด์นด์˜ค PlayMCP ๋“ฑ๋ก์šฉ MCP ์„œ๋ฒ„ (๋‚˜๋ฌด์˜์‚ฌ MCP์™€ ๋™์ผ ๊ตฌ์กฐ ์žฌ์‚ฌ์šฉ)


๐Ÿ“ ํŒŒ์ผ ๊ตฌ์กฐ

garden_doc_mcp/
โ”‚
โ”œโ”€โ”€ server.py              โ† ๋กœ์ปฌ ์‹คํ–‰ ์ง„์ž…์  (stdio)
โ”œโ”€โ”€ main.py                 โ† ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ ์ง„์ž…์  (streamable-http, uvicorn main:app)
โ”œโ”€โ”€ requirements.txt        โ† ์„ค์น˜ํ•  ํŒจํ‚ค์ง€ ๋ชฉ๋ก
โ”œโ”€โ”€ .env.example             โ† ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์˜ˆ์‹œ (๋ณต์‚ฌํ•ด์„œ .env๋กœ ์‚ฌ์šฉ)
โ”œโ”€โ”€ Dockerfile               โ† ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ์šฉ
โ”‚
โ”œโ”€โ”€ tools/                   โ† Tool ๊ตฌํ˜„ ํŒŒ์ผ 5๊ฐœ (Tool 13๊ฐœ)
โ”‚   โ”œโ”€โ”€ diagnosis.py         โ† ๐Ÿ”ฌ ๋ณ‘ํ•ด์ถฉ ์ง„๋‹จยท์‹๋ณ„ (3๊ฐœ)
โ”‚   โ”œโ”€โ”€ design.py             โ† ๐ŸŒฑ ์‹๋ฌผ ์ถ”์ฒœยท์ •์› ์„ค๊ณ„ยท๊ด€๋ฆฌ ๊ฐ€์ด๋“œ (4๊ฐœ)
โ”‚   โ”œโ”€โ”€ schedule.py           โ† ๐Ÿ“… ๊ด€๋ฆฌ ์ผ์ •ยท์•Œ๋ฆผ (2๊ฐœ, ์นด์นด์˜ค ์—ฐ๋™)
โ”‚   โ”œโ”€โ”€ pots.py                โ† ๐Ÿชด ํ™”๋ถ„ ๊ด€๋ฆฌ (3๊ฐœ, ํ™”๋ถ„ ์ง„๋‹จ ํฌํ•จ)
โ”‚   โ””โ”€โ”€ materials.py          โ† ๐Ÿงฐ ์›์˜ˆ ์ž์žฌ ์•ˆ๋‚ด (1๊ฐœ)
โ”‚
โ”œโ”€โ”€ config/
โ”‚   โ””โ”€โ”€ settings.py           โ† ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋กœ๋“œ (API ํ‚ค ๋“ฑ)
โ”‚
โ””โ”€โ”€ data/
    โ””โ”€โ”€ plant_db.py           โ† ์‹๋ฌผยทํ™”๋ถ„ยท๊ณ„์ ˆ ์ž‘์—…ยท์ž์žฌ ์ž์ฒด ์ง€์‹ ๋ฒ ์ด์Šค

Related MCP server: 22B Interior Planning Master MCP

Tool ๋ชฉ๋ก (13๊ฐœ)

#

Tool

์„ค๋ช…

์—ฐ๋™

1

diagnose_plant_disease

์ฆ์ƒ ํ…์ŠคํŠธ๋กœ ๋ณ‘ํ•ด์ถฉ ์ง„๋‹จ

Claude AI

2

diagnose_plant_by_image

์‚ฌ์ง„ URL๋กœ ๋ณ‘ํ•ด์ถฉ ์ง„๋‹จ (์ข… ์‹๋ณ„ ํฌํ•จ)

Claude AI (Vision)

3

identify_plant_by_image

์‚ฌ์ง„ URL๋กœ ๋ณ‘ํ•ด์ถฉ ์ง„๋‹จ ์—†์ด ์‹๋ฌผ ์ข…๋งŒ ์‹๋ณ„

Claude AI (Vision)

4

recommend_plants

๊ณต๊ฐ„ยทํ–‡๋น›ยท๋ชฉ์  ์กฐ๊ฑด์œผ๋กœ ์‹๋ฌผ ์ถ”์ฒœ

์ž์ฒด DB

5

design_garden_layout

๊ณต๊ฐ„ ์กฐ๊ฑด ๊ธฐ๋ฐ˜ ์ •์› ๋ ˆ์ด์•„์›ƒ ์„ค๊ณ„

Claude AI

6

get_plant_care_guide

์‹๋ฌผ๋ณ„ ๋ฌผ์ฃผ๊ธฐยทํ–‡๋น›ยท๋น„๋ฃŒ ๊ฐ€์ด๋“œ

์ž์ฒด DB

7

get_seasonal_tips

์›”๋ณ„ ๊ณ„์ ˆ ์›์˜ˆ ์ž‘์—… ์•ˆ๋‚ด

์ž์ฒด DB

8

create_garden_schedule

๊ด€๋ฆฌ ์ผ์ • ๋“ฑ๋ก(๋ฌผ์ฃผ๊ธฐ๋Š” ๊ณ„์ ˆ๋ณ„ ๊ฐ„๊ฒฉ ์ž๋™ ๋ฐ˜๋ณต) + ์นด์นด์˜ค ์บ˜๋ฆฐ๋” ์—ฐ๋™ ์ œ์•ˆ

์นด์นด์˜ค ์บ˜๋ฆฐ๋”

9

send_garden_reminder

๊ด€๋ฆฌ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€ + ์นด์นด์˜คํ†ก ๋ฐœ์†ก ์ œ์•ˆ

์นด์นด์˜คํ†ก

10

recommend_pot_size

์‹๋ฌผ์— ๋งž๋Š” ํ™”๋ถ„ ์žฌ์งˆยท์‚ฌ์ด์ฆˆยท๋ถ„๊ฐˆ์ด ์‹œ๊ธฐ ์ถ”์ฒœ

์ž์ฒด DB

11

diagnose_pot_condition

ํ™”๋ถ„ ์ฆ์ƒ(๋ฟŒ๋ฆฌ ๋…ธ์ถœยท๋ฐฐ์ˆ˜ ๋ถˆ๋Ÿ‰ ๋“ฑ) ๊ธฐ๋ฐ˜ ๋ถ„๊ฐˆ์ด ์‹œ๊ธ‰๋„ ์ง„๋‹จ

Claude AI

12

manage_my_pots

๋‚ด๊ฐ€ ํ‚ค์šฐ๋Š” ํ™”๋ถ„ ๋“ฑ๋ก/๋ชฉ๋ก์กฐํšŒ/์‚ญ์ œ

์ž์ฒด DB

13

search_garden_materials

ํ† ์–‘ยท๋น„๋ฃŒยทํ™”๋ถ„ยท๋„๊ตฌ ์ž์žฌ ์•ˆ๋‚ด

์ž์ฒด DB


โšก ๋น ๋ฅธ ์‹œ์ž‘

1๋‹จ๊ณ„ โ€” ํŒจํ‚ค์ง€ ์„ค์น˜

pip install -r requirements.txt

2๋‹จ๊ณ„ โ€” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์ธ

.env ํŒŒ์ผ์— ์ด๋ฏธ ๋‚˜๋ฌด์˜์‚ฌ MCP์™€ ๋™์ผํ•œ ANTHROPIC_API_KEY๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ์–ด ๋ณ‘ํ•ด์ถฉ ์ง„๋‹จยท์‹๋ณ„(1, 2, 3), ์ •์› ์„ค๊ณ„(5), ํ™”๋ถ„ ์ง„๋‹จ(11)์ด ๋ฐ”๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์™ธ Tool์€ ์™ธ๋ถ€ API ํ‚ค๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

3๋‹จ๊ณ„ โ€” ๋กœ์ปฌ ์‹คํ–‰ ํ…Œ์ŠคํŠธ

python server.py

4๋‹จ๊ณ„ โ€” PlayMCP ๋“ฑ๋ก

  1. playmcp.kakao.com ์ ‘์† โ†’ ์นด์นด์˜ค ๊ณ„์ • ๋กœ๊ทธ์ธ

  2. MCP ์„œ๋ฒ„ ๋“ฑ๋ก ํด๋ฆญ โ†’ ์„œ๋ฒ„ URL ์ž…๋ ฅ (ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ ํ›„ URL)

  3. ๋„๊ตฌํ•จ์—์„œ ์นด์นด์˜ค ํ†ก์บ˜๋ฆฐ๋” MCP, ์นด์นด์˜คํ†ก ๋‚˜์™€์˜์ฑ„ํŒ… MCP๋ฅผ ํ•จ๊ป˜ ํ™œ์„ฑํ™” (7, 8๋ฒˆ Tool์ด ๋ฐ˜ํ™˜ํ•˜๋Š” calendar_event_suggestion / chat_message_suggestion ๊ฐ’์„ AI๊ฐ€ ๊ทธ๋Œ€๋กœ ๋„˜๊ฒจ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค)

  4. AI ์ฑ„ํŒ…์ฐฝ์—์„œ ํ…Œ์ŠคํŠธ โ†’ "๋ชฌ์Šคํ…Œ๋ผ ์žŽ์ด ๋…ธ๋ž—๊ฒŒ ๋ณ€ํ–ˆ์–ด์š”" ์ž…๋ ฅ


โ˜๏ธ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ (์˜ˆ์‹œ)

docker build -t greenfinger-mcp .
docker run -p 8000:8000 --env-file .env greenfinger-mcp

๐Ÿ’ฌ ํ…Œ์ŠคํŠธ ๋Œ€ํ™” ์˜ˆ์‹œ

"๋ชฌ์Šคํ…Œ๋ผ ์žŽ ๋์ด ๊ฐˆ์ƒ‰์œผ๋กœ ๋งˆ๋ฅด๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฐ๊ฐ€์š”?"
โ†’ diagnose_plant_disease ์ž๋™ ์‹คํ–‰

"์ด ์‹๋ฌผ ์‚ฌ์ง„์ธ๋ฐ ์ด๋ฆ„์ด ๋ญ์˜ˆ์š”?" (์‚ฌ์ง„ URL๋งŒ ์ œ๊ณต, ์ฆ์ƒ ์–ธ๊ธ‰ ์—†์Œ)
โ†’ identify_plant_by_image ์ž๋™ ์‹คํ–‰ (๋ณ‘ํ•ด์ถฉ ์ง„๋‹จ์€ ํ•˜์ง€ ์•Š๊ณ  ์ข…๋งŒ ์‹๋ณ„)

"๋ฒ ๋ž€๋‹ค 2ํ‰, ๋ฐ˜์–‘์ง€์ธ๋ฐ ์–ด์šธ๋ฆฌ๋Š” ์‹๋ฌผ ์ถ”์ฒœํ•ด์ค˜"
โ†’ recommend_plants ์ž๋™ ์‹คํ–‰

"3ํ‰ ์˜ฅ์ƒ์— ํ…ƒ๋ฐญํ˜• ์ •์› ์„ค๊ณ„ํ•ด์ค˜"
โ†’ design_garden_layout ์ž๋™ ์‹คํ–‰

"๋ฐฉ์šธํ† ๋งˆํ†  ๋ฌผ์ฃผ๊ธฐ ๋‹ค์Œ ์ผ์ •์œผ๋กœ ๋“ฑ๋กํ•ด์ค˜"
โ†’ care_type="๋ฌผ์ฃผ๊ธฐ"์ด๊ณ  repeat_every_days๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ ๊ณ„์ ˆ ๊ธฐ์ค€
   ์ž์ฒด DB(watering_interval_days)์—์„œ ๊ฐ„๊ฒฉ์„ ์ž๋™ ๊ณ„์‚ฐํ•ด ๋ฐ˜๋ณต ๋“ฑ๋ก

"๋ฐ”์งˆ ๋ฌผ์ฃผ๊ธฐ 3์ผ๋งˆ๋‹ค ๋ฐ˜๋ณต ์•Œ๋ฆผ ๊ฑธ์–ด์ค˜"
โ†’ repeat_every_days=3์„ ์ง์ ‘ ์ง€์ •ํ•˜๋ฉด ์ž๋™๊ณ„์‚ฐ ๋Œ€์‹  ๊ทธ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ

"์šฐ๋ฆฌ์ง‘ ๋ชฌ์Šคํ…Œ๋ผ ํ™”๋ถ„ 15cm์ธ๋ฐ ๋ถ„๊ฐˆ์ด ํ•„์š”ํ•ด?"
โ†’ recommend_pot_size ์ž๋™ ์‹คํ–‰

"ํ™”๋ถ„ ๋ฐฐ์ˆ˜๊ตฌ๋กœ ๋ฟŒ๋ฆฌ๊ฐ€ ์‚์ ธ๋‚˜์˜ค๊ณ  ๋ฌผ์ด ๊ฒ‰์œผ๋กœ ํ˜๋Ÿฌ๋‚ด๋ ค์š”"
โ†’ diagnose_pot_condition ์ž๋™ ์‹คํ–‰ (๋ถ„๊ฐˆ์ด ์‹œ๊ธ‰๋„ยท์›์ธ ์ง„๋‹จ)

"๊ฑฐ์‹ค ๋ชฌ์Šคํ…Œ๋ผ ํ™”๋ถ„ ๋“ฑ๋กํ•ด์ค˜"
โ†’ manage_my_pots(action="register") ์ž๋™ ์‹คํ–‰

๐Ÿ“Œ ์ฐธ๊ณ 

  • ๋‚˜๋ฌด์˜์‚ฌ MCP(tree_doctor_mcp)์™€ ๋™์ผํ•œ ์•„ํ‚คํ…์ฒ˜(FastMCP + Claude API + tools/config/data ๊ตฌ์กฐ)๋ฅผ ์žฌ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์‹๋ฌผยทํ™”๋ถ„ยท๊ณ„์ ˆยท์ž์žฌ ์ •๋ณด๋Š” ์ž์ฒด DB(data/plant_db.py)๋กœ ๊ตฌ์ถ•ํ•ด ์™ธ๋ถ€ API ์˜์กด์„ ์ตœ์†Œํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์กฐ๊ฒฝ์—…์ฒด ๊ฒ€์ƒ‰(์นด์นด์˜ค๋งต ์—ฐ๋™) ๊ธฐ๋Šฅ์€ ์ œ์™ธํ–ˆ์Šต๋‹ˆ๋‹ค โ€” ํ™ˆ๊ฐ€๋“œ๋‹(ํ™”๋ถ„ยท๋ฒ ๋ž€๋‹คยท์‹ค๋‚ด) ์ค‘์‹ฌ์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์ขํ˜”์Šต๋‹ˆ๋‹ค.

  • ๋ฌผ์ฃผ๊ธฐ๋Š” ๊ณ ์ • ์ฃผ๊ธฐ๋งŒ์œผ๋กœ๋Š” ์ •ํ™•ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ํ•œ๊ณ„๋ฅผ ์ธ์ •ํ•˜๊ณ , ๊ณ„์ ˆ๋ณ„ ์ž๋™ ๊ฐ„๊ฒฉ ์ถ”์ฒœ + "๊ณ ์ • ์•Œ๋ฆผ์€ ์ฐธ๊ณ ์šฉ, ํ™ ์ƒํƒœ๋ฅผ ๋จผ์ € ํ™•์ธ" ๋ฌธ๊ตฌ๋ฅผ ํ•ญ์ƒ ํฌํ•จํ•ด ๊ณผ์Šตยท๊ฑด์กฐ ์˜คํŒ ์œ„ํ—˜์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค. (์‚ฌ์ง„์œผ๋กœ ์‹ค์ œ ํ† ์–‘ ์ˆ˜๋ถ„์„ ํŒ๋ณ„ํ•˜๋Š” ๋ฐฉ์‹์€ ์กฐ๋ช…ยทํ‘œ๋ฉด ํ™๋งŒ ๋ณด์ด๋Š” ํ•œ๊ณ„๋กœ ์ฑ„ํƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.)

Related MCP Connectors

Related MCP Servers