mcp-activity-tracker
Version:
MCP server for automatic worklog creation based on computer activity monitoring
191 lines (151 loc) • 4.94 kB
Markdown
# MCP Activity Tracker
자동 worklog 작성을 위한 컴퓨터 활동 모니터링 MCP 서버입니다.
## 🎯 주요 기능
- **실시간 활동 모니터링**: 프로세스, 브라우저, 입력 활동 추적
- **스마트 세션 분석**: 활동 패턴 기반 업무 유형 자동 분류
- **자동 Worklog 제안**: LG전자 Work Description 양식에 맞는 제안 생성
- **인텔리전트 알림**: 비활성 시간 감지 및 작업 완료 알림
- **기존 서버 연동**: mcp-sprint-work-logs와 완벽 통합
## 🚀 설치 및 실행
### 전제 조건
- Node.js 14.0.0+
- Python 3.9+
- Windows 10/11 (현재 Windows 전용)
### NPX로 실행 (권장)
```bash
npx mcp-activity-tracker
```
### 수동 설치
```bash
npm install -g mcp-activity-tracker
pip install -r requirements.txt
```
### MCP 클라이언트 설정
```json
{
"mcp-activity-tracker": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-activity-tracker"],
"env": {
"JIRA_URL": "https://your-jira-instance.com/",
"JIRA_USERNAME": "your-username",
"JIRA_PASSWORD": "your-password-or-token"
}
}
}
```
## 🛠️ 사용 가능한 도구
### 1. start_activity_monitoring()
백그라운드 활동 모니터링을 시작합니다.
```javascript
await start_activity_monitoring();
```
### 2. get_activity_summary(date?, start_time?, end_time?)
활동 요약을 조회합니다.
```javascript
await get_activity_summary("2024-01-15");
await get_activity_summary(null, "2024-01-15T09:00:00", "2024-01-15T18:00:00");
```
### 3. get_worklog_suggestions()
대기 중인 worklog 제안을 조회합니다.
```javascript
await get_worklog_suggestions();
```
### 4. approve_worklog_suggestion(suggestion_id, modifications?)
worklog 제안을 승인하고 실제 worklog를 생성합니다.
```javascript
await approve_worklog_suggestion(1, {
"summary": "수정된 업무 내용",
"time_spent": "2h"
});
```
### 5. show_daily_summary_notification(date?)
일일 요약 알림을 표시합니다.
```javascript
await show_daily_summary_notification();
```
## 📊 활동 분류 시스템
### 자동 분류 패턴
```python
activity_patterns = {
"개발": ["vscode", "git", "github", "gerrit", "putty", "ssh"],
"이슈": ["jira", "bugzilla", "mantis"],
"운영": ["outlook", "excel", "powerpoint", "teams", "zoom", "webex", "meet"]
}
```
### 지원하는 업무 유형
- **개발**: 코드 개발, API 구현, 팀장회의 등
- **이슈**: Jira 이슈 처리, 버그 분석, 인증 문제 등
- **지원**: Sanity Test, 현장 지원, 운영 지원 등
- **운영**: 회의, 이사, 월례조회, 간사 활동 등
- **휴가/교육**: Personal Work Log 자동 분류
## 🔔 스마트 알림 시스템
### 비활성 복귀 알림
30분 이상 비활성 후 복귀 시:
```
"회의 다녀오셨나요? worklog를 작성할까요?"
```
### 세션 완료 알림
작업 창 그룹 닫기 감지 시:
```
"VSCode + Gerrit 작업이 완료된 것 같습니다.
2시간 개발 작업을 worklog에 추가할까요?"
```
### 일일 요약 알림
하루 종료 시:
```
"오늘 3개의 미작성 worklog가 있습니다. 자동 생성할까요?"
```
## 🗄️ 데이터 저장
### SQLite 데이터베이스
- **activities**: 기본 활동 로그
- **sessions**: 활동 세션 그룹화
- **worklog_suggestions**: 제안된 worklog
- **user_preferences**: 사용자 설정
- **activity_rules**: 활동 분류 규칙
### 데이터 보안
- 모든 데이터는 로컬에 저장
- 민감한 URL 자동 필터링
- 사용자 동의 기반 수집
- 30일 후 자동 정리
## 🔗 기존 서버 연동
mcp-sprint-work-logs 서버와 완벽 통합:
- 동일한 환경변수 사용
- create_work_entry 함수 직접 호출
- 현재 스프린트 이슈 자동 연결
- LG전자 Work Description 양식 준수
## ⚙️ 설정 옵션
### 모니터링 설정
```javascript
await configure_monitoring_settings({
"check_interval": 5, // 체크 간격 (초)
"inactivity_threshold": 30, // 비활성 임계값 (분)
"min_session_duration": 15, // 최소 세션 시간 (분)
"auto_approve": false // 자동 승인 여부
});
```
## 🚨 문제 해결
### 권한 문제
- 관리자 권한으로 실행
- 보안 소프트웨어 예외 설정
### 브라우저 히스토리 접근 불가
- 브라우저 완전 종료 후 재시도
- 브라우저 설정에서 히스토리 허용 확인
### 알림이 표시되지 않음
- Windows 알림 설정 확인
- plyer 라이브러리 재설치
## 📈 성능 최적화
- CPU 사용률 < 1%
- 메모리 사용량 < 50MB
- 배치 처리로 DB 최적화
- 자동 데이터 정리
## 🔮 향후 계획
- **Phase 2**: 고급 패턴 학습
- **Phase 3**: 다중 모니터 지원
- **Phase 4**: 맥/리눅스 지원
- **Phase 5**: 팀 대시보드
## 📄 라이선스
MIT License
## 👨💻 개발자
jaehyung1.lee - LG전자 SW개발담당