조직을 위해 Snowflake 앱 템플릿을 설정하는 ChatGPT 워크스페이스 관리자라면 이 가이드를 사용하세요. 템플릿은 구성원이 사용하는 최종 앱이 아닙니다. 필요한 Snowflake 구성을 제공하면 워크스페이스별 초안 앱을 만드는 설정 흐름입니다.
Snowflake의 경우 대부분의 설정은 Snowflake에서 이루어집니다. Snowflake 관리형 MCP 서버를 만들고, MCP 서버와 그 기반 객체에 적절한 역할 액세스를 부여한 다음, ChatGPT 템플릿 설정 흐름에 관리형 MCP 서버 URL 또는 해당 구성 요소 필드를 입력합니다. ChatGPT가 초안 앱을 만든 후에는 다른 워크스페이스 앱처럼 게시하고 관리할 수 있습니다.
설정하는 항목
ChatGPT에서 워크스페이스별 Snowflake 앱을 만들고 있습니다. 이 앱은 다음을 정의하는 Snowflake 관리형 MCP 서버에 연결됩니다.
ChatGPT가 사용할 수 있는 작업(도구라고 함).
해당 도구가 액세스할 수 있는 Snowflake 데이터 또는 객체.
사용자가 승인할 때 사용해야 하는 Snowflake 역할.
커넥터 엔드포인트를 식별하는 Snowflake 데이터베이스, 스키마 및 MCP 서버 이름.
ChatGPT는 MCP 서버가 노출하고 사용자가 승인한 Snowflake 역할이 허용하는 도구만 검색하고 사용할 수 있습니다.
시작하기 전에
필요한 항목:
ChatGPT 워크스페이스 관리자 또는 소유자 액세스.
MCP 서버 객체를 만들고 권한을 부여할 수 있는 Snowflake 액세스.
MCP 서버가 위치할 Snowflake 데이터베이스 및 스키마.
Cortex Search, Cortex Analyst, 읽기 전용 SQL 또는 특정 프로시저나 함수 등 ChatGPT에 허용할 작업에 대한 결정.
사용자가 앱을 승인할 때 사용할 최소 권한 Snowflake 역할.
리전 또는 클라우드 접미사를 포함한 Snowflake 계정 호스트 접두사.
준비할 값
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 MCP 서버 만들기
Snowflake에서 MCP 서버를 만들고 액세스를 부여할 수 있는 역할로 로그인합니다. MCP 서버를 만들 데이터베이스와 스키마에서 워크시트를 엽니다.
ChatGPT가 사용해야 하는 도구만 나열하는 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: "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" $$;
ChatGPT가 올바른 도구를 선택할 수 있도록 도구 이름은 안정적이고 설명적이어야 합니다. MCP 서버를 만들어도 기반 Snowflake 객체에 대한 액세스가 자동으로 부여되지는 않습니다.
올바른 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 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;
확인:
서버가 예상한 데이터베이스와 스키마에 존재합니다.
도구 목록이 의도한 대로입니다.
각 도구 식별자가 올바른 Snowflake 객체를 가리킵니다.
연결 역할에 MCP 서버에 대한 USAGE가 있습니다.
연결 역할에 각 기반 객체에 필요한 권한이 있습니다.
ChatGPT에서 템플릿 설정 시작
ChatGPT에서 앱을 사용할 수 있어야 하는 워크스페이스로 전환합니다.
워크스페이스 설정 > 앱을 엽니다.
디렉터리를 선택합니다.
Snowflake를 검색합니다.
Snowflake 앱 템플릿을 선택하고 설정을 시작합니다.
Snowflake 또는 Snowflake - Analytics와 같이 명확한 앱 이름과 설명을 입력합니다.
설정 흐름에서 요청하는 관리형 MCP 서버 세부 정보를 입력합니다.
설정 화면에서 전체 관리형 MCP 서버 URL을 요청하는 경우 다음 형식을 사용합니다.
https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}
설정 화면에서 별도 필드를 요청하는 경우 해당 URL의 동일한 값을 사용합니다.
Snowflake 호스트 접두사.
데이터베이스.
스키마.
MCP 서버 이름.
초안 앱 만들기 및 게시
ChatGPT에서 Snowflake 템플릿 설정을 저장합니다.
초안 앱을 만듭니다.
초안 앱 세부 정보, 인증 설정 및 사용 가능한 작업을 검토합니다.
준비되면 초안 앱을 게시합니다.
앱이 워크스페이스 설정 > 앱 > 활성화됨에 표시되는지 확인합니다.
이를 사용해야 하는 역할에 대해 사용자 액세스를 구성합니다.
노출된 도구에 대한 작업 제어를 검토합니다.
ChatGPT가 앱을 사용하기 전에 구성원에게 언제 요청할지 선택하려면 앱 권한을 검토합니다.
이 앱 권한은 ChatGPT 대화에 적용됩니다. 워크스페이스 에이전트는 에이전트 빌더가 설정한 에이전트별 제어를 사용하여 어떤 앱 작업을 사용할 수 있는지와 최종 사용자에게 언제 승인을 요청할지 결정합니다. 에이전트 동작은 다음을 참조하세요. Enterprise 및 Business용 ChatGPT 워크스페이스 에이전트.
앱 테스트
허용된 테스트 사용자로 ChatGPT에서 연결 흐름을 시작합니다.
메시지가 표시되면 Snowflake에 로그인하고 의도한 역할을 선택합니다.
ChatGPT가 MCP 서버에서 예상한 도구를 검색하는지 확인합니다.
먼저 검색이나 승인된 데이터에 대한 읽기 전용 쿼리와 같은 저위험 읽기 작업을 실행합니다.
Snowflake 권한이 승인된 역할 및 객체 외부의 액세스를 차단하는지 확인합니다.
MCP 서버 URL 및 OAuth 동작
ChatGPT는 전체 Snowflake 관리형 MCP 서버 URL에 연결합니다. ChatGPT는 해당 URL의 Snowflake 호스트 접두사를 사용하여 Snowflake OAuth 엔드포인트를 확인합니다.
Snowsight URL, Snowflake 계정 루트 URL만 또는 추가 경로 세그먼트가 있는 URL을 붙여 넣지 마세요. MCP URL에는 데이터베이스, 스키마 및 MCP 서버 경로가 포함되어야 하며 Snowflake 객체와 정확히 일치해야 합니다.
문제 해결
MCP 서버를 찾을 수 없음: 전체 MCP 서버 URL 또는 별도의 호스트 접두사, 데이터베이스, 스키마 및 서버 필드를 다시 확인하세요.
ChatGPT에 도구가 표시되지 않음: MCP 서버 사양에 도구가 포함되어 있고 역할에 MCP 서버에 대한 USAGE가 있는지 확인하세요.
도구는 표시되지만 사용 시 실패함: 역할에 기반 Snowflake 객체에 대한 올바른 권한이 있는지 확인하세요.
SQL 도구 실패: 웨어하우스 이름이 올바른지, 웨어하우스를 사용할 수 있는지, 역할에 해당 웨어하우스에 대한 USAGE가 있는지, 읽기 전용 액세스를 의도했다면 read_only가 true인지 확인하세요.
승인 실패: 사용자가 Snowflake에 로그인하고 의도한 역할을 사용할 수 있는지 확인하세요.
호스트 이름 연결 문제: 올바른 Snowflake 호스트 접두사를 사용하세요. 밑줄이 있는 Snowflake 호스트 이름은 문제를 일으킬 수 있으므로 하이픈을 사용하는 것이 좋습니다.
