사용자 지정 MCP 서버 연결
Model Context Protocol(MCP) 서버를 ChatGPT에 플러그인으로 연결하세요. ChatGPT는 서버에서 제공하는 읽기 도구와 쓰기 도구를 모두 지원합니다.
신뢰할 수 있는 MCP 서버에만 연결하세요. 신뢰할 수 없는 서버는 앱을 사용하는 동안 공유된 정보에 접근하거나 이를 탈취할 수 있습니다. 또한 ChatGPT를 속여 도구를 의도하지 않은 방식으로 사용하게 할 수 있으며, 이로 인해 데이터가 변경되거나 삭제될 수 있습니다. 서버를 연결하기 전에 프롬프트 인젝션 및 기타 위험을 검토하세요.
사용 방법
-
접속 방법: 웹에서 ChatGPT를 사용하세요. 사용자 지정 MCP 서버를 추가하거나 사용할 때는 워크스페이스 권한과 락다운 모드를 비롯한 보안 제한이 적용됩니다.
-
MCP 서버를 플러그인으로 추가하기:
- ChatGPT 플러그인으로 이동하세요.
- 더하기 버튼을 누른 다음 사용자 지정 MCP 서버 추가 항목을 선택하세요.
- 이름을 입력하세요. 설명은 선택 사항입니다. 연결 항목에서 서버 URL을 입력하세요. 또는 터널을 선택해 보안 MCP 터널을 사용하세요.
- 서버의 인증 방식을 설정하세요.
- 위험 경고를 읽고 위험을 이해했으며 계속 진행하겠습니다 항목을 선택하세요.
- 플러그인으로 만들기 버튼을 선택하세요.
- 지원하는 MCP 프로토콜은 SSE와 스트리밍 HTTP입니다.
- 인증 옵션에는 OAuth, 인증 없음, OAuth 또는 인증 없음이 있습니다.
- OAuth에서는 정적 자격 증명이 제공되면 해당 자격 증명을 사용합니다. 정적 자격 증명이 없는 경우, 인가 서버가 CIMD를 지원한다고 알리고 앱 제작자가 CIMD를 선택하면 ChatGPT는 클라이언트 ID 메타데이터 문서(CIMD)를 사용할 수 있습니다. CIMD는 공개 클라이언트의 토큰 교환(
none)과 서명된 클라이언트 어설션을 사용한 토큰 교환(private_key_jwt)을 지원합니다. DCR을 설정한 경우 ChatGPT는 DCR도 사용할 수 있습니다. - 혼합 인증은 OAuth와 인증 없는 접근을 모두 지원합니다. 초기화 API와 도구 목록 조회 API는 인증 없이 호출하며, 개별 도구는 도구 메타데이터에 설정된 보안 스킴에 따라 OAuth를 사용하거나 인증 없이 호출합니다.
- OAuth에서는 정적 자격 증명이 제공되면 해당 자격 증명을 사용합니다. 정적 자격 증명이 없는 경우, 인가 서버가 CIMD를 지원한다고 알리고 앱 제작자가 CIMD를 선택하면 ChatGPT는 클라이언트 ID 메타데이터 문서(CIMD)를 사용할 수 있습니다. CIMD는 공개 클라이언트의 토큰 교환(
- 생성한 플러그인은 개인 플러그인 목록이나 해당 플러그인을 만든 워크스페이스에서 찾을 수 있습니다. 대화에서 사용하기 전에 플러그인을 설치하세요.
-
도구 관리: 앱 설정에는 앱별 상세 페이지가 있습니다. 이 페이지에서 도구를 켜거나 끌 수 있습니다. 앱을 새로 고치면 MCP 서버에서 새 도구, 설명, 서버 지침을 가져옵니다.
-
대화에서 앱 사용하기: 프롬프트 입력란에
@를 입력하고 설치한 플러그인을 선택하세요. 워크스페이스 권한과 보안 제한이 허용하는 범위에서 사용자 지정 MCP 플러그인을 다른 앱과 함께 사용할 수 있습니다. 원하는 도구를 호출하려면 프롬프트를 여러 방식으로 작성해 봐야 할 수도 있습니다. 예를 들어 다음과 같이 지시할 수 있습니다.- 사용할 도구를 명시하세요.
Use the "Acme CRM" app's "update_record" tool to …와 같이 지시하세요. 필요하면 서버 레이블과 도구 이름을 함께 지정하세요. - 다른 도구를 사용하지 말라고 명시해 혼동을 피하세요. “내장 브라우징 기능이나 다른 도구는 사용하지 말고 Acme CRM 앱만 사용해 주세요.”
- 용도가 비슷한 도구는 구분해서 지정하세요. “회의에는
Calendar.create_event를 우선 사용하고, 일정 예약에는Reminders.create_task를 사용하지 마세요.” - 입력 형식과 호출 순서를 지정하세요. “먼저
Repo.read_file을 호출할 때{ path: "…" }를 전달하세요. 그런 다음Repo.write_file을 호출할 때 수정한 내용을 전달하세요. 다른 도구는 호출하지 마세요.” - 여러 앱의 기능이 겹치면 어느 앱을 우선할지 처음부터 알려 주세요. 예를 들어 “신뢰할 수 있는 기준 데이터가 필요할 때는
CompanyDB를 사용하세요.CompanyDB에서 결과를 반환하지 않을 때만 다른 출처를 사용하세요.”라고 지시할 수 있습니다. - 사용자 지정 MCP 서버에는
search/fetch도구가 필수는 아닙니다. 확인 설정에 따라 쓰기 작업을 포함해 앱에서 제공하는 모든 도구를 사용할 수 있습니다. - 자세한 내용은 도구 사용과 프롬프트 작성을 참고하세요.
- 모델이 도구를 올바르게 선택할 수 있도록 설명을 구체적으로 작성하세요. MCP 서버에서 도구의 이름과 설명에 수행할 작업을 명확히 드러내세요. 설명에는 “다음과 같은 경우에 사용하세요”와 같은 지침을 넣고, 사용하면 안 되는 경우와 예외적인 경우를 명시하세요. 매개변수 설명과 열거형 값도 추가하면 모델이 비슷한 도구 중에서 적절한 도구를 선택하고 내장 도구가 적합하지 않은 상황에서 사용을 피하는 데 도움이 됩니다.
- 여러 도구에 걸쳐 적용할 지침은 서버 지침으로 추가하세요. MCP의
instructions필드에 필수 도구 호출 순서, 여러 도구에 공통으로 적용되는 요청 한도, 도구 간 관계 등 서버 전체에 적용할 지침을 작성하세요. 처음 512자만 읽어도 의미가 통하도록 작성하세요.
예시:
Schedule a 30‑minute meeting tomorrow at 3pm PT with alice@example.com and bob@example.com 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 페이로드를 살펴보고 내용이 올바른지 확인하거나 문제를 디버깅하세요. 각 도구 호출의 상세 정보를 펼치면 도구 입력과 출력의 전체 JSON 내용을 볼 수 있습니다.
- 쓰기 작업은 기본적으로 사용자 확인이 필요합니다. 쓰기 작업에 전달될 도구 입력을 주의 깊게 검토하고 의도한 동작인지 확인하세요. 잘못된 쓰기 작업으로 데이터가 의도치 않게 삭제, 변경 또는 공유될 수 있습니다!
- 읽기 전용 도구 판별에는
readOnlyHint도구 어노테이션을 사용합니다(MCP 도구 어노테이션 참고). 이 힌트가 없는 도구는 쓰기 작업으로 처리합니다. - 특정 도구를 승인하거나 거부할 때 해당 선택을 기억하도록 설정할 수 있습니다. 그러면 그 대화가 끝날 때까지 같은 선택이 적용됩니다. 따라서 해당 앱을 잘 알고 신뢰하며 추가 승인 없이도 이후 쓰기 작업을 맡길 수 있는 경우에만 승인 결정을 기억하도록 설정하세요. 새 대화를 시작하면 다시 확인을 요청합니다. 같은 대화를 새로 고쳐도 이후에 도구를 호출할 때 다시 확인을 요청합니다.