ChatGPT 개발자 모드

ChatGPT 개발자 모드

ChatGPT 개발자 모드(Developer mode)는 모든 도구에 대해 읽기와 쓰기를 모두 지원하는 완전한 Model Context Protocol(MCP) 클라이언트를 제공합니다. 강력하지만 위험할 수 있어, 앱을 안전하게 구성하고 테스트할 수 있는 개발자를 위한 기능입니다. 개발자 모드를 사용할 때는 프롬프트 인젝션과 기타 위험, 데이터를 파괴할 수 있는 쓰기 작업에서의 모델 실수, 정보 탈취를 시도하는 악성 MCP에 주의하세요.

출처: 문서

본문

ChatGPT 개발자 모드란 무엇인가요

ChatGPT 개발자 모드는 모든 도구에 대해 읽기와 쓰기 모두를 지원하는 완전한 Model Context Protocol(MCP) 클라이언트를 제공합니다. 강력하지만 위험할 수 있고, 앱을 안전하게 구성하고 테스트하는 방법을 이해하는 개발자를 위한 것입니다. 개발자 모드를 사용할 때는 프롬프트 인젝션과 기타 위험, 데이터를 파괴할 수 있는 쓰기 작업에서의 모델 실수, 정보를 훔치려는 악성 MCP를 주의하세요.

사용 방법

  • 자격: 웹에서 Pro, Plus, Business, Enterprise, Education 계정에서 사용할 수 있습니다.

  • 개발자 모드 활성화: ChatGPT에서 Settings → Security and login을 열고 Developer mode를 켜세요.

  • MCP 서버에서 앱 만들기:

    • ChatGPT Plugins로 이동하세요.
    • 더하기(+) 버튼을 선택하고 원격 MCP 서버용 개발자 모드 앱을 만드세요. 대화 중에 컴포저(composer)의 Developer mode 도구에 나타납니다. Developer mode를 켠 뒤에는 더하기 버튼이 개발자 모드 앱만 만듭니다.
      • 지원되는 MCP 프로토콜: SSE와 스트리밍 HTTP.
      • 지원되는 인증: OAuth, 인증 없음(No Authentication), 혼합 인증(Mixed Authentication)
        • OAuth의 경우 정적 자격 증명(static credentials)이 제공되면 이를 사용합니다. 그렇지 않으면 인증 서버가 지원을 알리고 앱 생성자가 CIMD를 선택할 때 ChatGPT가 Client ID Metadata Documents(CIMD)를 사용할 수 있습니다. CIMD는 공개 클라이언트 토큰 교환(none)과 서명된 클라이언트 어서션 토큰 교환(private_key_jwt)을 지원합니다. ChatGPT는 구성된 경우 DCR도 사용할 수 있습니다.
        • 혼합 인증은 OAuth와 인증 없음을 지원합니다. 즉 initialize와 list tools API는 인증 없이 사용하고, 도구는 해당 도구 메타데이터에 설정된 보안 체계에 따라 OAuth 또는 인증 없음을 사용합니다.
    • 만든 앱은 앱 설정의 "Drafts" 아래에 표시됩니다.
  • 도구 관리: 앱 설정에 앱별 상세 페이지가 있습니다. 여기에서 도구를 켜거나 끄고, 앱을 새로고침하여 MCP 서버에서 새 도구·설명·서버 지침을 가져올 수 있습니다.

  • 대화에서 앱 사용: Plus 메뉴에서 Developer mode를 선택하고 대화에 사용할 앱을 선택하세요. 올바른 도구를 호출하려면 다양한 프롬프팅 기법을 시도해 볼 필요가 있습니다. 예를 들면:

    • 명시적으로 지정하기: ""Acme CRM" 앱의 "update_record" 도구를 사용해서 …". 필요한 경우 서버 라벨과 도구 이름을 포함하세요.
    • 모호함을 피하려면 대안을 금지하세요: "내장 브라우징이나 다른 도구는 사용하지 말고 Acme CRM 앱만 사용하세요."
    • 유사한 도구 구분하기: "회의에는 Calendar.create_event를 우선 사용하고, 일정 잡기에 Reminders.create_task는 사용하지 마세요."
    • 입력 형태와 순서 지정하기: "먼저 { path: \"…\" }과 함께 Repo.read_file을 호출하세요. 그다음 수정된 내용으로 Repo.write_file을 호출하세요. 다른 도구는 호출하지 마세요."
    • 여러 앱이 겹치면 선호를 미리 명시하세요(예: "신뢰할 수 있는 데이터에는 CompanyDB를 사용하고, CompanyDB가 결과를 반환하지 않을 때만 다른 소스를 사용하세요").
    • 개발자 모드는 search/fetch 도구를 요구하지 않습니다. 앱이 노출하는 모든 도구(쓰기 작업 포함)는 확인 설정에 따라 사용할 수 있습니다.
    • 더 자세한 지침은 도구 사용과 프롬프팅을 참고하세요.
    • 더 나은 도구 설명으로 도구 선택을 개선하세요: MCP 서버에서 동작 중심(action-oriented)의 도구 이름과 설명을 작성하되 "이런 경우에 사용하세요…" 지침을 포함하고, 금지·경계 케이스를 명시하며, 매개변수 설명(및 enum)을 추가해 모델이 유사한 도구 중 올바른 도구를 고르고 부적절한 경우 내장 도구를 피하도록 도와주세요.
    • 도구 간 지침을 위한 서버 지침 추가: MCP instructions 필드를 사용해 필수 도구 순서, 공유 속도 제한, 도구 간 관계 같은 서버 차원의 지침을 제공하세요. 처음 512자를 자립적으로 유지하세요.

    예시:

  Schedule a 30 minute meeting tomorrow at 3pm PT with
  [email protected] and [email protected] using "Calendar.create_event".
  Do not use any other scheduling tools.
  Create a pull request using "GitHub.open_pull_request" from branch
  "feat-retry" into "main" with title "Add retry logic" and body "…".
  Do not push directly to main.
  • 도구 호출 검토 및 확인하기:
    • JSON 도구 페이로드를 검사해 정확성을 확인하고 문제를 디버깅하세요. 각 도구 호출마다 캐럿(carat)으로 도구 호출 세부 정보를 펼치거나 접을 수 있습니다. 도구 입력과 출력의 전체 JSON 내용을 볼 수 있습니다.
    • 쓰기 작업은 기본적으로 확인을 요구합니다. 쓰기 작업으로 전송될 도구 입력을 주의 깊게 검토해 동작이 원하는 대로인지 확인하세요. 잘못된 쓰기 작업은 데이터를 의도치 않게 파괴·변경·공유할 수 있습니다!
    • 읽기 전용 감지: readOnlyHint 도구 어노테이션을 존중합니다(MCP 도구 어노테이션 참고). 이 힌트가 없는 도구는 쓰기 작업으로 취급합니다.
    • 대화에 대해 특정 도구의 승인/거부 선택을 기억하도록 선택할 수 있으며, 그러면 남은 대화 전체에 그 선택이 적용됩니다. 때문에 승인 선택을 기억하게 하려면, 승인 없이 추가 쓰기 작업을 해도 되는 신뢰할 수 있는 앱일 때만 허용해야 합니다. 새 대화에서는 다시 확인을 요구하고, 같은 대화를 새로고침해도 다음 턴에서 다시 확인을 요구합니다.

더 알아보기 (Learn more)