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!" ð
볞 íë¡ì ížë ììí ìí°í
ìžëšŒíž 목ì ì íŽì»€í€ ìë늬ì€ìŽë©°, 몚ë "íŽì/ë¡ë¡ìŽ ë구"ë íŽì»€í€ ìí©ììë§ ì¬ì© ê°ë¥í©ëë€. ì€ì ì
묎 í겜ììë ì¬ì©ì ê¶ì¥íì§ ììµëë€.