change-user-day-index MCP Tool
개요
change-user-day-index MCP Tool은 특정 사용자의 가상 시간을 치료 일차(dayIndex) 기준으로 변경하는 도구입니다. 이 도구를 통해 테스트나 QA 목적으로 사용자의 시간을 조작하여 특정 시나리오를 재현하거나 검증할 수 있습니다.
이 문서에서는 다음 사용 방법을 다룹니다:
- JSON 형식: 구조화된 데이터로 정확한 제어가 필요한 경우
- LLM AI Chat: 자연어로 간편하게 사용하고 싶은 경우
두 방법 모두 같은 결과를 제공하며, 사용자의 선호도와 상황에 따라 선택할 수 있습니다.
이 도구는 테스트 및 QA 목적으로만 사용되어야 합니다. 실제 사용자의 시간을 변경하면 앱의 정상적인 동작에 영향을 줄 수 있습니다.
도구 정보
- 이름:
change_user_day_index - 설명: 특정 사용자의 가상 시간을 dayIndex 기준으로 변경
- 카테고리: 시간 관리 도구
- 최소 dayIndex: 2 (치료 2일차부터 가능)
파라미터
필수 파라미터
| 파라미터 | 타입 | 설명 | 예시 |
|---|---|---|---|
userId | string | 대상 사용자 ID (UUID 형식) | "3a5822e5-595e-4bd5-b06a-f46104a34bd5" |
dayIndex | number | 설정할 치료 일차 (최소값: 2) | 10 |
선택 파라미터
| 파라미터 | 타입 | 기본값 | 설명 | 예시 |
|---|---|---|---|---|
reason | string | "테스트를 위해서" | 시간 변경 사유 | "시나리오 검증" |
timezoneId | string | "Europe/Berlin" | 타임존 설정 | "Asia/Seoul" |
지원 타임존
- Europe/Berlin: 독일 시간 (기본값)
- Asia/Seoul: 한국 시간
- America/New_York: 미국 동부 시간
- UTC: 협정 세계시
LLM AI Chat에서의 사용법
LLM AI Chat에서는 자연어로 사용자의 시간 변경을 요청할 수 있습니다. 다음과 같은 방식으로 사용할 수 있습니다:
기본 시간 변경 요청
사용자 3a5822e5-595e-4bd5-b06a-f46104a34bd5의 시간을 10일차로 변경해주세요.
또는
사용자 ID가 3a5822e5-595e-4bd5-b06a-f46104a34bd5인 사용자를 치료 10일차로 이동시켜주세요.
사유와 함께 변경
사용자 3a5822e5-595e-4bd5-b06a-f46104a34bd5를 15일차로 변경해주세요.
- 사유: 수면 일지 테스트를 위해
테스트 사용자를 30일차로 이동시켜주세요.
- 사용자 ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 이유: 월말 시나리오 검증
타임존 지정과 함께 변경
다음 조건으로 사용자 시간을 변경해주세요:
- 사용자: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 일차: 7
- 타임존: Asia/Seoul
- 사유: 한국 시간 기준 테스트
여러 단계 시간 이동
사용자 3a5822e5-595e-4bd5-b06a-f46104a34bd5를 먼저 5일차로 이동시킨 후,
테스트를 진행하고 다시 20일차로 이동시켜주세요.
자연어 응답 예시
요청: "사용자 3a5822e5-595e-4bd5-b06a-f46104a34bd5를 10일차로 변경해주세요."
응답: "사용자의 가상 시간이 성공적으로 변경되었습니다.
변경된 시간 정보:
- 사용자 ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 이전 시간: 2025-01-05T23:00:00.000Z
- 현재 시간: 2025-01-10T23:00:00.000Z
- 설정된 일차: 10일차
- 타임존: Europe/Berlin
- 변경자: 00000000-0000-0000-0000-000000000000
- 변경 시각: 2025-01-08T10:25:30.123Z
- 이벤트 발행: 완료
- 변경 사유: 테스트를 위해서
사용자는 이제 치료 10일차 상태로 앱을 사용하게 됩니다."
팁과 모범 사례
-
최소 일차 확인: dayIndex는 최소 2 이상이어야 합니다.
-
사유 명시: 변경 사유를 명확히 기록하면 나중에 추적이 용이합니다.
-
점진적 변경: 큰 폭의 시간 변경보다는 단계적으로 변경하며 테스트하세요.
-
타임존 고려: 특정 지역 시나리오 테스트 시 적절한 타임존을 설정하세요.
-
변경 후 확인: 시간 변경 후 사용자의 데이터를 조회하여 정상 반영되었는지 확인하세요.
사용 예시 (JSON 형식)
기본 시간 변경
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 10
}
}
이 경우 다음 기본값들이 사용됩니다:
reason: "테스트를 위해서"timezoneId: "Europe/Berlin"
사용자 지정 구성
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 15,
"reason": "2주차 설문 조사 시나리오 테스트",
"timezoneId": "Asia/Seoul"
}
}
응답 형식
성공적으로 시간이 변경되면 다음과 같은 정보가 반환됩니다:
{
"content": [
{
"type": "text",
"text": "Successfully changed virtual time for user 3a5822e5-595e-4bd5-b06a-f46104a34bd5:\n\nUser ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5\nPrevious Time: 2025-01-05T23:00:00.000Z\nCurrent Time: 2025-01-10T23:00:00.000Z\nDay Index: 10\nTime Zone: Europe/Berlin\nChanged By: 00000000-0000-0000-0000-000000000000\nChange Timestamp: 2025-01-08T10:25:30.123Z\nEvent Published: Yes\nReason: 테스트를 위해서"
}
]
}
사용 시나리오
시나리오 1: 주간 설문 테스트
LLM AI Chat:
7일차 설문 조사를 테스트하기 위해 사용자를 이동시켜주세요.
- 사용자 ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 목표 일차: 7
- 사유: PHQ-9 주간 설문 테스트
JSON 형식:
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 7,
"reason": "PHQ-9 주간 설문 테스트"
}
}
시나리오 2: 월말 시나리오 검증
LLM AI Chat:
월말 보고서 생성을 테스트하기 위해 사용자를 30일차로 이동시켜주세요.
- 사용자: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 사유: 월말 통계 보고서 검증
JSON 형식:
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 30,
"reason": "월말 통계 보고서 검증"
}
}
시나리오 3: 시간대별 알림 테스트
LLM AI Chat:
한국 시간 기준으로 알림 테스트를 위해 사용자 시간을 변경해주세요.
- 사용자: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 일차: 14
- 타임존: Asia/Seoul
- 사유: 한국 시간대 알림 테스트
JSON 형식:
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 14,
"timezoneId": "Asia/Seoul",
"reason": "한국 시간대 알림 테스트"
}
}
시나리오 4: 치료 종료 시점 테스트
LLM AI Chat:
치료 마지막 날 시나리오를 테스트하기 위해 사용자를 90일차로 이동시켜주세요.
- 사용자 ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
- 사유: 치료 종료 프로세스 검증
JSON 형식:
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 90,
"reason": "치료 종료 프로세스 검증"
}
}
시나리오 5: 점진적 시간 이동 테스트
LLM AI Chat:
수면 패턴 변화를 관찰하기 위해 사용자를 단계적으로 이동시켜주세요.
1. 먼저 5일차로 이동 (초기 패턴 확인)
2. 그 다음 15일차로 이동 (중간 패턴 확인)
3. 마지막으로 30일차로 이동 (월말 패턴 확인)
사용자 ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
JSON 형식 (순차 실행):
// Step 1
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 5,
"reason": "수면 패턴 변화 관찰 - 초기"
}
}
// Step 2
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 15,
"reason": "수면 패턴 변화 관찰 - 중간"
}
}
// Step 3
{
"tool": "change_user_day_index",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"dayIndex": 30,
"reason": "수면 패턴 변화 관찰 - 월말"
}
}
문제 해결
일반적인 오류
- 인증 실패: Service Account 토큰이 유효하지 않은 경우
- 권한 부족: 시간 변경 권한이 없는 경우
- 잘못된 dayIndex: 2보다 작은 값을 입력한 경우
- 사용자 없음: 존재하지 않는 사용자 ID를 입력한 경우
- 잘못된 타임존: 지원하지 않는 타임존을 입력한 경우
에러 응답 예시
{
"content": [
{
"type": "text",
"text": "Error changing user virtual time: Day index must be at least 2"
}
],
"isError": true
}
모니터링 및 추적
1. 변경 이력 조회
LLM AI Chat:
사용자 3a5822e5-595e-4bd5-b06a-f46104a34bd5의 시간 변경 이력을 조회해주세요.
JSON 형식:
{
"tool": "query_logs",
"arguments": {
"startTime": "2025-01-01T00:00:00.000Z",
"endTime": "2025-01-08T23:59:59.999Z",
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"serviceName": "time-machine"
}
}
2. 현재 상태 확인
LLM AI Chat:
사용자 3a5822e5-595e-4bd5-b06a-f46104a34bd5의 현재 치료 일차와
수면 데이터를 확인해주세요.
JSON 형식:
{
"tool": "sleep_log_data_query",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"limit": 1,
"sortOrder": "DESC"
}
}
3. 설문 응답 확인
LLM AI Chat:
시간 변경 후 사용자의 설문 응답 상태를 확인해주세요.
- 사용자 ID: 3a5822e5-595e-4bd5-b06a-f46104a34bd5
JSON 형식:
{
"tool": "questionnaire_data_query",
"arguments": {
"userId": "3a5822e5-595e-4bd5-b06a-f46104a34bd5",
"includeDetails": true
}
}
4. 에러 발생 확인
LLM AI Chat:
시간 변경 관련 에러가 발생했는지 확인해주세요.
JSON 형식:
{
"tool": "query_recent_errors",
"arguments": {
"hours": 24,
"serviceName": "time-machine"
}
}
성능 고려사항
- 연속 변경 주의: 짧은 시간 내 여러 번 시간을 변경하면 이벤트 처리에 부하가 발생할 수 있습니다.
- 대량 사용자 변경: 여러 사용자의 시간을 동시에 변경할 때는 적절한 간격을 두세요.
- 이벤트 전파: 시간 변경 후 모든 관련 서비스에 이벤트가 전파되는 시간을 고려하세요.
- 데이터 일관성: 시간 변경 후 데이터 일관성 확인을 위해 잠시 대기 후 조회하세요.
보안 및 프라이버시
- 시간 변경은 권한이 있는 사용자만 실행할 수 있습니다
- 모든 시간 변경 작업은 로그에 기록됩니다
- 변경 사유가 항상 기록되어 추적 가능합니다
- 실제 사용자의 시간은 명확한 사유 없이 변경하지 않습니다
- 테스트 완료 후 필요시 원래 시간으로 복원합니다
주의사항
- 프로덕션 환경에서는 실제 사용자의 시간을 변경하지 마세요
- 시간을 과거로 되돌릴 수는 없습니다 (dayIndex는 증가만 가능)
- 시간 변경은 사용자의 모든 시간 관련 기능에 영향을 줍니다
- 변경된 시간은 사용자가 앱을 재시작해도 유지됩니다
관련 도구
- get_current_time: 현재 시간 조회
- sleep_log_data_query: 수면 로그 데이터 조회
- questionnaire_data_query: 설문 응답 데이터 조회
- query_logs: 시간 변경 로그 조회
- query_recent_errors: 에러 로그 조회
관련 API
- Time Machine API: REST API를 통한 시간 관리
- User API: 사용자 정보 및 상태 관리
- Event API: 시간 변경 이벤트 처리