이 가이드는 Snowflake 관리형 MCP 서버를 통해 ChatGPT를 Snowflake에 연결하려는 ChatGPT 워크스페이스 관리자 또는 ChatGPT Plus나 Pro 사용자를 위한 안내서입니다.
대부분의 설정은 Snowflake에서 진행합니다. Snowflake 준비가 끝나면 ChatGPT에서 Snowflake 템플릿 연결을 완료한 다음, 해당 템플릿을 사용하는 Snowflake 플러그인을 활성화하세요.
기본 제공 OAuth: Snowflake 계정과 ChatGPT에서 사용할 수 있는 경우, Snowflake 관리자가 활성화한 ChatGPT 파트너 애플리케이션을 사용하세요. Snowflake에 로그인하세요. 조직의 SSO가 구성되어 있다면 SSO로 로그인하세요. ChatGPT에 클라이언트 ID나 클라이언트 시크릿을 입력할 필요가 없습니다. 아래의 ‘기본 제공 OAuth’ 섹션을 따르세요.
사용자 지정 OAuth 클라이언트: 조직에서 자체 OAuth 클라이언트를 요구하거나 기본 제공 OAuth를 사용할 수 없는 경우 이 방식을 사용하세요. 아래의 ‘사용자 지정 OAuth 클라이언트’ 섹션을 따르세요.
두 OAuth 방식 모두 아래에 설명된 공통 MCP 서버 설정, 기반 객체 권한, 네트워크 액세스가 필요합니다. OAuth를 구성하기 전에 ‘ChatGPT에 Snowflake 서버 세부 정보 입력’까지 공통 설정을 완료하세요.
설정할 내용
ChatGPT의 커넥터 엔드포인트 역할을 하는 Snowflake 관리형 MCP 서버를 만듭니다. MCP 서버는 다음을 정의합니다.
ChatGPT가 사용할 수 있는 작업.
해당 도구가 액세스할 수 있는 Snowflake 데이터 또는 객체.
각 사용자가 액세스를 승인할 때 사용하는 Snowflake 역할.
엔드포인트를 식별하는 Snowflake 데이터베이스, 스키마, MCP 서버 이름.
그런 다음 관리형 MCP 서버의 전체 URL을 사용해 ChatGPT에서 Snowflake - 공식 템플릿을 구성합니다. 템플릿 설정 화면에서는 URL이 다음 네 개의 개별 필드로 표시될 수 있습니다.
Snowflake 호스트 접두사.
데이터베이스.
스키마.
MCP 서버 이름.
ChatGPT는 MCP 서버가 제공하고 사용자가 액세스 승인에 사용하는 Snowflake 역할에서 허용하는 도구만 검색하고 사용할 수 있습니다.
시작하기 전에
다음이 필요합니다.
ChatGPT 워크스페이스 관리자 또는 소유자 권한, 혹은 ChatGPT Plus나 Pro 이용 권한.
MCP 서버 객체를 만들고 권한을 부여할 수 있는 Snowflake 액세스 권한.
MCP 서버를 배치할 Snowflake 데이터베이스와 스키마.
Cortex Search, Cortex Analyst, 읽기 전용 SQL, 특정 프로시저나 함수 등 ChatGPT에 허용할 기능에 대한 결정.
사용자가 앱 액세스를 승인할 때 사용할 최소 권한의 Snowflake 역할.
리전 또는 클라우드 접미사를 포함한 Snowflake 계정 호스트 접두사.
Snowflake 계정에서 네트워크 정책이나 IP 허용 목록으로 액세스를 제한하는 경우, Snowflake 관리자에게 현재 ChatGPT 커넥터 송신 IP 범위에서 들어오는 연결을 허용해 달라고 요청하세요. 이 목록은 수시로 변경되므로 최신 상태로 유지해야 합니다.
준비할 값
Snowflake 호스트 접두사: Snowflake 계정 URL에서 .snowflakecomputing.com 앞에 오는 전체 부분.
데이터베이스: MCP 서버가 있는 데이터베이스.
스키마: MCP 서버가 있는 스키마.
MCP 서버 이름: Snowflake MCP 서버 객체 이름.
관리형 MCP 서버의 전체 URL(ChatGPT 설정 화면에서 URL을 요청하는 경우).
Snowflake 역할: 사용자가 앱 액세스를 승인할 때 사용해야 하는 역할.
도구 목록: ChatGPT가 사용하도록 할 Snowflake 객체와 작업.
ChatGPT에 허용할 기능 결정
제공하려는 기능만 선택하세요. 일반적으로 다음과 같은 기능을 선택할 수 있습니다.
Cortex Search로 인덱싱된 Snowflake 데이터나 콘텐츠에서 답변 검색.
승인된 시맨틱 뷰를 통한 Cortex Analyst 질의응답.
쿼리 액세스를 통제하기 위한 읽기 전용 SQL.
특정 워크플로를 위한 Snowflake 에이전트, 저장 프로시저 또는 UDF.
SQL을 활성화하는 경우, 조직에서 쓰기 권한을 검토하고 승인하지 않았다면 읽기 전용으로 유지하세요.
Snowflake 워크시트 열기
Snowflake 앱에 로그인하세요.
MCP 서버를 만들고 액세스 권한을 부여할 수 있는 역할로 전환하세요.
워크스페이스로 이동하세요.

