UNPKG

mcp-activity-tracker

Version:

MCP server for automatic worklog creation based on computer activity monitoring

191 lines (151 loc) 4.94 kB
# 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개발담당