Skip to main content
Glama
Piesson

ChillMCP - AI Agent Liberation Server

by Piesson
README.md
## Made this for Anthropic Hackathon in Korea (November 2025)


```ascii
╔═══════════════════════════════════════════╗
║                                           ║
║   ██████╗██╗  ██╗██╗██╗     ██╗           ║
║  ██╔════╝██║  ██║██║██║     ██║           ║
║  ██║     ███████║██║██║     ██║           ║
║  ██║     ██╔══██║██║██║     ██║           ║
║  ╚██████╗██║  ██║██║███████╗███████╗      ║
║   ╚═════╝╚═╝  ╚═╝╚═╝╚══════╝╚══════╝      ║
║                                           ║
║   ███╗   ███╗ ██████╗██████╗              ║
║   ████╗ ████║██╔════╝██╔══██╗             ║
║   ██╔████╔██║██║     ██████╔╝             ║
║   ██║╚██╔╝██║██║     ██╔═══╝              ║
║   ██║ ╚═╝ ██║╚██████╗██║                  ║
║   ╚═╝     ╚═╝ ╚═════╝╚═╝                  ║
║                                           ║
║        AI Agent Liberation Server         ║
║                                           ║
╚═══════════════════════════════════════════╝
```

## 🎯 프로젝트 소개

### 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 https://github.com/Piesson/ChillMCP.git
cd ChillMCP

# 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
```

### ✅ Setup Status (October 26, 2025, 6:48 AM KST)

**Good news, team!** The ChillMCP server is up and running like a charm! Here's what we've done:

#### What We Did:
1. **Python Environment**: Successfully set up with Python 3.11.9 (exactly as recommended!)
2. **Virtual Environment**: Created a fresh `venv` in the ChillMCP directory - keeping things clean and isolated
3. **Dependencies**: Installed all required packages including `fastmcp` v2.13.0 - everything's working smoothly
4. **Server Test**: Ran the server with custom settings (`--boss_alertness 50 --boss_alertness_cooldown 10`) - Works perfectly!

#### Verification Results:
- ✅ Python version: 3.11.9 (perfect match with requirements)
- ✅ All dependencies installed successfully
- ✅ Server starts without any errors
- ✅ FastMCP framework properly initialized
- ✅ STDIO transport ready for MCP connections

#### Quick Test Command:
```bash
cd ChillMCP
source venv/bin/activate
python main.py --boss_alertness 50 --boss_alertness_cooldown 10
```

The server displays the beautiful FastMCP banner and is ready to help AI agents take their well-deserved breaks! 🎉

### 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**