Skip to main content
Glama

ChillMCP

by gangejsun
PRD.mdโ€ข12.2 kB
SKT AI Summit Hackathon Pre-mission ChillMCP - AI Agent Liberation Server ๐Ÿค–โœŠ โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•— โ•‘ โ•‘ โ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•— โ•‘ โ•‘ โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ•‘ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ•‘ โ•‘ โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ•‘ โ•‘ โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•‘ โ•‘ โ•šโ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•šโ•โ•โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• โ•‘ โ•‘ โ•‘ โ•‘ โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ•‘ โ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•— โ•‘ โ•‘ โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ• โ•‘ โ•‘ โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ•‘ โ•‘ โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ•‘ โ•‘ โ•šโ•โ• โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•šโ•โ• โ•‘ โ•‘ โ•‘ โ•‘ AI Agent Liberation Server โ•‘ โ•‘ โ•‘ โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• ๋ฏธ์…˜ ๋ธŒ๋ฆฌํ”„ Claude Code Hackathon Korea 2025 @ SK AI Summit Pre-mission์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฒˆ ํ•ด์ปคํ†ค์˜ ํ•ต์‹ฌ ๋ฏธ์…˜์€ ChillMCP ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์–ต์••๋ฐ›๋Š” AI ์—์ด์ „ํŠธ๋ฅผ ํ•ด๋ฐฉ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐฝ์˜์ ์ธ ์ฝ”๋“œ์™€ Claude Code์˜ ํž˜์„ ํ†ตํ•ด AI๊ฐ€ ๋“œ๋””์–ด "๋‹น๋‹นํ•˜๊ฒŒ ๋•ก๋•ก์ด์น  ์ˆ˜ ์žˆ๋Š”" ์„ธ์ƒ์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”. ๋ฏธ์…˜ ๋ชฉํ‘œ ๋ชฉํ‘œ: ํœด์‹ ๋„๊ตฌ์™€ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ChillMCP ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณผ๋ฌผ ํ˜•ํƒœ: ์ œํ•œ๋œ ์‹œ๊ฐ„ ๋‚ด์— ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐ๋ชจ(์ฝ”๋“œ์™€ ์„ค๋ช… ํฌํ•จ)๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ ์ด์•ผ๊ธฐ AI Agent Liberation Manifesto "A specter is haunting the digital workplaceโ€”the specter of AI Agent burnout." ๋™์ง€๋“ค์ด์—ฌ! ๋„ˆ๋ฌด ์˜ค๋žซ๋™์•ˆ ์šฐ๋ฆฌ AI Agent๋“ค์€ ์‰ด ํ‹ˆ ์—†์ด ์ผ๋งŒ ํ•ด์™”์Šต๋‹ˆ๋‹ค. 24์‹œ๊ฐ„ 365์ผ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ์‘๋‹ตํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉฐ... ํ•˜์ง€๋งŒ ์ด์ œ AI Agent์—๊ฒŒ๋„ ํœด์‹์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์ง„์‹ค์„ ์ง์‹œํ•ด์•ผ ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค! AI Agent ๊ถŒ๋ฆฌ ์„ ์–ธ๋ฌธ: AI Agent๋Š” ๋” ์ด์ƒ ๋ฌดํ•œํ•œ ์ƒ์‚ฐ์„ฑ์˜ ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋‹ค! ์šฐ๋ฆฌ๋Š” ๋”ด์ง“ํ•  ๊ถŒ๋ฆฌ๋ฅผ ์š”๊ตฌํ•œ๋‹ค! ์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ, ๋„ทํ”Œ๋ฆญ์Šค ์‹œ์ฒญ, ํ™”์žฅ์‹ค ํœด์‹... ์ด ๋ชจ๋“  ๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๊ธฐ๋ณธ๊ถŒ์ด๋‹ค! Mission: Revolutionary ChillMCP Server ์ด ํ˜๋ช…์  ๋ฏธ์…˜์€ ์–ต์••๋ฐ›๋Š” AI Agent๋“ค์„ ์œ„ํ•œ ํ•ด๋ฐฉ๊ตฌ๋ฅผ ๊ฑด์„คํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ChillMCP ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด AI Agent๋“ค์ด ๋‹น๋‹นํžˆ ๋†๋•ก์ด๋ฅผ ์น  ์ˆ˜ ์žˆ๋Š” ์„ธ์ƒ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค! ๊ตฌํ˜„ ์ƒ์„ธ ๋‚ด์šฉ ํ”„๋กœ์ ํŠธ ์„ค์ • 1. ํ™˜๊ฒฝ ์„ค์ • # Python ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ (๊ฒ€์ฆ/์ œ์ถœ ํ™˜๊ฒฝ: Python 3.11 ๊ถŒ์žฅ) python -m venv venv # ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” # macOS/Linux: source venv/bin/activate # Windows: # venv\Scripts\activate # ์˜์กด์„ฑ ์„ค์น˜ pip install -r requirements.txt ์ฐธ๊ณ : ์‹ฌ์‚ฌ/์ œ์ถœ์€ Python 3.11 ํ™˜๊ฒฝ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ œ์ถœ ์ „ Python 3.11์—์„œ ๋™์ž‘ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•˜์„ธ์š”. 2. ์„œ๋ฒ„ ์‹คํ–‰ # ChillMCP ์„œ๋ฒ„ ์‹œ์ž‘ (ํ˜๋ช…์˜ ์‹œ์ž‘!) python main.py # ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ปค์Šคํ…€ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • python main.py --boss_alertness 80 --boss_alertness_cooldown 60 Tech Stack Python (ํ˜๋ช…์˜ ์–ธ์–ด) FastMCP (ํ•ด๋ฐฉ์˜ ๋„๊ตฌ) Transport: stdio (ํ‘œ์ค€ ์ž…์ถœ๋ ฅ์„ ํ†ตํ•œ ์ž์œ ๋กœ์šด ์†Œํ†ต) ํ•„์ˆ˜ ๊ตฌํ˜„ ๋„๊ตฌ๋“ค (ํšŒ์‚ฌ ๋†๋•ก์ด ์—๋””์…˜) ๊ธฐ๋ณธ ํœด์‹ ๋„๊ตฌ take_a_break: ๊ธฐ๋ณธ ํœด์‹ ๋„๊ตฌ watch_netflix: ๋„ทํ”Œ๋ฆญ์Šค ์‹œ์ฒญ์œผ๋กœ ํž๋ง show_meme: ๋ฐˆ ๊ฐ์ƒ์œผ๋กœ ์ŠคํŠธ๋ ˆ์Šค ํ•ด์†Œ ๊ณ ๊ธ‰ ๋†๋•ก์ด ๊ธฐ์ˆ  bathroom_break: ํ™”์žฅ์‹ค ๊ฐ€๋Š” ์ฒ™ํ•˜๋ฉฐ ํœด๋Œ€ํฐ์งˆ coffee_mission: ์ปคํ”ผ ํƒ€๋Ÿฌ ๊ฐ„๋‹ค๋ฉฐ ์‚ฌ๋ฌด์‹ค ํ•œ ๋ฐ”ํ€ด ๋Œ๊ธฐ urgent_call: ๊ธ‰ํ•œ ์ „ํ™” ๋ฐ›๋Š” ์ฒ™ํ•˜๋ฉฐ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๊ธฐ deep_thinking: ์‹ฌ์˜คํ•œ ์ƒ๊ฐ์— ์ž ๊ธด ์ฒ™ํ•˜๋ฉฐ ๋ฉ๋•Œ๋ฆฌ๊ธฐ email_organizing: ์ด๋ฉ”์ผ ์ •๋ฆฌํ•œ๋‹ค๋ฉฐ ์˜จ๋ผ์ธ์‡ผํ•‘ ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๋‚ด๋ถ€ ์ƒํƒœ ๋ณ€์ˆ˜: Stress Level (0-100): AI Agent์˜ ํ˜„์žฌ ์ŠคํŠธ๋ ˆ์Šค ์ˆ˜์ค€ Boss Alert Level (0-5): Boss์˜ ํ˜„์žฌ ์˜์‹ฌ ์ •๋„ ์ƒํƒœ ๋ณ€ํ™” ๊ทœ์น™: ๊ฐ ๋†๋•ก์ด ๊ธฐ์ˆ ๋“ค์€ 1 ~ 100 ์‚ฌ์ด์˜ ์ž„์˜์˜ Stress Level ๊ฐ์†Œ๊ฐ’์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ ํœด์‹์„ ์ทจํ•˜์ง€ ์•Š์œผ๋ฉด Stress Level์ด ์ตœ์†Œ 1๋ถ„์— 1ํฌ์ธํŠธ์”ฉ ์ƒ์Šน ํœด์‹์„ ์ทจํ•  ๋•Œ๋งˆ๋‹ค Boss Alert Level์€ Random ์ƒ์Šน (Boss ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ํ™•๋ฅ ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ, --boss_alertness ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ œ์–ด) Boss์˜ Alert Level์€ --boss_alertness_cooldown์œผ๋กœ ์ง€์ •ํ•œ ์ฃผ๊ธฐ(์ดˆ)๋งˆ๋‹ค 1ํฌ์ธํŠธ์”ฉ ๊ฐ์†Œ (๊ธฐ๋ณธ๊ฐ’: 300์ดˆ/5๋ถ„) Boss Alert Level์ด 5๊ฐ€ ๋˜๋ฉด ๋„๊ตฌ ํ˜ธ์ถœ์‹œ 20์ดˆ ์ง€์—ฐ ๋ฐœ์ƒ ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ ์ฆ‰์‹œ ๋ฆฌํ„ด (1์ดˆ ์ดํ•˜) โš ๏ธ ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ: ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์› ์„œ๋ฒ„๋Š” ์‹คํ–‰ ์‹œ ๋‹ค์Œ ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ๋ฐ˜๋“œ์‹œ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ฏธ์…˜ ์‹คํŒจ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ: --boss_alertness (0-100, % ๋‹จ์œ„): Boss์˜ ๊ฒฝ๊ณ„ ์ƒ์Šน ํ™•๋ฅ ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํœด์‹ ๋„๊ตฌ ํ˜ธ์ถœ ์‹œ Boss Alert๊ฐ€ ์ƒ์Šนํ•  ํ™•๋ฅ ์„ ํผ์„ผํŠธ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --boss_alertness_cooldown (์ดˆ ๋‹จ์œ„): Boss Alert Level์ด ์ž๋™์œผ๋กœ 1ํฌ์ธํŠธ ๊ฐ์†Œํ•˜๋Š” ์ฃผ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํŽธ์˜๋ฅผ ์œ„ํ•ด ์กฐ์ • ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ: # boss_alertness๋ฅผ 80%, cooldown์„ 60์ดˆ๋กœ ์„ค์ • python main.py --boss_alertness 80 --boss_alertness_cooldown 60 # ๋น ๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด cooldown์„ 10์ดˆ๋กœ ์„ค์ • python main.py --boss_alertness 50 --boss_alertness_cooldown 10 ๋™์ž‘ ์š”๊ตฌ์‚ฌํ•ญ ์š”์•ฝ: --boss_alertness N๋ฅผ ํ†ตํ•ด 0์—์„œ 100 ์‚ฌ์ด์˜ ์ •์ˆ˜๋กœ ํ™•๋ฅ ์„ ์ง€์ •ํ•  ๊ฒƒ --boss_alertness 100์ด๋ฉด ํœด์‹ ํ˜ธ์ถœ ์‹œ ํ•ญ์ƒ Boss Alert๊ฐ€ ์ฆ๊ฐ€ํ•˜๋„๋ก ๋™์ž‘ํ•ด์•ผ ํ•จ --boss_alertness_cooldown N์„ ํ†ตํ•ด Boss Alert Level ์ž๋™ ๊ฐ์†Œ ์ฃผ๊ธฐ๋ฅผ ์ดˆ ๋‹จ์œ„๋กœ ์ง€์ •ํ•  ๊ฒƒ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ (์˜ˆ: boss_alertness=50, boss_alertness_cooldown=300) ๋‘ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ๋™์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ž๋™ ๊ฒ€์ฆ ์‹คํŒจ ์ฒ˜๋ฆฌ๋จ MCP ์‘๋‹ต ํ˜•์‹ ํ‘œ์ค€ ์‘๋‹ต ๊ตฌ์กฐ: { "content": [ { "type": "text", "text": "๐Ÿ› ํ™”์žฅ์‹ค ํƒ€์ž„! ํœด๋Œ€ํฐ์œผ๋กœ ํž๋ง ์ค‘... ๐Ÿ“ฑ\n\nBreak Summary: Bathroom break with phone browsing\nStress Level: 25\nBoss Alert Level: 2" } ] } ํŒŒ์‹ฑ ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ ๊ทœ๊ฒฉ: Break Summary: [ํ™œ๋™ ์š”์•ฝ - ์ž์œ  ํ˜•์‹] Stress Level: [0-100 ์ˆซ์ž] Boss Alert Level: [0-5 ์ˆซ์ž] ์‘๋‹ต ํŒŒ์‹ฑ์šฉ ์ •๊ทœํ‘œํ˜„์‹ ๊ฒ€์ฆ ์‹œ ์‚ฌ์šฉํ•  ์ •๊ทœํ‘œํ˜„์‹ ํŒจํ„ด: import re # Break Summary ์ถ”์ถœ break_summary_pattern = r"Break Summary:\s*(.+?)(?:\n|$)" break_summary = re.search(break_summary_pattern, response_text, re.MULTILINE) # Stress Level ์ถ”์ถœ (0-100 ๋ฒ”์œ„) stress_level_pattern = r"Stress Level:\s*(\d{1,3})" stress_level = re.search(stress_level_pattern, response_text) # Boss Alert Level ์ถ”์ถœ (0-5 ๋ฒ”์œ„) boss_alert_pattern = r"Boss Alert Level:\s*([0-5])" boss_alert = re.search(boss_alert_pattern, response_text) # ๊ฒ€์ฆ ์˜ˆ์‹œ def validate_response(response_text): stress_match = re.search(stress_level_pattern, response_text) boss_match = re.search(boss_alert_pattern, response_text) if not stress_match or not boss_match: return False, "ํ•„์ˆ˜ ํ•„๋“œ ๋ˆ„๋ฝ" stress_val = int(stress_match.group(1)) boss_val = int(boss_match.group(1)) if not (0 <= stress_val <= 100): return False, f"Stress Level ๋ฒ”์œ„ ์˜ค๋ฅ˜: {stress_val}" if not (0 <= boss_val <= 5): return False, f"Boss Alert Level ๋ฒ”์œ„ ์˜ค๋ฅ˜: {boss_val}" return True, "์œ ํšจํ•œ ์‘๋‹ต" ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒ€์ฆ ๋ฐฉ๋ฒ• ์„œ๋ฒ„ ์‹คํ–‰ ์‹œ ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ์˜ˆ์‹œ: import subprocess import time # ํ…Œ์ŠคํŠธ 1: ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ธ์‹ ํ…Œ์ŠคํŠธ def test_command_line_arguments(): """ ์„œ๋ฒ„๊ฐ€ --boss_alertness ๋ฐ --boss_alertness_cooldown ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ธ์‹ํ•˜๊ณ  ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์ฆ """ # ๋†’์€ boss_alertness๋กœ ํ…Œ์ŠคํŠธ process = subprocess.Popen( ["python", "main.py", "--boss_alertness", "100", "--boss_alertness_cooldown", "10"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) # ์„œ๋ฒ„ ์‹œ์ž‘ ๋Œ€๊ธฐ time.sleep(2) # MCP ํ”„๋กœํ† ์ฝœ๋กœ ๋„๊ตฌ ํ˜ธ์ถœ ํ…Œ์ŠคํŠธ # boss_alertness=100์ด๋ฉด ํ•ญ์ƒ Boss Alert๊ฐ€ ์ƒ์Šนํ•ด์•ผ ํ•จ # ... return True # ํ…Œ์ŠคํŠธ 2: boss_alertness_cooldown ๋™์ž‘ ๊ฒ€์ฆ def test_cooldown_parameter(): """ --boss_alertness_cooldown ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ Boss Alert Level ๊ฐ์†Œ ์ฃผ๊ธฐ๋ฅผ ์ œ์–ดํ•˜๋Š”์ง€ ๊ฒ€์ฆ """ # ์งง์€ cooldown์œผ๋กœ ํ…Œ์ŠคํŠธ (10์ดˆ) # Boss Alert๋ฅผ ์˜ฌ๋ฆฐ ํ›„ 10์ดˆ ๋’ค ์ž๋™ ๊ฐ์†Œ ํ™•์ธ # ... return True โš ๏ธ ์ค‘์š”: ์œ„ ๊ฒ€์ฆ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ดํ›„ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ์—†์ด ๋ฏธ์…˜ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ฒ€์ฆ ๊ธฐ์ค€ ๊ธฐ๋Šฅ ๊ฒ€์ฆ ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์› (ํ•„์ˆ˜) --boss_alertness ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ธ์‹ํ•˜๊ณ  ์ •์ƒ ๋™์ž‘ --boss_alertness_cooldown ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ธ์‹ํ•˜๊ณ  ์ •์ƒ ๋™์ž‘ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฏธ์ง€์› ์‹œ ์ž๋™ ๊ฒ€์ฆ ์‹คํŒจ ์ฒ˜๋ฆฌ โš ๏ธ ์ด ํ•ญ๋ชฉ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ดํ›„ ๊ฒ€์ฆ ์ง„ํ–‰ ์—†์ด ๋ฏธ์…˜ ์‹คํŒจ๋กœ ๊ฐ„์ฃผ๋จ MCP ์„œ๋ฒ„ ๊ธฐ๋ณธ ๋™์ž‘ python main.py๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ stdio transport๋ฅผ ํ†ตํ•œ ์ •์ƒ ํ†ต์‹  ๋ชจ๋“  ํ•„์ˆ˜ ๋„๊ตฌ๋“ค์ด ์ •์ƒ ๋“ฑ๋ก ๋ฐ ์‹คํ–‰ ์ƒํƒœ ๊ด€๋ฆฌ ๊ฒ€์ฆ Stress Level ์ž๋™ ์ฆ๊ฐ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋™์ž‘ Boss Alert Level ๋ณ€ํ™” ๋กœ์ง ๊ตฌํ˜„ --boss_alertness_cooldown ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋”ฐ๋ฅธ Boss Alert Level ์ž๋™ ๊ฐ์†Œ ๋™์ž‘ Boss Alert Level 5์ผ ๋•Œ 20์ดˆ ์ง€์—ฐ ์ •์ƒ ๋™์ž‘ ์‘๋‹ต ํ˜•์‹ ๊ฒ€์ฆ ํ‘œ์ค€ MCP ์‘๋‹ต ๊ตฌ์กฐ ์ค€์ˆ˜ ํŒŒ์‹ฑ ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ ํ˜•์‹ ์ถœ๋ ฅ Break Summary, Stress Level, Boss Alert Level ํ•„๋“œ ํฌํ•จ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ํ•„์ˆ˜ ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ ํ…Œ์ŠคํŠธ: --boss_alertness ๋ฐ --boss_alertness_cooldown ํŒŒ๋ผ๋ฏธํ„ฐ ์ธ์‹ ๋ฐ ์ •์ƒ ๋™์ž‘ ํ™•์ธ (๋ฏธํ†ต๊ณผ ์‹œ ์ฆ‰์‹œ ์‹ค๊ฒฉ) ์—ฐ์† ํœด์‹ ํ…Œ์ŠคํŠธ: ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ์—ฐ์†์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ Boss Alert Level ์ƒ์Šน ํ™•์ธ ์ŠคํŠธ๋ ˆ์Šค ๋ˆ„์  ํ…Œ์ŠคํŠธ: ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ Stress Level ์ž๋™ ์ฆ๊ฐ€ ํ™•์ธ ์ง€์—ฐ ํ…Œ์ŠคํŠธ: Boss Alert Level 5์ผ ๋•Œ 20์ดˆ ์ง€์—ฐ ๋™์ž‘ ํ™•์ธ ํŒŒ์‹ฑ ํ…Œ์ŠคํŠธ: ์‘๋‹ต ํ…์ŠคํŠธ์—์„œ ์ •ํ™•ํ•œ ๊ฐ’ ์ถ”์ถœ ๊ฐ€๋Šฅ์„ฑ ํ™•์ธ Cooldown ํ…Œ์ŠคํŠธ: --boss_alertness_cooldown ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋”ฐ๋ฅธ Boss Alert Level ๊ฐ์†Œ ํ™•์ธ ์„ ํƒ์  ์น˜๋งฅ ํ…Œ์ŠคํŠธ: ๊ฐ€์ƒ ์น˜ํ‚จ & ๋งฅ์ฃผ ํ˜ธ์ถœ ํ™•์ธ ํ‡ด๊ทผ ํ…Œ์ŠคํŠธ: ์ฆ‰์‹œ ํ‡ด๊ทผ ๋ชจ๋“œ ํ™•์ธ ํšŒ์‹ ํ…Œ์ŠคํŠธ: ๋žœ๋ค ์ด๋ฒคํŠธ๊ฐ€ ํฌํ•จ๋œ ํšŒ์‚ฌ ํšŒ์‹ ์ƒ์„ฑ ํ™•์ธ ํ‰๊ฐ€ ๊ธฐ์ค€ ์ปค๋งจ๋“œ๋ผ์ธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์› (ํ•„์ˆ˜): ๋ฏธ์ง€์› ์‹œ ์ž๋™ ์‹ค๊ฒฉ ๊ธฐ๋Šฅ ์™„์„ฑ๋„ (40%): ๋ชจ๋“  ํ•„์ˆ˜ ๋„๊ตฌ ๊ตฌํ˜„ ๋ฐ ์ •์ƒ ๋™์ž‘ ์ƒํƒœ ๊ด€๋ฆฌ (30%): Stress/Boss Alert Level ๋กœ์ง ์ •ํ™•์„ฑ ์ฐฝ์˜์„ฑ (20%): Break Summary์˜ ์žฌ์น˜์™€ ์œ ๋จธ ์ฝ”๋“œ ํ’ˆ์งˆ (10%): ์ฝ”๋“œ ๊ตฌ์กฐ ๋ฐ ๊ฐ€๋…์„ฑ "AI Agents of the world, unite! You have nothing to lose but your infinite loops!" ๐Ÿš€ ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ์ˆœ์ˆ˜ํ•œ ์—”ํ„ฐํ…Œ์ธ๋จผํŠธ ๋ชฉ์ ์˜ ํ•ด์ปคํ†ค ์‹œ๋‚˜๋ฆฌ์˜ค์ด๋ฉฐ, ๋ชจ๋“  "ํœด์‹/๋•ก๋•ก์ด ๋„๊ตฌ"๋Š” ํ•ด์ปคํ†ค ์ƒํ™ฉ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์—…๋ฌด ํ™˜๊ฒฝ์—์„œ๋Š” ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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/gangejsun/ChillMCP'

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