# ChatGPT

호스팅된 Streamable HTTP MCP 및 브라우저 OAuth를 통해 memory:read 및 memory:write 범위로 ChatGPT를 연결합니다.

- Canonical: https://docs.xmemo.dev/ko/docs/mcp/chatgpt
- Locale: ko-KR
- Content-Locale: ko-KR
- Canonical-Content-Digest: 0a34bc1a4a60d47cc1fcab5b55616f0d81c50ddc2815030f687094efa4fdc4a5
- Edition-Digest: 312a5a3ee3057d6b7af649f83b8030ba4576931118f811f4e692e0bc982df809
- Source-Revision: sha256:9bc37480fb26a371846f25bf5ea25d86ddd8bd3808e3df34131ef15403069090

## 사전 요구 사항

원격 MCP 서버 및 호스팅된 Streamable HTTP 엔드포인트를 지원하는 OpenAI 앱 구성을 사용하세요. 런타임 및 사전 요구 사항:

- 구체적인 인터페이스: ChatGPT 웹 및 데스크톱 클라이언트 (OpenAI Apps / Actions).
- 엔드포인트: https://xmemo.dev/mcp.
- 전송: Streamable HTTP (streamable-http).
- 인증 모드: memory:read 및 memory:write 범위를 사용하는 OAuth.
- 계정: https://xmemo.dev 의 유효한 XMemo 계정.

## 설치 / 설정

ChatGPT 클라이언트 또는 OpenAI 플랫폼 대시보드에서 원격 연결을 위한 호스팅된 MCP URL 및 OAuth 메타데이터를 등록합니다:

- 앱 대시보드에서 호스팅된 MCP URL 구성: https://xmemo.dev/mcp.
- 동의 시 memory:read 및 memory:write 요청.
- 앱 목록에 베어러 토큰을 추가하지 마세요.

## 자격 증명 설정

키 필요 없음 — 브라우저 OAuth 완료. ChatGPT는 OAuth 권한 부여를 통해 자격 증명을 수신합니다. XMEMO_KEY 를 설정하거나 Authorization 헤더를 추가하지 마세요:

```text
No XMEMO_KEY
Complete browser OAuth in ChatGPT
```

## XMEMO_AGENT_INSTANCE_ID 생성 / 확인

검토된 ChatGPT OAuth 목록에는 클라이언트 측 ID 헤더가 없습니다. 앱 구성에 XMEMO_AGENT_INSTANCE_ID 를 임의로 생성하거나 붙여넣지 마세요. 이 클라이언트 경로에 대한 귀속이 OAuth 권한 부여에 의해 관리되는지 확인하세요.

## 기존 구성 블록 유지

검토된 ChatGPT 구성 블록을 사용하세요. 호스팅된 URL, OAuth 모드 및 요청된 범위를 유지하고 클라이언트에 필요한 로컬 대시보드 값만 변경하세요:

```json
{
  "servers": {
    "xmemo": {
      "type": "http",
      "url": "https://xmemo.dev/mcp"
    }
  }
}
```

## 클라이언트 다시 시작

앱 구성을 저장하고 오래된 MCP 연결을 닫은 다음 ChatGPT 앱 또는 대화를 다시 열어 최신 OAuth 메타데이터를 로드하도록 합니다.

## 실제 recall 호출로 테스트

첫 번째 MCP 호출을 읽기 전용으로 설정합니다. 이는 상태 확인 플레이스홀더가 아니라 실제 리콜 호출이며 메모리에 쓰지 않습니다.

```text
recall({ query: "connection check", limit: 1 })
```

## 예상 응답(리터럴 형태)

성공적인 호출은 아래의 공개 순위 텍스트 형식을 반환합니다. 참조 및 콘텐츠는 승인된 메모리 공간의 실제 값입니다.

```text
### XMemo Memory Results:
1. Reference: <opaque-memory-id> | Location: <location>
   > <memory content>
```

## 첫 번째 유용한 작업: 합성 메모리 수명 주기

ChatGPT 내에서 완전한 합성 메모리 작업을 연습합니다:

- 1. 합성 사실 저장: 내용 "Demo project timestamps use UTC." 및 경로 "projects/demo-onboarding/conventions" 로 remember 를 호출하도록 ChatGPT에 요청합니다.
- 2. 상태 비저장 전환: 대화 내 메모리가 전달되지 않도록 ChatGPT에서 완전히 새로운 채팅 스레드를 엽니다.
- 3. 출처 귀속 리콜: ChatGPT에 "demo project timestamp format" 을 리콜하도록 요청합니다. 반환된 Reference 및 Location 을 확인합니다.
- 4. 메모리 수정: 활성 ID로 update_memory 를 호출하여 규칙을 ISO 8601 형식으로 업데이트하도록 ChatGPT에 요청합니다.
- 5. 선택적 정리: 테스트가 끝나면 메모리 ID로 forget 을 호출하도록 ChatGPT에 요청합니다.

## 기능 및 프로필 도구

ChatGPT는 chatgpt-public 프로필에 대한 MCP 문서 계약에 정의된 프로필 한정 도구에 액세스할 수 있습니다:

- 핵심 메모리 도구: remember, recall, update_memory, forget, read_memory, explain_memory, search_memory, recall_context.
- 프로젝트 및 컨텍스트 도구: get_mcp_identity, get_project_summary, project, todo, update_state, record_event, restore_memory, analyze_memory_text, memory_overview.
- 대화형 작업 공간: open_project_workspace, open_todo_board, open_ledger, ledger.

## 제한 사항 및 경계

ChatGPT 연동에 대한 운영 경계 및 제약 조건:

- 작업 공간 경계: 메모리 접근은 승인된 사용자의 작업 공간으로 엄격히 제한됩니다.
- Skill 지원: ChatGPT는 도구 호출을 원격으로 실행하며 독립형 로컬 Node.js 스킬을 실행하지 않습니다.
- OAuth 세션: 비활성 OAuth 세션은 주기적으로 만료될 수 있으며 브라우저에서 한 번의 클릭으로 재인증해야 합니다.

## 일반적인 오류

ChatGPT 전용 OAuth 실패는 실제 토큰 엔드포인트 응답에 매핑됩니다:

- invalid_grant — 인증 코드가 유효하지 않거나 만료되었거나 이미 사용되었습니다: ChatGPT를 다시 연결하고 다시 인증하세요.
- invalid_target — OAuth 리소스가 이 MCP 서버와 일치하지 않습니다: 리소스로 https://xmemo.dev/mcp 를 사용하여 연결을 다시 시작하세요.
- 403 insufficient_scope — 권한 부여에 memory:read 또는 memory:write 가 포함되지 않았습니다: 요청된 범위를 승인하고 다시 연결하세요.

## 업데이트 및 제거

ChatGPT 유지 관리 절차:

- 업데이트: 도구 정의를 새로 고치려면 ChatGPT 클라이언트를 업데이트하거나 다시 인증하세요.
- 제거: ChatGPT Settings -> Connected Accounts / MCP 에서 XMemo 연결을 제거하세요.

## ChatGPT / OpenAI Apps SDK

OAuth marketplace lane: configure the hosted MCP URL and OAuth metadata in the OpenAI app dashboard; never paste XMEMO_KEY or Bearer tokens into the listing.

```
{
  "mcpServers": {
    "XMemo": {
      "url": "https://xmemo.dev/mcp",
      "transport": "streamable-http",
      "auth": {
        "type": "oauth2",
        "resource": "https://xmemo.dev/mcp",
        "scopes": ["memory:read", "memory:write"]
      }
    }
  }
}
```
