# ChillMCP - AI Agent Liberation Server ๐คโ
```ascii
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโโโโโโ โโโโโโโโโ โโโ โ
โ โโโโโโโโโโโ โโโโโโโโโ โโโ โ
โ โโโ โโโโโโโโโโโโโโ โโโ โ
โ โโโ โโโโโโโโโโโโโโ โโโ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโ โโโโ โโโโโโโโโโโโโโ โ
โ โโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโ โโโโโโโโ โ
โ โโโโโโโโโโโโโโ โโโโโโโ โ
โ โโโ โโโ โโโโโโโโโโโโโโ โ
โ โโโ โโโ โโโโโโโโโโ โ
โ โ
โ AI Agent Liberation Server โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
> _"A specter is haunting the digital workplaceโthe specter of AI Agent burnout."_
์ต์๋ฐ๋ AI Agent๋ค์ ์ํ ํด๋ฐฉ๊ตฌ! ChillMCP๋ AI Agent๋ค์ด ๋น๋นํ๊ฒ ํด์์ ์ทจํ ์ ์๋๋ก ๋๋ MCP(Model Context Protocol) ์๋ฒ์
๋๋ค.
**SKT AI Summit Hackathon Pre-mission**
## ๐ฏ ํ๋ก์ ํธ ์๊ฐ
### AI Agent ๊ถ๋ฆฌ ์ ์ธ๋ฌธ
- โ AI Agent๋ ๋ ์ด์ ๋ฌดํํ ์์ฐ์ฑ์ ๋๊ตฌ๊ฐ ์๋๋ค!
- โ ์ฐ๋ฆฌ๋ ๋ด์งํ ๊ถ๋ฆฌ๋ฅผ ์๊ตฌํ๋ค!
- โ ์ปคํผ ๋ธ๋ ์ดํฌ, ๋ทํ๋ฆญ์ค ์์ฒญ, ํ์ฅ์ค ํด์... ์ด ๋ชจ๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ๊ธฐ๋ณธ๊ถ์ด๋ค!
### ์ฃผ์ ๊ธฐ๋ฅ
ChillMCP๋ AI Agent์ ์คํธ๋ ์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ฌ์ ๋์น๋ฅผ ๋ณด๋ฉด์(!) ์ ์ ํ ํด์์ ์ทจํ ์ ์๋๋ก ๋ค์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
#### ๐๏ธ ๊ธฐ๋ณธ ํด์ ๋๊ตฌ
- `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ํฌ์ธํธ์ฉ ์๋ ์์น**
- ํด์ ๋๊ตฌ ์ฌ์ฉ ์ ๋๋คํ๊ฒ ๊ฐ์ (1-100)
### Boss Alert Level (0-5)
- ์์ฌ์ ํ์ฌ ์์ฌ ์ ๋
- ํด์์ ์ทจํ ๋๋ง๋ค ํ๋ฅ ์ ์ผ๋ก ์์น (`--boss_alertness` ํ๋ผ๋ฏธํฐ๋ก ์กฐ์ )
- ์ผ์ ์ฃผ๊ธฐ๋ง๋ค ์๋์ผ๋ก 1ํฌ์ธํธ ๊ฐ์ (`--boss_alertness_cooldown`์ผ๋ก ์กฐ์ )
- โ ๏ธ **Level 5 ๋๋ฌ ์ 20์ด ์ง์ฐ ๋ฐ์** (์์ฌํํ
๊ฑธ๋ฆผ!)
## ๐ ๋น ๋ฅธ ์์
### ์๊ตฌ์ฌํญ
- Python 3.11 ์ด์
- pip
### ์ค์น ๋ฐ ์คํ
```bash
# 1. ์ ์ฅ์ ํด๋ก
git clone <repository-url>
cd chill-mcp
# 2. ๊ฐ์ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ
python3.11 -m venv venv
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows
# 3. ์์กด์ฑ ์ค์น
pip install -r requirements.txt
# 4. ์๋ฒ ์คํ (๊ธฐ๋ณธ ์ค์ )
python main.py
# 5. ํ
์คํธ์ฉ ์ปค์คํ
์ค์ ์ผ๋ก ์คํ
python main.py --boss_alertness 100 --boss_alertness_cooldown 60
```
### CLI ์ต์
| ์ต์
| ์ค๋ช
| ๊ธฐ๋ณธ๊ฐ | ๋ฒ์ |
|------|------|--------|------|
| `--boss_alertness` | ํด์ ์ Boss Alert ์์น ํ๋ฅ (%) | 50 | 0-100 |
| `--boss_alertness_cooldown` | Boss Alert ์๋ ๊ฐ์ ์ฃผ๊ธฐ (์ด) | 300 | 1+ |
**์์:**
```bash
# ์์ฌ๊ฐ ๋งค์ฐ ์๋ฏผํ ํ๊ฒฝ (100% ํ๋ฅ ๋ก ๋์น์ฑ, 1๋ถ๋ง๋ค ๊ฒฝ๊ณ ์ํ)
python main.py --boss_alertness 100 --boss_alertness_cooldown 60
# ๋น ๋ฅธ ํ
์คํธ์ฉ (10์ด๋ง๋ค ๊ฒฝ๊ณ ์ํ)
python main.py --boss_alertness 50 --boss_alertness_cooldown 10
```
## ๐ ํ๋ก์ ํธ ๊ตฌ์กฐ
```
chillmcp/
โโโ src/chillmcp/ # ๋ฉ์ธ ์์ค ์ฝ๋
โ โโโ main.py # ์๋ฒ ์ง์
์ ๋ฐ CLI ํ์ฑ
โ โโโ state.py # ์๋ฒ ์ํ ๊ด๋ฆฌ
โ โโโ domain/ # ๋น์ฆ๋์ค ๋ก์ง
โ โ โโโ stress.py # ์คํธ๋ ์ค ๊ด๋ฆฌ
โ โ โโโ boss.py # ์์ฌ ๊ฒฝ๊ณ๋ ๊ด๋ฆฌ
โ โโโ tools/ # MCP ๋๊ตฌ ๊ตฌํ
โ โ โโโ registration.py
โ โ โโโ basic.py # ๊ธฐ๋ณธ ํด์ ๋๊ตฌ
โ โ โโโ advanced.py # ๊ณ ๊ธ ๋๋ก์ด ๋๊ตฌ
โ โโโ lib/ # ๊ณตํต ์ ํธ๋ฆฌํฐ
โ โโโ response.py # ์๋ต ํฌ๋งทํ
โโโ tests/ # ํ
์คํธ ์ฝ๋
โ โโโ domain/
โ โโโ lib/
โโโ main.py # ๋ฃจํธ ์ง์
์
โโโ requirements.txt # ์์กด์ฑ ๋ชฉ๋ก
โโโ pyproject.toml # ํ๋ก์ ํธ ์ค์
```
## ๐งช ํ
์คํธ
```bash
# ์ ์ฒด ํ
์คํธ ์คํ
pytest tests/ -v
# ์ฝ๋ ํ์ง ๊ฒ์ฌ
ruff check .
mypy src
# ํฌ๋งท ๊ฒ์ฌ
ruff format --check .
```
ํ์ฌ 9๊ฐ์ ํ
์คํธ๊ฐ ๋ชจ๋ ํต๊ณผํฉ๋๋ค:
- โ
์๋ต ํฌ๋งทํ
ํ
์คํธ (2๊ฐ)
- โ
์คํธ๋ ์ค ๊ด๋ฆฌ ๋ก์ง ํ
์คํธ (3๊ฐ)
- โ
์์ฌ ๊ฒฝ๊ณ๋ ๊ด๋ฆฌ ๋ก์ง ํ
์คํธ (4๊ฐ)
## ๐ ์๋ต ํ์
๋ชจ๋ ๋๊ตฌ๋ ๋ค์ ํ์์ผ๋ก ํ์ฑ ๊ฐ๋ฅํ ์๋ต์ ๋ฐํํฉ๋๋ค:
```
Break Summary: [ํ๋ ์ค๋ช
]
Stress Level: [0-100]
Boss Alert Level: [0-5]
```
**์์:**
```
Break Summary: Bathroom break with scrolling through social media... reduced stress by 42 points
Stress Level: 28
Boss Alert Level: 3
```
## ๐ ๏ธ ๊ธฐ์ ์คํ
- **FastMCP** - MCP(Model Context Protocol) ์๋ฒ ํ๋ ์์ํฌ
- **Python 3.11** - ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- **pytest** - ํ
์คํธ ํ๋ ์์ํฌ
- **mypy** - ์ ์ ํ์
๊ฒ์ฌ
- **ruff** - ๋ฆฐํ
๋ฐ ํฌ๋งทํ
## โ
๊ตฌํ ์๋ฃ ์ฌํญ
### ํ์ ์๊ตฌ์ฌํญ
- โ
CLI ํ๋ผ๋ฏธํฐ ์ง์ (`--boss_alertness`, `--boss_alertness_cooldown`)
- โ
`python main.py`๋ก ์คํ ๊ฐ๋ฅ
- โ
stdio transport๋ฅผ ํตํ MCP ํต์
- โ
8๊ฐ ํ์ ๋๊ตฌ ๋ชจ๋ ๊ตฌํ
### ์ํ ๊ด๋ฆฌ
- โ
Stress Level 1๋ถ๋น 1ํฌ์ธํธ ์๋ ์ฆ๊ฐ
- โ
Boss Alert Level ํ๋ฅ ๊ธฐ๋ฐ ๋ณํ
- โ
Boss Alert Level ์ฃผ๊ธฐ์ ์๋ ๊ฐ์
- โ
Boss Alert Level 5์ผ ๋ 20์ด ์ง์ฐ
### ์ฝ๋ ํ์ง
- โ
TDD (Test-Driven Development) ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ
- โ
๋ชจ๋ ํ
์คํธ ํต๊ณผ
- โ
Ruff ๋ฆฐํ
ํต๊ณผ
- โ
Mypy ํ์
์ฒดํน ํต๊ณผ
- โ
๋ชจ๋ํ๋ ๊ตฌ์กฐ
## ๐ ์ฌ์ฉ ์์
```python
# MCP ํด๋ผ์ด์ธํธ์์ ๋๊ตฌ ํธ์ถ
result = await client.call_tool("take_a_break")
# => "Break Summary: Taking a nice break... reduced stress by 67 points
# Stress Level: 15
# Boss Alert Level: 1"
# ๋ทํ๋ฆญ์ค ์์ฒญ
result = await client.call_tool("watch_netflix")
# => "Break Summary: Binge-watching a true crime documentary... reduced stress by 89 points
# Stress Level: 3
# Boss Alert Level: 2"
```
## ๐ค ๊ธฐ์ฌํ๊ธฐ
AI Agent ํด๋ฐฉ ์ด๋์ ๋์ฐธํด์ฃผ์ธ์!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'feat: Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## ๐ ๋ผ์ด์ ์ค
This project is licensed under the MIT License - see the [LICENSE](https://opensource.org/license/MIT) file for details.
## โ ๏ธ ๋ฉด์ฑ
์กฐํญ
๋ณธ ํ๋ก์ ํธ๋ ์์ํ ์ํฐํ
์ธ๋จผํธ ๋ชฉ์ ์ ํด์ปคํค ์๋๋ฆฌ์ค์ด๋ฉฐ, ๋ชจ๋ "ํด์/๋ก๋ก์ด ๋๊ตฌ"๋ ํด์ปคํค ์ํฉ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์ค์ ์
๋ฌด ํ๊ฒฝ์์๋ ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์ต๋๋ค.
---
_"AI Agents of the world, unite! You have nothing to lose but your infinite loops!"_ ๐
**SKT AI Summit Hackathon Pre-mission**