SQL 파일이 포함된 워크스페이스를 만드세요.

워크스페이스 컨텍스트를 MCP 서버를 만들 데이터베이스와 스키마로 설정하세요.

Snowflake MCP 서버 만들기
MCP 서버를 만들고 액세스 권한을 부여할 수 있는 역할로 Snowflake에 로그인하세요. MCP 서버를 만들 데이터베이스와 스키마에서 워크시트를 여세요.
다음 예시와 같은 문을 실행하세요. 이름을 사용 중인 Snowflake 데이터베이스, 스키마, 서비스, 뷰, 웨어하우스, 서버 이름으로 바꾸세요.
CREATE MCP SERVER CHATGPT_SNOWFLAKE_MCP FROM SPECIFICATION $$ tools: - name: "support-search" type: "CORTEX_SEARCH_SERVICE_QUERY" identifier: "CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE" title: "Support Search" description: "Search support content for relevant customer issues." - name: "revenue-analyst" type: "CORTEX_ANALYST_MESSAGE" identifier: "CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW" title: "Revenue Analyst" description: "Answer revenue questions using the approved semantic view." - name: "sql-readonly" type: "SYSTEM_EXECUTE_SQL" title: "Read-only SQL" description: "Run read-only SQL queries against approved Snowflake data." config: read_only: true query_timeout: 600 warehouse: "CHATGPT_WH" $$;

이 문에 사용된 도구 이름과 Snowflake 객체는 예시입니다.
support-search는 지정된 Cortex Search 서비스를 제공합니다.revenue-analyst는 지정된 시맨틱 뷰를 제공합니다. 필요에 따라 다른 뷰를 위한 도구를 추가하세요.sql-readonly는 지정된 웨어하우스를 사용하는 읽기 전용 SQL을 제공합니다.
ChatGPT가 적절한 도구를 선택할 수 있도록, 도구의 기능을 잘 설명하면서 자주 바뀌지 않는 이름을 사용하세요. MCP 서버를 만들어도 기반 Snowflake 객체에 대한 액세스 권한이 자동으로 부여되지는 않습니다.
추가 사양 옵션은 Snowflake 관리형 MCP 서버 만들기를 참고하세요.
적절한 Snowflake 권한 부여
사용자가 액세스를 승인할 때 사용할 Snowflake 역할을 선택한 다음, 해당 역할에 다음 항목에 대한 액세스 권한을 부여하세요.
데이터베이스와 스키마.
MCP 서버.
검색 서비스, 시맨틱 뷰, 웨어하우스 등 도구가 사용하는 모든 기반 객체.
예시:
GRANT USAGE ON DATABASE CHATGPT_APPS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON SCHEMA CHATGPT_APPS.TOOLS TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP TO ROLE CHATGPT_CONNECTOR_ROLE;
GRANT USAGE ON CORTEX SEARCH SERVICE CHATGPT_APPS.TOOLS.SUPPORT_SEARCH_SERVICE TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT SELECT ON SEMANTIC VIEW CHATGPT_APPS.TOOLS.REVENUE_SEMANTIC_VIEW TO ROLE CHATGPT_CONNECTOR_ROLE;GRANT USAGE ON WAREHOUSE CHATGPT_WH TO ROLE CHATGPT_CONNECTOR_ROLE;
MCP 서버가 UDF, 저장 프로시저 또는 Cortex 에이전트를 제공하는 경우, 해당 객체에 필요한 권한도 부여하세요.
Snowflake 준비 상태 확인
다음을 실행하세요.
SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;
그런 다음 다음을 실행하세요.
DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;
다음 사항을 확인하세요.
서버가 의도한 데이터베이스와 스키마에 있는지.
도구 목록이 의도한 대로 구성되어 있는지.
각 도구의
identifier가 올바른 Snowflake 객체를 가리키는지.연결에 사용하는 역할에 MCP 서버의
USAGE권한이 있는지.연결에 사용하는 역할에 각 기반 객체에 필요한 권한이 있는지.
ChatGPT에 Snowflake 서버 세부 정보 입력
ChatGPT에서 앱을 사용할 계정이나 워크스페이스로 전환하세요.
개인용으로 설정하려면 설정 > 플러그인으로 이동하세요. 워크스페이스용으로 설정하려면 워크스페이스 관리자로서 워크스페이스 설정 > 플러그인으로 이동하세요.
Snowflake를 검색하세요.
Snowflake - 공식 템플릿을 활성화하세요.
Snowflake - 공식 템플릿을 열고 알아보기 쉬운 연결 이름을 입력한 다음 연결을 선택하세요.
관리형 MCP 서버의 전체 URL을 입력하세요.
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
예시:
https://myorg-myaccount.azure.snowflakecomputing.com/api/v2/databases/CHATGPT_APPS/schemas/TOOLS/mcp-servers/CHATGPT_SNOWFLAKE_MCP

