ChatGPT 워크스페이스 관리자이거나 ChatGPT Plus 또는 Pro 사용자로서 Snowflake 관리형 MCP 서버를 통해 ChatGPT를 Snowflake에 연결하려면 이 가이드를 이용하세요.
대부분의 설정은 Snowflake에서 진행합니다. Snowflake 준비가 끝나면 ChatGPT에서 Snowflake 템플릿 연결을 완료한 다음, 해당 템플릿을 사용하는 Snowflake 플러그인을 활성화하세요.
설정할 항목
ChatGPT의 커넥터 엔드포인트 역할을 하는 Snowflake 관리형 MCP 서버를 생성합니다. MCP 서버에서 정의하는 항목은 다음과 같습니다.
ChatGPT가 사용할 수 있는 작업
해당 도구가 액세스할 수 있는 Snowflake 데이터 또는 객체
각 사용자가 승인에 사용할 Snowflake 역할
엔드포인트를 식별하는 Snowflake 데이터베이스, 스키마 및 MCP 서버 이름
그런 다음 ChatGPT에서 전체 관리형 MCP 서버 URL을 사용하여 Snowflake - 공식 템플릿을 구성합니다. 템플릿 설정 화면에는 URL이 다음과 같은 4개의 개별 필드로 표시될 수 있습니다.
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 서버 객체 이름
ChatGPT 설정 화면에서 URL을 요구하는 경우 전체 관리형 MCP 서버 URL
Snowflake 역할: 사용자가 앱을 승인할 때 사용할 역할
도구 목록: ChatGPT에서 사용할 Snowflake 객체 및 작업
ChatGPT에서 허용할 작업 결정하기
노출하려는 기능만 선택하세요. 일반적인 옵션은 다음과 같습니다.
Cortex Search로 인덱싱된 Snowflake 데이터 또는 콘텐츠에서 답변 검색
승인된 시맨틱 뷰를 통해 Cortex Analyst로 Q&A 수행
제어된 쿼리 액세스를 위한 읽기 전용 SQL
특정 워크플로를 위한 Snowflake 에이전트, 저장 프로시저 또는 UDF
SQL을 활성화하는 경우 조직에서 쓰기 액세스를 검토하고 승인하지 않았다면 읽기 전용으로 유지하세요.
Snowflake 워크시트 열기
Snowflake 앱에 로그인하세요.
MCP 서버를 생성하고 액세스 권한을 부여할 수 있는 역할로 전환하세요.
워크스페이스로 이동하세요.

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

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

Snowflake MCP 서버 생성하기
Snowflake에서 MCP 서버를 생성하고 액세스 권한을 부여할 수 있는 역할로 로그인하세요. 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 클라이언트 구성하기
연결하려면 Snowflake에서 발급한 클라이언트 ID와 클라이언트 보안 비밀이 필요합니다.
session:role:all을 사용하면 Snowflake는 각 사용자의 기본 역할을 사용합니다. OAuth 통합에 역할 허용 목록이 구성되어 있다면 기본 역할이 해당 목록에서 허용되어야 하며 차단되어 있지 않아야 합니다. 승인된 다른 역할이 있어도 자동으로 선택되지는 않습니다.
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 연결 및 관리하기
같은 ChatGPT 설정 모달에서 계속을 선택하고 Snowflake에 로그인한 다음 연결을 승인하세요.
워크스페이스 설정의 경우 플러그인 설치 정책과 플러그인을 사용할 멤버의 역할 또는 그룹 액세스를 구성하세요. 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을 다시 확인하세요. 설정 화면에서 4개의 템플릿 필드를 요구하는 경우 해당 필드를 확인하세요.
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 흐름을 사용하는지 확인하세요.
클라이언트 ID와 클라이언트 보안 비밀이 Snowflake OAuth 통합과 일치하고, 리디렉션 URI가 ChatGPT에 표시된 콜백 URL과 일치하는지 확인하세요.
Snowflake 네트워크 정책 또는 IP 허용 목록이 커넥터를 차단함
Snowflake 관리자에게 Snowflake 네트워크 정책 또는 액세스 규칙을 업데이트해 달라고 요청하세요.
현재 ChatGPT 커넥터 발신 IP 범위에서 들어오는 연결을 허용하세요.
이 허용 목록은 Snowflake에서 구성하세요. 이는 ChatGPT 워크스페이스 IP 허용 목록과 별개입니다.
범위가 변경될 수 있으므로 가능하면 게시된 JSON을 이용해 업데이트를 자동화하세요.
호스트 이름 연결 문제
올바른 Snowflake 호스트 접두사를 사용하세요. 밑줄이 포함된 Snowflake 호스트 이름은 문제를 일으킬 수 있으므로 하이픈을 사용하는 것이 좋습니다.
