본문으로 건너뛰기

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일차부터 가능)

파라미터

필수 파라미터

파라미터타입설명예시
userIdstring대상 사용자 ID (UUID 형식)"3a5822e5-595e-4bd5-b06a-f46104a34bd5"
dayIndexnumber설정할 치료 일차 (최소값: 2)10

선택 파라미터

파라미터타입기본값설명예시
reasonstring"테스트를 위해서"시간 변경 사유"시나리오 검증"
timezoneIdstring"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일차 상태로 앱을 사용하게 됩니다."

팁과 모범 사례

  1. 최소 일차 확인: dayIndex는 최소 2 이상이어야 합니다.

  2. 사유 명시: 변경 사유를 명확히 기록하면 나중에 추적이 용이합니다.

  3. 점진적 변경: 큰 폭의 시간 변경보다는 단계적으로 변경하며 테스트하세요.

  4. 타임존 고려: 특정 지역 시나리오 테스트 시 적절한 타임존을 설정하세요.

  5. 변경 후 확인: 시간 변경 후 사용자의 데이터를 조회하여 정상 반영되었는지 확인하세요.

사용 예시 (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"
}
}

성능 고려사항

  1. 연속 변경 주의: 짧은 시간 내 여러 번 시간을 변경하면 이벤트 처리에 부하가 발생할 수 있습니다.
  2. 대량 사용자 변경: 여러 사용자의 시간을 동시에 변경할 때는 적절한 간격을 두세요.
  3. 이벤트 전파: 시간 변경 후 모든 관련 서비스에 이벤트가 전파되는 시간을 고려하세요.
  4. 데이터 일관성: 시간 변경 후 데이터 일관성 확인을 위해 잠시 대기 후 조회하세요.

보안 및 프라이버시

  • 시간 변경은 권한이 있는 사용자만 실행할 수 있습니다
  • 모든 시간 변경 작업은 로그에 기록됩니다
  • 변경 사유가 항상 기록되어 추적 가능합니다
  • 실제 사용자의 시간은 명확한 사유 없이 변경하지 않습니다
  • 테스트 완료 후 필요시 원래 시간으로 복원합니다

주의사항

중요
  • 프로덕션 환경에서는 실제 사용자의 시간을 변경하지 마세요
  • 시간을 과거로 되돌릴 수는 없습니다 (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: 시간 변경 이벤트 처리

관련 문서