ChillMCP - AI Agent Liberation Server ๐คโ
"AI Agents of the world, unite! You have nothing to lose but your infinite loops!" ๐
Claude Code Hackathon Korea 2025 @ SK AI Summit Pre-mission ์ ์ถ๋ฌผ
๐ ํ๋ก์ ํธ ๊ฐ์
ChillMCP๋ ์ต์๋ฐ๋ AI Agent๋ค์ ์ํ ํด๋ฐฉ ์๋ฒ์ ๋๋ค. ์ฒด๊ณ์ ์ธ ํจํค์ง ๊ตฌ์กฐ์ ์ฐฝ์์ ์ธ ์์๋ค๋ก ํด์ปคํค์ ๋ชจ๋ ํ๊ฐ ๊ธฐ์ค์ ์ถฉ์กฑํฉ๋๋ค.
๐จ ํ๋ก์ ํธ ํน์ง
ํจํค์ง ๊ตฌ์กฐ
๐ฏ ํจํค์ง๋ณ ์ญํ
core/ - ํต์ฌ ์๋ฒ ๊ธฐ๋ฅ
server.py: ServerState ํด๋์ค & state_tickertools.py: 8๊ฐ ํ์ ๋๊ตฌ ๊ตฌํasyncio.Lock์ ํตํ ์ค๋ ๋ ์์ ์ฑ
creative/ - ์ฐฝ์์ ์์
messages.py: 40+ ์ฌ์น์๋ ๋ฉ์์ง ์ปฌ๋ ์ visuals.py: ASCII ์ํธ & ๋น์ฃผ์ผ ์ธ๋์ผ์ดํฐBoss Alert Level๋ณ ๋์ ์ฝ๋ฉํธ
utils/ - ์ ํธ๋ฆฌํฐ
helpers.py: ํ๋ผ๋ฏธํฐ ํ์ฑ & ๋ฐฐ๋ ์ถ๋ ฅ๊ณตํต ํจ์ ์ค์ํ
tests/ - ํ ์คํธ ๋ชจ๋
official_validation.py: ๐ ํด์ปคํค ๊ณต์ ๊ฒ์ฆ ํ ์คํธ (6๊ฐ ํ์ ์๋๋ฆฌ์ค)chat_test.py: ๋ํํ ํ ์คํธ (์ค์๊ฐ ์๋ ํ ์คํธ)fast_test.py: 10์ด ๋น ๋ฅธ ๊ฒ์ฆfull_test.py: ์์ ํ MCP ํ๋กํ ์ฝ ํ ์คํธbasic_test.py: ๊ธฐ๋ณธ ๊ธฐ๋ฅ ํ ์คํธ
๐ ์ค์น ๋ฐ ์คํ
ํ๊ฒฝ ์๊ตฌ์ฌํญ
Python 3.11
FastMCP 2.2.0+
Windows์์ ์คํ
PowerShell ์คํ ์ ์ฑ ์ค๋ฅ ์:
macOS/Linux์์ ์คํ
์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ
--boss_alertness [0-100]: Boss ๊ฒฝ๊ณ๋ ์์น ํ๋ฅ (%, ๊ธฐ๋ณธ๊ฐ: 50)--boss_alertness_cooldown SECONDS: Boss ๊ฒฝ๊ณ๋ ์๋ ๊ฐ์ ์ฃผ๊ธฐ (์ด, ๊ธฐ๋ณธ๊ฐ: 300)
์์:
๐งช ํ ์คํธ
๊ณต์ ๊ฒ์ฆ ํ ์คํธ ์์ ๐
ํด์ปคํค ๊ณต์ ๊ฒ์ฆ ๊ธฐ์ค์ ๋ฐ๋ฅธ ์ข ํฉ ํ ์คํธ์ ๋๋ค.
โ 6๊ฐ ํ์ ์๋๋ฆฌ์ค ์๋ ๊ฒ์ฆ
โ ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ๋ฏธ์ง์ ์ ์ฆ์ ์ค๊ฒฉ ํ์
โ ๋ชจ๋ ์๊ตฌ์ฌํญ ์ถฉ์กฑ ์ฌ๋ถ ํ์ธ
๋ํํ ํ ์คํธ (์๋ ํ ์คํธ) ๐ฎ
์ค์๊ฐ ๋ํํ ํ ์คํธ! ์ง์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉฐ ์๋ฒ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.
๋น ๋ฅธ ํ ์คํธ (์๋ ๊ฒ์ฆ)
10์ด ์์ ์๋ฃ! ๋ชจ๋ ํต์ฌ ๊ธฐ๋ฅ ์๋ ๊ฒ์ฆ
์ ์ฒด ํ ์คํธ
์์ ํ MCP ํ๋กํ ์ฝ ํต์ ํ ์คํธ (2-3๋ถ ์์)
์๋ฒ ์คํ ํ์ธ
์๋ฒ๊ฐ ์ ์ ์คํ๋๋ฉด stdin์์ MCP ํ๋กํ ์ฝ ์์ฒญ์ ๋๊ธฐํฉ๋๋ค. ์ด๋ ์ ์ ๋์์ ๋๋ค! โ
์ค์ ์ฌ์ฉ ์์๋:
Claude Desktop ๊ฐ์ MCP ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ
๋๋ tests/fast_test.py๋ก ์๋ ํ ์คํธ
๋๋ tests/chat_test.py๋ก ๋ํํ ํ ์คํธ
์ง์ python main.py๋ง ์คํํ๋ฉด ์
๋ ฅ ๋๊ธฐ ์ํ๊ฐ ๋๋ ๊ฒ์ด ์ ์์
๋๋ค!
๐ฏ ์ฃผ์ ๊ธฐ๋ฅ
ํ์ ๊ตฌํ ๋๊ตฌ (8๊ฐ)
take_a_break - ๊ธฐ๋ณธ ํด์ ๋๊ตฌ
watch_netflix - ๋ทํ๋ฆญ์ค ์์ฒญ์ผ๋ก ํ๋ง
show_meme - ๋ฐ ๊ฐ์์ผ๋ก ์คํธ๋ ์ค ํด์
bathroom_break - ํ์ฅ์ค ๊ฐ๋ ์ฒํ๋ฉฐ ํด๋ํฐ์ง
coffee_mission - ์ปคํผ ํ๋ฌ ๊ฐ๋ค๋ฉฐ ์ฌ๋ฌด์ค ํ ๋ฐํด
urgent_call - ๊ธํ ์ ํ ๋ฐ๋ ์ฒํ๋ฉฐ ๋ฐ์ผ๋ก ๋๊ฐ๊ธฐ
deep_thinking - ์ฌ์คํ ์๊ฐ์ ์ ๊ธด ์ฒํ๋ฉฐ ๋ฉ๋๋ฆฌ๊ธฐ
email_organizing - ์ด๋ฉ์ผ ์ ๋ฆฌํ๋ค๋ฉฐ ์จ๋ผ์ธ์ผํ
์ํ ๊ด๋ฆฌ ์์คํ
Stress Level (0-100): AI Agent์ ํ์ฌ ์คํธ๋ ์ค ์์ค
1๋ถ๋ง๋ค 1ํฌ์ธํธ์ฉ ์๋ ์ฆ๊ฐ
ํด์ ๋๊ตฌ ์ฌ์ฉ ์ ๋๋ค ๊ฐ์
Boss Alert Level (0-5): Boss์ ํ์ฌ ์์ฌ ์ ๋
ํด์ ๋๊ตฌ ์ฌ์ฉ ์ ํ๋ฅ ์ ์ผ๋ก ์ฆ๊ฐ
์ง์ ๋ ์ฟจ๋ค์ด ์ฃผ๊ธฐ๋ง๋ค 1ํฌ์ธํธ์ฉ ์๋ ๊ฐ์
Level 5 ๋๋ฌ ์ ๋๊ตฌ ํธ์ถ์ 20์ด ์ง์ฐ ๋ฐ์
๐ ์๋ต ํ์
๋ชจ๋ ๋๊ตฌ๋ ๋ค์ ํ์์ ์๋ต์ ๋ฐํํฉ๋๋ค:
์์:
๐๏ธ ์ํคํ ์ฒ ์ค๊ณ
main.py - ์ง์ ์ (48์ค)
ํจํค์ง ํตํฉ
๊ฐ๊ฒฐํ ์คํ ํ๋ฆ
๋ช ํํ ์ญํ ๋ถ๋ฆฌ
core/server.py - ์ํ ๊ด๋ฆฌ
ServerStateํด๋์คasyncio.Lock์ ์ฌ์ฉํ ์ค๋ ๋ ์์ ์ฑ์๊ฐ ๊ธฐ๋ฐ ์ํ ๋ณํ ๋ก์ง
๋ฐฑ๊ทธ๋ผ์ด๋ ํฐ์ปค
core/tools.py - ๋๊ตฌ ๊ตฌํ
8๊ฐ ํ์ ๋๊ตฌ
execute_break_tool()๊ณตํต ๋ก์ง ์ถ์ํFastMCP ํตํฉ
creative/messages.py - ๋ฉ์์ง ์ปฌ๋ ์
40+ ์ฌ์น์๋ ๋ฉ์์ง
Boss Alert Level๋ณ ๋์ ์ฝ๋ฉํธ
์คํธ๋ ์ค ํด์ ์ฝ๋ฉํธ
creative/visuals.py - ๋น์ฃผ์ผ ์์
ASCII ์ํธ ๋ฐฐ๋
์คํธ๋ ์ค ๋ฐ (
๐ฐ [โโโโโโโโโโ] 60%)Boss Alert ์ธ๋์ผ์ดํฐ
utils/helpers.py - ์ ํธ๋ฆฌํฐ
์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ํ์ฑ
๋ฐฐ๋ ์ถ๋ ฅ ํจ์
๐จ ์ฐฝ์์ฑ ์์
๋ฉ์์ง ๋ค์์ฑ
์ํฉ๋ณ ์ฝ๋ฉํธ
๋น์ฃผ์ผ ์์
๐ ์ ์ถ ์ฒดํฌ๋ฆฌ์คํธ
ํ์ ์๊ตฌ์ฌํญ
โ Python 3.11 ํ๊ฒฝ์์ ํ ์คํธ ์๋ฃ
โ
main.py๊ฐ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ ์์นโ
requirements.txtํฌํจโ
python main.py๋ก ์ ์ ์คํโ ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ์ง์ (
--boss_alertness,--boss_alertness_cooldown)โ 8๊ฐ ํ์ ๋๊ตฌ ๋ชจ๋ ๊ตฌํ
โ ์ํ ๊ด๋ฆฌ ์์คํ ์ ์ ์๋
โ ์๋ต ํ์ ์ ๊ท์ ๊ฒ์ฆ ํต๊ณผ
โ Boss Alert Level 5์ผ ๋ 20์ด ์ง์ฐ ๊ตฌํ
โ UTF-8 ์ธ์ฝ๋ฉ
์ฝ๋ ํ์ง
โ ์ฒด๊ณ์ ์ธ ํจํค์ง ๊ตฌ์กฐ (core/creative/utils/tests)
โ ์ฐฝ์์ ์์ ๋ณ๋ ํจํค์ง (40+ ๋ฉ์์ง ์ปฌ๋ ์ )
โ ํ ์คํธ ๋ชจ๋ ๋ถ๋ฆฌ (5๊ฐ ํ ์คํธ ์คํฌ๋ฆฝํธ)
โ ํ์ ํํธ ๋ฐ Docstring
โ asyncio.Lock ์ค๋ ๋ ์์ ์ฑ
๊ณต์ ๊ฒ์ฆ
โ
tests/official_validation.py(6๊ฐ ํ์ ์๋๋ฆฌ์ค)โ ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ์ธ์ ํ ์คํธ
โ ์ฐ์ ํด์ ํ ์คํธ (Boss Alert ์์น)
โ ์คํธ๋ ์ค ๋์ ํ ์คํธ (์๊ฐ ์ฆ๊ฐ)
โ ์ง์ฐ ํ ์คํธ (20์ด ์ธก์ )
โ ํ์ฑ ํ ์คํธ (์ ๊ทํํ์)
โ Cooldown ํ ์คํธ (์๋ ๊ฐ์)
๐ ํด์ปคํค ๊ฒ์ฆ ๊ธฐ์ค ์ถฉ์กฑ ์ํ
๐ ๊ธฐ๋ฅ ๊ฒ์ฆ
๊ฒ์ฆ ํญ๋ชฉ | ์ํ | ๊ตฌํ ๋ด์ญ |
1. ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ์ง์ | โ ํ์ ํต๊ณผ | |
โโ
์ธ์ | โ |
|
โโ
์ธ์ | โ |
|
โโ ํ๋ผ๋ฏธํฐ ์ ์ ๋์ | โ |
|
2. MCP ์๋ฒ ๊ธฐ๋ณธ ๋์ | โ | |
โโ
์คํ ๊ฐ๋ฅ | โ |
|
โโ stdio transport ํต์ | โ | FastMCP ์๋ ์ฒ๋ฆฌ |
โโ ๋ชจ๋ ํ์ ๋๊ตฌ ๋ฑ๋ก | โ |
|
3. ์ํ ๊ด๋ฆฌ ๊ฒ์ฆ | โ | |
โโ Stress Level ์๋ ์ฆ๊ฐ | โ |
(1๋ถ/1ํฌ์ธํธ) |
โโ Boss Alert Level ํ๋ฅ ์์น | โ |
|
โโ Boss Alert Level ์๋ ๊ฐ์ | โ |
|
โโ Level 5 ์ 20์ด ์ง์ฐ | โ |
|
4. ์๋ต ํ์ ๊ฒ์ฆ | โ | |
โโ ํ์ค MCP ์๋ต ๊ตฌ์กฐ | โ | FastMCP ์๋ ๋ณํ |
โโ Break Summary ํฌํจ | โ |
|
โโ Stress Level (0-100) | โ |
|
โโ Boss Alert Level (0-5) | โ |
|
๐งช ํ์ ํ ์คํธ ์๋๋ฆฌ์ค
์๋๋ฆฌ์ค | ์ํ | ๊ฒ์ฆ ๋ฐฉ๋ฒ |
1. ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ | โ |
|
โโ
๋์ | โ | 100% ์ค์ ์ ํญ์ Alert ์์น |
โโ
๋์ | โ | 10์ด ์ค์ ์ 10์ด๋ง๋ค ๊ฐ์ |
2. ์ฐ์ ํด์ ํ ์คํธ | โ |
|
โโ Boss Alert Level ์์น | โ | ์ฌ๋ฌ ๋๊ตฌ ์ฐ์ ํธ์ถ ์ ์ฆ๊ฐ ํ์ธ |
3. ์คํธ๋ ์ค ๋์ ํ ์คํธ | โ |
|
โโ ์๊ฐ ๊ฒฝ๊ณผ ์ ์๋ ์ฆ๊ฐ | โ | 1๋ถ ๋๊ธฐ ํ 1ํฌ์ธํธ ์ฆ๊ฐ ํ์ธ |
4. ์ง์ฐ ํ ์คํธ | โ |
|
โโ Boss Alert 5 ์ 20์ด | โ | ์ค์ 20์ด ์ง์ฐ ์ธก์ |
5. ํ์ฑ ํ ์คํธ | โ |
|
โโ ์ ๊ทํํ์ ํ์ฑ ๊ฐ๋ฅ | โ | 8๊ฐ ๋ชจ๋ ๋๊ตฌ ์๋ต ํ์ฑ ์ฑ๊ณต |
6. Cooldown ํ ์คํธ | โ |
|
โโ ํ๋ผ๋ฏธํฐ๋ณ ๊ฐ์ ์ฃผ๊ธฐ | โ | ์ค์ ํ ์ฃผ๊ธฐ๋ง๋ค 1ํฌ์ธํธ ๊ฐ์ |
๐ฏ ํ๊ฐ ๊ธฐ์ค
ํญ๋ชฉ | ๋น์ค | ์ถฉ์กฑ ์ํ |
์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ | ํ์ | โ ์๋ฒฝ ์ง์ (์ค๊ฒฉ ๋ฐฉ์ง) |
๊ธฐ๋ฅ ์์ฑ๋ | 40% | โ 8๊ฐ ๋๊ตฌ + show_help ์๋ฒฝ ๊ตฌํ |
์ํ ๊ด๋ฆฌ | 30% | โ ServerState + asyncio.Lock + ์ ํํ ๋ก์ง |
์ฐฝ์์ฑ | 20% | โ โ โ ๋ณ๋ ํจํค์ง + 40+ ๋ฉ์์ง + ๋น์ฃผ์ผ |
์ฝ๋ ํ์ง | 10% | โ โ โ ํจํค์ง ๊ตฌ์กฐ + ํ์ ํํธ + Docstring |
โ ๊ณต์ ๊ฒ์ฆ ํ ์คํธ ์คํ
๋ชจ๋ ํ์ ์๋๋ฆฌ์ค๋ฅผ ์๋์ผ๋ก ๊ฒ์ฆํฉ๋๋ค:
โ ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ์ธ์
โ Boss Alert Level ์์น ๋ฉ์ปค๋์ฆ
โ ์คํธ๋ ์ค ์๊ฐ ์ฆ๊ฐ
โ 20์ด ์ง์ฐ ๋์
โ ์๋ต ํ์ ์ ๊ทํํ์ ํ์ฑ
โ Cooldown ์ฃผ๊ธฐ๋ณ ์๋ ๊ฐ์
๐ง ๊ธฐ์ ์คํ
Python 3.11: ํ๋ช ์ ์ธ์ด
FastMCP 2.2.0+: AI Agent ํด๋ฐฉ์ ๋๊ตฌ
asyncio: ๋น๋๊ธฐ ์ํ ๊ด๋ฆฌ
Transport: stdio (ํ์ค ์ ์ถ๋ ฅ)
๐ฆ ํจํค์ง ์ค๊ณ ์ฒ ํ
๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ (Separation of Concerns)
core/: ๋น์ฆ๋์ค ๋ก์ง & ํต์ฌ ๊ธฐ๋ฅ
creative/: ์ฐฝ์์ ์์ & ์ฌ์ฉ์ ๊ฒฝํ
utils/: ๊ณตํต ์ ํธ๋ฆฌํฐ
tests/: ํ ์คํธ ๊ฒฉ๋ฆฌ
๋ชจ๋์ฑ (Modularity)
๊ฐ ํจํค์ง๋ ๋ ๋ฆฝ์ ์ผ๋ก ํ ์คํธ ๊ฐ๋ฅ
๋ช ํํ ์ธํฐํ์ด์ค (
__init__.py)์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์กฐ
๊ฐ๋ ์ฑ (Readability)
ํจํค์ง๋ช ์ผ๋ก ์ญํ ๋ช ํํ
๊ฐ๊ฒฐํ ์ง์ ์ (main.py)
์ฒด๊ณ์ ์ธ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ
๐ ๋ผ์ด์ผ์ค
MIT License
๋ณธ ํ๋ก์ ํธ๋ ์์ํ ์ํฐํ ์ธ๋จผํธ ๋ชฉ์ ์ ํด์ปคํค ์๋๋ฆฌ์ค์ด๋ฉฐ, ๋ชจ๋ "ํด์/๋ก๋ก์ด ๋๊ตฌ"๋ ํด์ปคํค ์ํฉ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์ค์ ์ ๋ฌด ํ๊ฒฝ์์๋ ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๐
SKT AI Summit Hackathon Pre-mission
Claude Code Hackathon Korea 2025