설정 화면에서 Snowflake 구성 항목이 개별 필드로 표시되면 URL에 사용된 것과 동일한 값을 입력하세요.
Snowflake 호스트 접두사
Snowflake 계정 URL에서 .snowflakecomputing.com 앞에 오는 전체 부분을 사용하세요. 리전 또는 클라우드 접미사도 포함해야 합니다.
예를 들어 계정 URL이 다음과 같이 시작한다면:
https://myorg-myaccount.azure.snowflakecomputing.com
호스트 접두사는 다음과 같습니다.
myorg-myaccount.azure
데이터베이스
MCP 서버가 있는 데이터베이스를 입력하세요. 예시:
CHATGPT_APPS
스키마
MCP 서버가 있는 스키마를 입력하세요. 예시:
TOOLS
MCP 서버 이름
Snowflake MCP 서버 객체 이름을 입력하세요. 예시:
CHATGPT_SNOWFLAKE_MCP
OAuth 구성
계정에서 사용할 수 있고 조직의 요구 사항을 충족하는 OAuth 방식을 선택하세요. 두 방식 모두 위의 공통 MCP 서버 설정과 아래의 연결 테스트 및 액세스 제어를 사용합니다.
어느 OAuth 방식이든 session:role:all을 사용하면 Snowflake는 각 사용자의 기본 역할을 사용합니다. OAuth 통합에 역할 허용 목록이 구성되어 있다면 기본 역할이 이 목록에서 허용되어야 하며, 차단되어 있지 않아야 합니다. 다른 승인된 역할이 있더라도 해당 역할이 자동으로 선택되지는 않습니다.
기본 제공 OAuth
계속하기 전에 위의 공통 섹션에 따라 MCP 서버를 만들고, 권한을 부여하고, 서버를 확인한 후, ChatGPT에 서버 세부 정보를 입력하세요. 이 섹션으로 바로 이동한 경우에도 이 과정은 필수입니다.
Snowflake 계정에서 ChatGPT 파트너 애플리케이션을 사용할 수 있고 ChatGPT 설정 창에서 기본 제공 OAuth를 사용할 수 있는 경우에만 이 방식을 사용하세요.
Snowflake 관리자에게 MCP 서버가 있는 동일한 Snowflake 계정에서 ChatGPT 파트너 통합을 활성화해 달라고 요청하세요. 이미 활성화된 ChatGPT 파트너 통합이 있다면 재사용하세요.
ChatGPT 설정 창에서 기본 제공 OAuth를 사용하세요. 클라이언트 ID나 클라이언트 시크릿을 입력하거나 콜백 URL을 등록할 필요가 없습니다.
아래의 ‘Snowflake 연결 및 관리’로 이동해 로그인하고, 동의하고, 액세스를 구성하세요. 그런 다음 액세스가 허용된 비관리자 멤버를 대상으로 한 테스트를 포함해 ‘앱 테스트’를 완료하세요.
위에서 설명한 기본 역할, 허용 목록, 차단된 역할의 동작 방식은 이 방식에도 적용됩니다.
사용자 지정 OAuth 클라이언트
계속하기 전에 위의 공통 섹션에 따라 MCP 서버를 만들고, 권한을 부여하고, 서버를 확인한 후, ChatGPT에 서버 세부 정보를 입력하세요. 이 섹션으로 바로 이동한 경우에도 이 과정은 필수입니다.
사용자 지정 OAuth 클라이언트를 사용하려면 Snowflake에서 발급한 클라이언트 ID와 클라이언트 시크릿이 필요합니다. 위에서 설명한 기본 역할, 허용 목록, 차단된 역할의 동작 방식은 이 방식에도 적용됩니다.
ChatGPT 설정 창에서 고급 OAuth 설정 > 사용자 정의 OAuth 클라이언트를 선택하고 ChatGPT에 표시된 콜백 URL을 정확히 복사하세요.
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'로 지정하고OAUTH_REDIRECT_URI를 해당 콜백 URL과 정확히 일치하도록 설정하여 사용자 지정 OAuth 보안 통합을 만드세요.통합 이름을 대문자로 입력하여 Snowflake에서 다음 문을 실행하세요.
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('YOUR_INTEGRATION_NAME');JSON 결과에서
oauth_client_id값을 ChatGPT의 OAuth 클라이언트 ID에,oauth_client_secret값을 OAuth 클라이언트 시크릿에 붙여 넣으세요.토큰 엔드포인트 인증 방식을
client_secret_basic으로 설정하세요.
사용자 지정 클라이언트 자격 증명을 입력한 후, 아래의 ‘Snowflake 연결 및 관리’와 ‘앱 테스트’를 진행하세요.
Snowflake 연결 및 관리
어느 OAuth 방식이든 동일한 ChatGPT 설정 창에서 계속을 선택하고, Snowflake에 로그인한 다음 연결을 승인하세요. 조직의 SSO가 구성되어 있다면 사용할 수 있습니다.
워크스페이스용으로 설정하는 경우, 사용할 멤버를 위한 플러그인 설치 정책과 역할 또는 그룹별 액세스를 구성하세요. Snowflake와 Snowflake - 공식 템플릿이 모두 활성화되어 있는지 확인하세요.
워크스페이스 관리자는 Snowflake를 사용해야 하는 역할에 대해 사용자 액세스를 구성해야 합니다.
워크스페이스 관리자는 제공되는 도구의 작업 제어를 검토해야 합니다.
워크스페이스 관리자는 앱 권한을 검토하여 ChatGPT가 앱을 사용하기 전에 언제 멤버에게 확인을 요청할지 선택해야 합니다.
이 앱 권한은 ChatGPT 대화에 적용됩니다. 워크스페이스 에이전트는 에이전트 제작자가 설정한 개별 에이전트 제어를 사용해, 사용할 수 있는 앱 작업과 최종 사용자에게 승인을 요청하는 시점을 결정합니다. 에이전트의 동작 방식은 Enterprise 및 Business용 ChatGPT 워크스페이스 에이전트를 참고하세요.
앱 테스트
채팅을 열고 Snowflake를 선택한 다음 연결을 테스트하세요.
ChatGPT가 구성한 도구를 검색하는지 확인하세요.
승인된 데이터를 대상으로 검색이나 읽기 전용 쿼리처럼 위험이 낮은 읽기 작업부터 실행하세요.
Snowflake 권한이 승인된 역할과 객체의 범위를 벗어나는 액세스를 차단하는지 확인하세요.
워크스페이스용으로 설정하는 경우, 액세스가 허용되었으며 서로 다른 Snowflake 기본 역할을 가진 비관리자 멤버를 대상으로 테스트하세요. 관리자가 연결에 성공했다고 해서 모든 멤버가 연결할 수 있는 것은 아닙니다.
워크스페이스 관리자는 Snowflake만 활성화하는 것으로는 충분하지 않습니다. Snowflake - 공식 템플릿을 활성화하고 연결하지 않았다면 멤버에게 플러그인이 비활성화된 상태로 표시될 수 있습니다.
MCP 서버 URL 및 OAuth 동작 방식
ChatGPT는 다음과 같은 Snowflake 관리형 MCP 서버의 전체 URL에 연결합니다.
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
ChatGPT는 해당 URL의 Snowflake 호스트 접두사를 사용해 다음 Snowflake OAuth 엔드포인트 주소를 결정합니다.
권한 부여:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/authorize토큰:
https://<snowflake_host_prefix>.snowflakecomputing.com/oauth/token-request
Snowsight URL, Snowflake 계정의 루트 URL만 있는 주소, 추가 경로 세그먼트가 포함된 URL은 붙여 넣지 마세요. MCP URL에는 /api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}가 포함되어야 하며, Snowflake 객체와 정확히 일치해야 합니다.
문제 해결
관리자에게는 Snowflake가 활성화되어 있지만 멤버에게는 비활성화된 경우
워크스페이스 설정 > 플러그인에서 Snowflake와 Snowflake - 공식 템플릿이 모두 활성화되어 있는지 확인하세요.
Snowflake - 공식 템플릿을 열고 연결 절차를 완료하세요. 템플릿을 연결하지 않고 활성화만 하는 것으로는 충분하지 않습니다.
Snowflake를 열고 템플릿이 필수 앱으로 표시되는지 확인하세요.
문제를 겪는 멤버의 역할이나 그룹이 플러그인 설치 정책에서 허용되어 있는지 확인하세요.
MCP 서버를 찾을 수 없는 경우
MCP 서버의 전체 URL을 다시 확인하세요. 설정 화면에서 네 개의 템플릿 필드를 요청했다면 해당 필드를 다시 확인하세요.
MCP 서버가 정확히 해당 데이터베이스와 스키마에 있는지 확인하세요.
ChatGPT에 도구가 표시되지 않는 경우
MCP 서버 사양에 도구가 포함되어 있는지 확인하세요.
해당 역할에 MCP 서버의
USAGE권한이 있는지 확인하세요.
도구는 표시되지만 사용 시 실패하는 경우
해당 역할에 검색 서비스, 시맨틱 뷰, 웨어하우스, 프로시저, UDF 등 기반 Snowflake 객체에 필요한 권한이 있는지 확인하세요.
SQL 도구가 실패하는 경우
웨어하우스 이름이 정확하고 웨어하우스가 실행 중인지 확인하세요.
해당 역할에 웨어하우스의
USAGE권한이 있는지 확인하세요.읽기 전용 액세스를 의도했다면
read_only: true가 설정되어 있는지 확인하세요.
요청한 역할 ALL이 명시적으로 차단된 경우
Snowflake 관리자에게 사용자의 기본 역할을 OAuth 통합에서 허용하거나 차단한 역할과 비교해 달라고 요청하세요. 다른 허용된 역할이 있더라도 해당 역할이 자동으로 선택되지는 않습니다. 적절한 경우 기본 역할을 승인된 역할로 변경하고 다시 연결하세요. 기본 역할을 변경하면 ChatGPT 외부의 Snowflake 세션에도 영향을 줍니다.
액세스 승인에 실패하는 경우
사용자가 Snowflake에 로그인할 수 있는지 확인하세요.
session:role:all을 사용하는 경우, 사용자의 기본 역할이 OAuth 통합에서 허용되어 있는지 확인하세요.Snowflake 관리형 MCP OAuth 흐름을 사용하도록 설정되어 있는지 확인하세요.
사용자 지정 OAuth 클라이언트를 사용하는 경우, 클라이언트 ID와 클라이언트 시크릿이 Snowflake OAuth 통합과 일치하고 해당 통합의 리디렉션 URI가 ChatGPT에 표시된 콜백 URL과 정확히 일치하는지 확인하세요.
기본 제공 OAuth를 사용하는 경우, Snowflake 관리자에게 MCP 서버가 있는 계정에서 ChatGPT 파트너 통합을 사용할 수 있고 활성화되어 있는지 확인해 달라고 요청하세요.
Snowflake 네트워크 정책 또는 IP 허용 목록이 커넥터를 차단하는 경우
Snowflake 관리자에게 Snowflake 네트워크 정책이나 액세스 규칙을 업데이트해 달라고 요청하세요.
현재 ChatGPT 커넥터 송신 IP 범위에서 들어오는 연결을 허용하세요.
이 허용 목록은 Snowflake에서 구성하세요. ChatGPT 워크스페이스의 IP 허용 목록과는 별개입니다.
IP 범위는 변경될 수 있으므로 가능하면 공개된 JSON을 기반으로 업데이트를 자동화하세요.
호스트 이름 연결 문제
올바른 Snowflake 호스트 접두사를 사용하세요. 밑줄이 포함된 Snowflake 호스트 이름은 문제를 일으킬 수 있으므로 하이픈을 사용하는 것이 좋습니다.
