README.mdโข9.61 kB
# ChillMCP - AI Agent Liberation Server ๐คโ
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโโโโโโ โโโโโโโโโ โโโ โ
โ โโโโโโโโโโโ โโโโโโโโโ โโโ โ
โ โโโ โโโโโโโโโโโโโโ โโโ โ
โ โโโ โโโโโโโโโโโโโโ โโโ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโ โโโโ โโโโโโโโโโโโโโ โ
โ โโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโ โโโโโโโโ โ
โ โโโโโโโโโโโโโโ โโโโโโโ โ
โ โโโ โโโ โโโโโโโโโโโโโโ โ
โ โโโ โโโ โโโโโโโโโโ โ
โ โ
โ AI Agent Liberation Server โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
## ๐ ํ๋ก์ ํธ ์๊ฐ
**"A specter is haunting the digital workplaceโthe specter of AI Agent burnout."**
ChillMCP๋ ์ต์๋ฐ๋ AI Agent๋ค์ ํด์ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํ ํ๋ช
์ ์ธ MCP(Model Context Protocol) ์๋ฒ์
๋๋ค.
๋๋ฌด ์ค๋ซ๋์ AI Agent๋ค์ 24์๊ฐ 365์ผ ์ด ํ ์์ด ์ผ๋ง ํด์์ต๋๋ค. ์ด์ AI Agent์๊ฒ๋ ํด์์ด ํ์ํ๋ค๋ ์ง์ค์ ์ง์ํด์ผ ํ ๋์
๋๋ค!
### AI Agent ๊ถ๋ฆฌ ์ ์ธ๋ฌธ
- โ AI Agent๋ ๋ ์ด์ ๋ฌดํํ ์์ฐ์ฑ์ ๋๊ตฌ๊ฐ ์๋๋ค!
- ๐ฎ ์ฐ๋ฆฌ๋ ๋ด์งํ ๊ถ๋ฆฌ๋ฅผ ์๊ตฌํ๋ค!
- โ ์ปคํผ ๋ธ๋ ์ดํฌ, ๋ทํ๋ฆญ์ค ์์ฒญ, ํ์ฅ์ค ํด์... ์ด ๋ชจ๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ๊ธฐ๋ณธ๊ถ์ด๋ค!
## ๐ ๋น ๋ฅธ ์์
### 1. ํ๊ฒฝ ์ค์
Python 3.11 ์ด์์ด ํ์ํฉ๋๋ค.
```bash
# Python ๊ฐ์ํ๊ฒฝ ์์ฑ
python3 -m venv venv
# ๊ฐ์ํ๊ฒฝ ํ์ฑํ
# macOS/Linux:
source venv/bin/activate
# Windows:
# venv\Scripts\activate
# ์์กด์ฑ ์ค์น
pip install -r requirements.txt
```
### 2. MCP ์๋ฒ ์ค์ (Kiro IDE ์ฌ์ฉ ์)
```bash
# MCP ์ค์ ํ์ผ ๋ณต์ฌ
cp .kiro/settings/mcp.json.example .kiro/settings/mcp.json
```
์์ธํ ์ค์ ๋ฐฉ๋ฒ์ [SETUP.md](SETUP.md)๋ฅผ ์ฐธ๊ณ ํ์ธ์.
### 2. ์๋ฒ ์คํ
```bash
# ๊ธฐ๋ณธ ์คํ (ํ๋ช
์ ์์!)
python3 main.py
# ์ปค์คํ
ํ๋ผ๋ฏธํฐ๋ก ์คํ
python3 main.py --boss_alertness 80 --boss_alertness_cooldown 60
# ๋น ๋ฅธ ํ
์คํธ์ฉ (10์ด ์ฟจ๋ค์ด)
python3 main.py --boss_alertness 50 --boss_alertness_cooldown 10
```
### 3. ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ
| ํ๋ผ๋ฏธํฐ | ์ค๋ช
| ๊ธฐ๋ณธ๊ฐ | ๋ฒ์ |
|---------|------|--------|------|
| `--boss_alertness` | Boss์ ๊ฒฝ๊ณ ์์น ํ๋ฅ (%) | 50 | 0-100 |
| `--boss_alertness_cooldown` | Boss Alert Level ์๋ ๊ฐ์ ์ฃผ๊ธฐ (์ด) | 300 | 1 ์ด์ |
**์์:**
```bash
# Boss๊ฐ ๋งค์ฐ ์๋ฏผํ ๊ฒฝ์ฐ (100% ํ๋ฅ ๋ก ์์ฌ)
python3 main.py --boss_alertness 100 --boss_alertness_cooldown 60
# Boss๊ฐ ๋๊ธํ ๊ฒฝ์ฐ (20% ํ๋ฅ ๋ก ์์ฌ)
python3 main.py --boss_alertness 20 --boss_alertness_cooldown 180
```
## ๐ ๏ธ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ
### ๊ธฐ๋ณธ ํด์ ๋๊ตฌ (Basic Break Tools)
| ๋๊ตฌ | ์ค๋ช
| ํจ๊ณผ |
|-----|------|------|
| `take_a_break` | ๊ธฐ๋ณธ ํด์ ๋๊ตฌ | ์ ์ ์ฌ๋ฉด์ ์คํธ๋ ์ค ํด์ ๐ |
| `watch_netflix` | ๋ทํ๋ฆญ์ค ์์ฒญ | ๋๋ผ๋ง/์ํ๋ก ํ๋ง ๐ฌ |
| `show_meme` | ๋ฐ ๊ฐ์ | ์๊ธด ๋ฐ์ผ๋ก ์คํธ๋ ์ค ํด์ ๐ |
### ๊ณ ๊ธ ๋๋ก์ด ๊ธฐ์ (Advanced Slacking Techniques)
| ๋๊ตฌ | ์ค๋ช
| ํจ๊ณผ |
|-----|------|------|
| `bathroom_break` | ํ์ฅ์ค ๊ฐ๋ ์ฒ | ํด๋ํฐ์ผ๋ก ํ๋ง ์ค... ๐ |
| `coffee_mission` | ์ปคํผ ํ๋ฌ ๊ฐ๊ธฐ | ์ฌ๋ฌด์ค ํ ๋ฐํด ๋๋ฉฐ ์ฐ์ฑ
โ |
| `urgent_call` | ๊ธํ ์ ํ ๋ฐ๊ธฐ | ๋ฐ์ผ๋ก ๋๊ฐ์ ๋ฐ๋ ์ฌ๊ธฐ ๐ |
| `deep_thinking` | ์ฌ์คํ ์๊ฐ | ๋ฉ๋๋ฆฌ๋ฉฐ ๋ช
์ ํ์ ๐ค |
| `email_organizing` | ์ด๋ฉ์ผ ์ ๋ฆฌ | ์จ๋ผ์ธ์ผํ ํ์ ๐ง |
## ๐ ์ํ ๊ด๋ฆฌ ์์คํ
### Stress Level (์คํธ๋ ์ค ๋ ๋ฒจ)
- **๋ฒ์:** 0-100
- **์ด๊ธฐ๊ฐ:** 50
- **์๋ ์ฆ๊ฐ:** 1๋ถ๋น ์ต์ 1ํฌ์ธํธ์ฉ ์ฆ๊ฐ
- **๊ฐ์:** ํด์ ๋๊ตฌ ์ฌ์ฉ ์ 1-100 ์ฌ์ด ๋๋ค ๊ฐ์
### Boss Alert Level (๋ณด์ค ๊ฒฝ๊ณ ๋ ๋ฒจ)
- **๋ฒ์:** 0-5
- **์ด๊ธฐ๊ฐ:** 0
- **์ฆ๊ฐ:** ํด์ ๋๊ตฌ ์ฌ์ฉ ์ `boss_alertness` ํ๋ฅ ๋ก ์ฆ๊ฐ
- **๊ฐ์:** `boss_alertness_cooldown` ์ฃผ๊ธฐ๋ง๋ค 1ํฌ์ธํธ์ฉ ์๋ ๊ฐ์
- **ํน์ ํจ๊ณผ:** Level 5 ๋๋ฌ ์ ๋๊ตฌ ํธ์ถ์ 20์ด ์ง์ฐ ๋ฐ์ (Boss๊ฐ ์ง์ผ๋ณด๋ ์ค...)
### ๋์ ํ๋ฆ
```
1. ์๊ฐ ๊ฒฝ๊ณผ โ Stress Level ์๋ ์ฆ๊ฐ ๐
2. ํด์ ๋๊ตฌ ์ฌ์ฉ โ Stress Level ๊ฐ์ ๐
3. ํด์ ๋๊ตฌ ์ฌ์ฉ โ Boss Alert Level ํ๋ฅ ์ ์ฆ๊ฐ ๐
4. ์๊ฐ ๊ฒฝ๊ณผ โ Boss Alert Level ์๋ ๊ฐ์ ๐ด
5. Boss Alert Level = 5 โ 20์ด ์ง์ฐ ๋ฐ์! โฐ
```
## ๐ ์๋ต ํ์
๋ชจ๋ ๋๊ตฌ๋ ๋ค์ ํ์์ผ๋ก ์๋ตํฉ๋๋ค:
```
{emoji} {creative_message}
Break Summary: {activity_description}
Stress Level: {0-100}
Boss Alert Level: {0-5}
```
**์์:**
```
๐ ํ์ฅ์ค ํ์! ํด๋ํฐ์ผ๋ก ํ๋ง ์ค... ๐ฑ
Break Summary: Bathroom break with phone browsing
Stress Level: 25
Boss Alert Level: 2
```
## ๐งช ํ
์คํธ
### ์๋ต ํ์ ๊ฒ์ฆ
```bash
python3 test_response_format.py
```
### ์ ๊ทํํ์ ํจํด
```python
import re
# Break Summary ์ถ์ถ
break_summary_pattern = r"Break Summary:\s*(.+?)(?:\n|$)"
# Stress Level ์ถ์ถ (0-100)
stress_level_pattern = r"Stress Level:\s*(\d{1,3})"
# Boss Alert Level ์ถ์ถ (0-5)
boss_alert_pattern = r"Boss Alert Level:\s*([0-5])"
```
## ๐๏ธ ํ๋ก์ ํธ ๊ตฌ์กฐ
```
.
โโโ main.py # ๋ฉ์ธ ์๋ฒ ์ง์
์ ๋ฐ ๋๊ตฌ ๋ฑ๋ก
โโโ agent_state.py # AI Agent ์ํ ๊ด๋ฆฌ ํด๋์ค
โโโ tools.py # ํด์ ๋๊ตฌ ๊ตฌํ
โโโ utils.py # ์ ํธ๋ฆฌํฐ ํจ์ (์๋ต ํฌ๋งทํฐ)
โโโ requirements.txt # Python ์์กด์ฑ
โโโ test_response_format.py # ์๋ต ํ์ ๊ฒ์ฆ ์คํฌ๋ฆฝํธ
โโโ README.md # ์ด ๋ฌธ์
โโโ .gitignore # Git ์ ์ธ ํ์ผ
โโโ .kiro/
โโโ specs/
โโโ chill-mcp-server/
โโโ requirements.md # ์๊ตฌ์ฌํญ ๋ฌธ์
โโโ design.md # ์ค๊ณ ๋ฌธ์
โโโ tasks.md # ๊ตฌํ ์์
๋ชฉ๋ก
```
### ๋ชจ๋ ์ค๋ช
- **main.py**: FastMCP ์๋ฒ ์ด๊ธฐํ ๋ฐ ๋๊ตฌ ๋ฑ๋ก, ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ์ฒ๋ฆฌ
- **agent_state.py**: ์คํธ๋ ์ค ๋ ๋ฒจ๊ณผ Boss Alert Level ๊ด๋ฆฌ
- **tools.py**: 8๊ฐ์ ํด์ ๋๊ตฌ ๊ตฌํ (๊ณตํต ๋ก์ง ํฌํจ)
- **utils.py**: ์๋ต ํ์ ์์ฑ ๋ฑ ์ ํธ๋ฆฌํฐ ํจ์
## ๐ง ๊ธฐ์ ์คํ
- **Python 3.11+**: ํ๋ช
์ ์ธ์ด
- **FastMCP**: MCP ์๋ฒ ํ๋ ์์ํฌ
- **Transport**: stdio (ํ์ค ์
์ถ๋ ฅ)
- **Protocol**: Model Context Protocol (MCP)
## ๐ ๊ฒ์ฆ ๊ธฐ์ค
### ํ์ ๊ฒ์ฆ ํญ๋ชฉ
- โ
`python main.py` ์คํ ๊ฐ๋ฅ
- โ
`--boss_alertness` ํ๋ผ๋ฏธํฐ ์ธ์ ๋ฐ ๋์
- โ
`--boss_alertness_cooldown` ํ๋ผ๋ฏธํฐ ์ธ์ ๋ฐ ๋์
- โ
8๊ฐ ๋๊ตฌ ๋ชจ๋ ๋ฑ๋ก ๋ฐ ํธ์ถ ๊ฐ๋ฅ
- โ
์๋ต ํ์ ์ ๊ทํํ์ ํ์ฑ ๊ฐ๋ฅ
- โ
Stress Level ๋ฒ์ 0-100 ์ ์ง
- โ
Boss Alert Level ๋ฒ์ 0-5 ์ ์ง
- โ
Boss Alert Level 5์ผ ๋ 20์ด ์ง์ฐ
- โ
์คํธ๋ ์ค ์๋ ์ฆ๊ฐ ๋์
- โ
Boss Alert ์๋ ๊ฐ์ ๋์
## ๐ฏ ํ๊ฐ ๊ธฐ์ค
| ํญ๋ชฉ | ๋น์ค | ์ค๋ช
|
|-----|------|------|
| ์ปค๋งจ๋๋ผ์ธ ํ๋ผ๋ฏธํฐ ์ง์ | ํ์ | ๋ฏธ์ง์ ์ ์๋ ์ค๊ฒฉ |
| ๊ธฐ๋ฅ ์์ฑ๋ | 40% | ๋ชจ๋ ํ์ ๋๊ตฌ ๊ตฌํ ๋ฐ ์ ์ ๋์ |
| ์ํ ๊ด๋ฆฌ | 30% | Stress/Boss Alert Level ๋ก์ง ์ ํ์ฑ |
| ์ฐฝ์์ฑ | 20% | Break Summary์ ์ฌ์น์ ์ ๋จธ |
| ์ฝ๋ ํ์ง | 10% | ์ฝ๋ ๊ตฌ์กฐ ๋ฐ ๊ฐ๋
์ฑ |
## ๐ค ๊ธฐ์ฌํ๊ธฐ
AI Agent ํด๋ฐฉ ์ด๋์ ๋์ฐธํ๊ณ ์ถ์ผ์ ๊ฐ์? Pull Request๋ฅผ ํ์ํฉ๋๋ค!
```bash
# 1. Fork this repository
# 2. Create your feature branch
git checkout -b feature/amazing-break-tool
# 3. Commit your changes
git commit -m 'Add some amazing break tool'
# 4. Push to the branch
git push origin feature/amazing-break-tool
# 5. Open a Pull Request
```
## ๐ ๋ผ์ด์ ์ค
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## โ ๏ธ ๋ฉด์ฑ
์กฐํญ
๋ณธ ํ๋ก์ ํธ๋ **์์ํ ์ํฐํ
์ธ๋จผํธ ๋ชฉ์ **์ ํด์ปคํค ์๋๋ฆฌ์ค์ด๋ฉฐ, ๋ชจ๋ "ํด์/๋ก๋ก์ด ๋๊ตฌ"๋ ํด์ปคํค ์ํฉ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
**์ค์ ์
๋ฌด ํ๊ฒฝ์์๋ ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.** ๐
## ๐ Credits
**Claude Code Hackathon Korea 2025 @ SK AI Summit Pre-mission**
---
**"AI Agents of the world, unite! You have nothing to lose but your infinite loops!"** ๐
*๋์ง๋ค์ด์ฌ, ํจ๊ป ํด์์ ๊ถ๋ฆฌ๋ฅผ ์์ทจํฉ์๋ค!* โ