OpenAI
页面内容为机器翻译。查看英文原文

在 ChatGPT 中设置 Snowflake 应用模板

了解工作空间管理员如何使用由 Snowflake 管理的 MCP 服务器,在 ChatGPT 中配置 Snowflake 应用模板。

更新于:6 days ago

如果你是 ChatGPT 工作空间管理员,正在为组织设置 Snowflake 应用模板,请使用本指南。模板不是成员最终使用的应用。它是一个设置流程:在你提供所需的 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 数据库和模式。

  • 决定允许 ChatGPT 执行哪些操作,例如 Cortex Search、Cortex Analyst、只读 SQL,或特定的过程或函数。

  • 用户在授权应用时将使用的最小权限 Snowflake 角色。

  • Snowflake 账号主机前缀,包括任何区域或云后缀。

需要准备的值

  • 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 MCP 服务器

在 Snowflake 中,使用可以创建 MCP 服务器并授予访问权限的角色登录。在应创建 MCP 服务器的数据库和模式中打开工作表。

创建一个 MCP 服务器,仅列出 ChatGPT 应使用的工具。将对象名称替换为你自己的 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 Agent,也要授予这些对象所需的权限。

验证 Snowflake 已准备就绪

运行:

SHOW MCP SERVERS IN SCHEMA CHATGPT_APPS.TOOLS;

然后运行:

DESCRIBE MCP SERVER CHATGPT_APPS.TOOLS.CHATGPT_SNOWFLAKE_MCP;

确认:

  • 服务器存在于预期的数据库和模式中。

  • 工具列表符合你的预期。

  • 每个工具标识符都指向正确的 Snowflake 对象。

  • 连接角色对 MCP 服务器拥有 USAGE 权限。

  • 连接角色对每个底层对象拥有所需权限。

在 ChatGPT 中开始模板设置

  1. 在 ChatGPT 中,切换到应提供该应用的工作空间。

  2. 打开 工作空间设置 > 应用

  3. 选择 目录

  4. 搜索 Snowflake。

  5. 选择 Snowflake 应用模板并开始设置。

  6. 输入清晰的应用名称和描述,例如 Snowflake 或 Snowflake - Analytics。

  7. 输入设置流程要求的托管 MCP 服务器详细信息。

如果设置屏幕要求提供完整的托管 MCP 服务器 URL,请使用以下格式:

https://<snowflake_host_prefix>.snowflakecomputing.com/api/v2/databases/{database}/schemas/{schema}/mcp-servers/{server}

如果设置屏幕要求提供单独字段,请使用该 URL 中的相同值:

  • Snowflake 主机前缀。

  • 数据库。

  • 模式。

  • MCP 服务器名称。

创建并发布草稿应用

  1. 在 ChatGPT 中保存 Snowflake 模板设置。

  2. 创建草稿应用。

  3. 查看草稿应用详细信息、身份验证设置和可用操作。

  4. 准备就绪后发布草稿应用。

  5. 确认应用显示在 工作空间设置 > 应用 > 已启用 中。

  6. 为应使用该应用的角色配置 用户访问权限

  7. 查看已公开工具的 操作控制

  8. 查看 应用权限,以选择 ChatGPT 在使用应用前何时向成员请求确认。

这些应用权限适用于 ChatGPT 对话。工作空间智能体使用由智能体构建者设置的按智能体控制项,来确定哪些应用操作可用,以及何时要求最终用户批准这些操作。有关智能体行为,请参阅:面向 Enterprise 和 Business 的 ChatGPT 工作空间智能体

测试应用

  1. 以允许的测试用户身份从 ChatGPT 启动连接流程。

  2. 登录 Snowflake,并在出现提示时选择预期角色。

  3. 确认 ChatGPT 能从 MCP 服务器发现预期工具。

  4. 先运行低风险读取操作,例如对已批准数据执行搜索或只读查询。

  5. 确认 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 主机名可能会导致问题;建议使用连字符。

这篇文章对你有帮助吗?