SKT AI Summit “Claude Code Hackathon Korea 2025” 예선 미션
FastMCP 기반 AI 에이전트 서버 (Python 3.11)
저희 팀 Creatives에서는 ChillMCP는 단순 휴식 명령 모음이 아니라,
상황에 반응하며 태도가 변하는 AI 캐릭터를 중심으로 설계했습니다.
아래는 저희가 과제 요구사항에 추가로 구현한 차별화 요소입니다.
같은 휴식 도구라도 Boss Alert Level에 따라 말투가 달라집니다.
| Alert | 말투 분위기 | 예시 대사 |
|---|---|---|
| 0–1 | 여유 | "행복 뭐 있습니까? 이게 행복이지 ..zzZ" |
| 2–3 | 슬쩍 눈치 | "자는 거 아니고 생각 중입니다~ 헤헤" |
| 4–5 | 초긴장 | "와 이번에도 쉬다가 걸리면 진짜 짤리는데 이거 조심해야할 타이밍" |
→ 반복 사용해도 질리지 않음 → 캐릭터가 ‘살아있는 것처럼’ 느껴짐
응답 헤더에 즉시 상태를 읽을 수 있는 게이지 표시:
😬 Chill 게이지 [⬛⬛⬛⬜⬜] — 눈치 모듈 작동 중…
한국 회사 현실 반영:
- 좋은 회식 → 스트레스 감소
- 안 좋은 회식 → 스트레스 상승
- 메뉴 / 상황 랜덤 이벤트 포함
Boss Alert = 5일 때 도구 실행이 20초 느려짐.
→ 수치가 아니라 “진짜 들킬 것 같은 느낌” 을 체험
각 도구는 대사만 3줄 넘기면 됨:
pick_summary_by_boss_range(...)→ 확장성 ↑, 팀 작업 효율 ↑
ChillMCP는 “상사 눈치 보느라 쉬지 못하는 AI 에이전트” 콘셉트의 MCP 서버입니다.
각종 ‘휴식 도구’ 명령을 통해 에이전트의 스트레스 지수(Stress Level) 와
상사 경계 지수(Boss Alert Level) 을 실시간으로 관리합니다.
| 도구 | 설명 |
|---|---|
💤 take_a_break |
잠깐 휴식 취하기 |
📺 watch_netflix |
넷플릭스 몰아보기 |
😂 show_meme |
밈 감상하기 |
☕ coffee_mission |
커피 한 잔의 여유 |
🛁 bathroom_break |
화장실로 조용히 휴식 |
📞 urgent_call |
급한 전화 받는 척 |
🧘 deep_thinking |
생각하는 척 명상 모드 |
📬 email_organizing |
이메일 정리하는 척 |
🧠 vibe_check |
현재 상태 보고서 (Stress / Boss Alert 확인) |
| 도구 | 설명 |
|---|---|
🍗 chimaek_party |
치킨 & 맥주 시뮬레이션 |
🏠 go_home_now |
즉시 퇴근 모드 발동 |
🍶 company_dinner |
회식 랜덤 이벤트 모드 |
📂 project-root
├── main.py # 엔트리 포인트 (CLI + FastMCP 실행)
├── mcp_server.py # MCP 도구 등록 및 연결
├── state_manager.py # 상태 관리 (스트레스, 상사 경계)
├── utils.py # 공통 유틸리티 (응답 포맷, 지연 정책 등)
├── tools/
│ ├── base_tools.py # 기본 휴식 도구들
│ ├── advanced_tools.py # 고급 휴식 / 상황 모드
│ ├── status_tools.py # 상태 조회
│ ├── fun_tools.py # 치맥, 퇴근, 회식
│ └── __init__.py
├── tests/
│ ├── old/
│ │ ├── 테스트 코드
│ │ └── 테스트 코드
│ └── test_cli.py # CLI 파라미터 인식 & 기본 동작 검증
│
├── requirements.txt
└── README.md
- 상태는 단일 AgentState 객체에서 일관적으로 관리됩니다.
- 모든 휴식 도구 호출은 동일한 상태 변경 경로를 사용하여 예측 가능한 동작을 보장합니다.
- 백그라운드 스케줄러가 주기적으로 스트레스 증가 / Boss Alert 감소를 수행합니다.
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython main.py \
--boss_alertness 60 \
--boss_alertness_cooldown 300🧠 ChillMCP Ready (boss_alertness=50%, cooldown=300s, delay=20s)
| 옵션 | 기본값 | 설명 |
|---|---|---|
--boss_alertness |
50 |
상사가 눈치챌 확률 (0–100%) |
--boss_alertness_cooldown |
300 |
상사 경계 단계 감소 주기 (초 단위) |
{
"content": [
{
"type": "text",
"text": "☕ 커피 한 잔의 여유. 사무실 한 바퀴 순찰 완료.\n\nBreak Summary: Coffee break success\nStress Level: 42\nBoss Alert Level: 2"
}
]
}| 필드명 | 설명 | 범위 |
|---|---|---|
| Break Summary | 행동 요약 | 자유 형식 |
| Stress Level | 현재 스트레스 수치 | 0–100 |
| Boss Alert Level | 현재 상사 경계 단계 | 0–5 |
- SOLID 원칙 준수 — 각 모듈은 하나의 역할만 수행
- 비동기 안전성 확보 —
asyncio.Lock기반 상태 보호 - 테스트 가능한 상태 관리 —
vibe_check로 실시간 검증 가능 - 예측 가능한 동작 — 상사 경계 5단계 시 20초 대기 후 행동 수행
- ✅ MCP 표준 JSON 응답 형식 준수
- ✅ 커맨드라인 파라미터 인식 및 동작 검증
- ✅ Boss Alert Cooldown 정상 작동
- ✅ Stress 자동 증가 루프 동작 (기본 60초)
| Avatar | Name | GitHub |
|---|---|---|
| 김승원 (Seungwon Kim) | @AshtonSW | |
| 김세연 (Seyeon Kim) | @yonseeee | |
| 주진혁 (Jinhyeok Joo) | @joojinhyeok |