MCP 连接器¶
概述¶
Snowflake 中的 MCP 连接器将 Snowflake Intelligence 和 Cortex Agents 连接到远程的模型上下文协议 (MCP) 服务器,使代理能够发现并调用由 Atlassian Jira、Salesforce 或您自己的自定义应用程序等提供商托管的工具。通过 MCP 连接器,您的代理不仅可以回答问题,还可以在企业系统中执行操作,例如创建 Jira 工单、更新 Salesforce 记录或发布到 Slack,所有这些都在 Snowflake 的治理环境中完成。
MCP 连接器的工作原理¶
管理员创建一个外部 MCP 服务器对象,该对象引用一个 API 集成,其中包含 OAuth 凭据。Snowflake 支持使用凭据(客户端 ID、客户端密钥)的标准 OAuth,也支持动态客户端注册 (DCR)。您可以从一组可用的 MCP 连接器中选择,也可以构建自己的自定义连接器。在将 MCP 连接器添加到代理之后,用户可以使用第三方服务进行身份验证,并直接在 Cortex Agents 和 Snowflake Intelligence 中使用这些工具。
设置流程¶
要创建 MCP 连接器并在 Snowflake 工作流程中使用它,请完成以下步骤:
提供商设置:账户管理员在提供商的仪表板(例如 Salesforce 或 Atlassian)上创建 MCP 服务器,并获取 OAuth 凭据。
API 集成:账户管理员在 Snowflake 中创建一个 API 集成,用于存储服务器 URL、客户端 ID、客户端密钥以及 OAuth 端点。
创建外部 MCP 服务器:账户管理员创建一个外部 MCP 服务器对象,该对象引用 API 集成。
代理配置:代理开发者将外部 MCP 服务器添加到 Cortex Agent 的规范中。
用户身份验证:Snowflake Intelligence 用户通过 Snowflake Intelligence 接口连接到 MCP 服务器,并使用 OAuth 对第三方服务进行身份验证。
工具发现和调用¶
当代理被调用时,它会使用 tools/list 方法从每个配置的外部 MCP 服务器获取可用工具列表。在编排期间,代理使用 tools/call 方法并传递所需参数来调用特定工具。在执行任何工具调用之前,Snowflake 会检查 MCP 服务器及其底层的 API 集成是否都已启用。
访问控制¶
下表描述了外部 MCP 服务器操作所需的权限:
权限 |
对象 |
适用场景 |
|---|---|---|
CREATE EXTERNAL MCP SERVER |
架构 |
创建外部 MCP 服务器 |
OWNERSHIP |
MCP Server |
删除 MCP 服务器 |
MODIFY |
MCP Server |
更新、删除、描述、显示和使用 MCP 服务器 |
USAGE |
MCP Server |
连接到 MCP 服务器并发现工具 |
USAGE |
API 集成 |
连接到 MCP 服务器并发现工具 |
OWNERSHIP 或 MODIFY |
API 集成 |
启用、禁用或删除 API 集成 |
默认情况下,仅账户管理员拥有这些权限。
重要
外部 MCP 服务器并非由 Snowflake 提供、维护或验证。通过连接到外部 MCP 服务器,您负责验证该服务器的可信性、确保您拥有访问和处理其所提供数据的权利,并遵守所有适用的法律以及管辖该数据的第三方条款。Snowflake 不对任何外部 MCP 服务器提供保证或支持,并且不对因使用该服务器而产生的任何错误、数据丢失或安全事件负责。
设置受支持的 MCP 连接器¶
您可以通过最少的配置连接到以下 MCP 服务器:
Atlassian
GitHub
Glean
Linear
Salesforce
对于这些 MCP 提供商,您需要完成以下工作流程:
在
API_USER_AUTHENTICATION类型字段中指定提供商详细信息。设置提供商配置,该配置对于每个提供商都是唯一的。
在创建外部 MCP 服务器对象时引用此 API 集成。
备注
对于 OAuth 授权码流程,在向外部服务提供商授予同意后,客户端需要提供一个回调 URL。外部服务提供商将用户发送到回调 URL 以完成流程。通常,需要向 OAuth 应用配置提供两个 URLs:
对于 Cortex Code CLI:
<account_url>/oauth/complete-secret对于 Snowflake Intelligence 和 Snowsight UI:
<snowsight_url>/oauth/complete-secret
Snowsight URL 可以从 SYSTEM$ALLOWLIST 或 SYSTEM$ALLOWLIST_PRIVATELINK 获取,具体取决于是否使用 PrivateLink。选择以 apps-api``(用于公共访问)或 ``app.<region>.privatelink.snowflakecomputing``(用于 PrivateLink)开头的 ``SNOWSIGHT_DEPLOYMENT 类型。
导航到
Admin.atlassian.com。从左侧导航栏中,选择 Apps > AI Settings > Rovo MCP Server。
在 Your domains 下,选择 Add Domain 以添加上面说明中所述的两个回调 URLs。
选择 Add。
登录 Snowsight。
在导航菜单中,选择 AI & ML » Agents。
选择 Settings。
选择 Tools and Connectors。
选择 Browse Connectors。
选择 Atlassian。
为 MCP 服务器输入名称和描述。
对于 Server URL,输入
https://mcp.atlassian.com/v1/mcp。选择要在其中创建 MCP 服务器的数据库和模式。
选择 Add。
以下示例展示了为 Atlassian 创建 API 集成和 MCP 服务器的 SQL 命令:
登录 GitHub。
导航到右上角的头像,然后选择 Settings。
选择 Developer Settings。
选择 New GitHub App。提供名称、主页 URL,并按照前面的说明提供两个回调 URLs。
您可以禁用 Webhook 并设置自定义权限(范围)。
创建应用程序。您应该会看到该应用出现在 Developer Settings 的 GitHub Apps 中。
选择 Edit 和 Generate a new client secret。记下客户端 ID 和密钥。
登录 Snowsight。
在导航菜单中,选择 AI & ML » Agents。
选择 Settings。
选择 Tools and Connectors。
选择 Browse Connectors。
选择 GitHub。
为 MCP 服务器输入描述。
对于 Server URL,输入
https://api.githubcopilot.com/mcp。在 Token endpoint 中,输入
https://github.com/login/oauth/access_token。在 Authorization endpoint 中,输入
https://github.com/login/oauth/authorize。在 Client ID 中,输入您记下的客户端 ID。
在 Client secret 中,输入您记下的客户端密钥。
选择要在其中创建 MCP 服务器的数据库和模式。
选择 Add。
导航到
app.glean.com/settings/install。选择 Configure MCP Server。
在 Host application 中,选择 Custom。对于 MCP 服务器,选择所需的服务器(可以是默认的)。
复制服务器 URL。
选择 Save。
登录 Snowsight。
在导航菜单中,选择 AI & ML » Agents。
选择 Settings。
选择 Tools and Connectors。
选择 Browse Connectors。
选择 Glean。
为 MCP 服务器输入描述。
在 Server URL 中,输入您复制的服务器 URL。
选择要在其中创建 MCP 服务器的数据库和模式。
选择 Add。
登录 Snowsight。
在导航菜单中,选择 AI & ML » Agents。
选择 Settings。
选择 Tools and Connectors。
选择 Browse Connectors。
选择 Linear。
为 MCP 服务器输入描述。
选择要在其中创建 MCP 服务器的数据库和模式。
选择 Add。
备注
您必须对 Salesforce(沙盒)组织具有管理员访问权限。
导航到您的 Salesforce 组织。
从齿轮图标进入 Setup。
在新页面的搜索栏中搜索 External Client App Manager。
选择 New External Client App 并勾选 Enable OAuth。
创建应用后,导航到该应用的 OAuth Settings。
配置范围(确保包含
sfap_api)以及将回调 URI 设置为<snowsight_url>/oauth/complete-secret。记下 Consumer Key and Secret,即 Snowflake 外部 API 集成中将使用的 OAuth 客户端 ID 和客户端密钥。
登录 Snowsight。
在导航菜单中,选择 AI & ML » Agents。
选择 Settings。
选择 Tools and Connectors。
选择 Browse Connectors。
选择 Salesforce。
为 MCP 服务器输入描述。
输入 MCP 服务器 URL。Salesforce 通过单个 URLs 公开其 MCP 服务器,用户需要知道要访问哪个服务器/工具。从上一步获取的 OAuth 令牌可用于所有服务器和工具,只要范围允许即可。
每个托管的 MCP 服务器的基础 URL 为:
如果您的组织是沙盒,则为
https://api.salesforce.com/platform/mcp/v1-beta.2/sandbox/platform/<server_name>否则为不带
/sandbox后缀的https://api.salesforce.com/platform/mcp/v1-beta.2/platform/<server_name>
由于测试组织是沙盒,请使用
test.salesforce.com作为 OAuth 端点的域名,并使用https://api.salesforce.com/platform/mcp/v1-beta.2/sandbox/platform/<server_name>作为EXTERNAL MCP SERVER对象中的基础 URL。您可以使用该基础构建所需的 MCP 服务器 URLs。例如:
https://api.salesforce.com/platform/mcp/v1-beta.2/sandbox/platform/sobject-allhttps://api.salesforce.com/platform/mcp/v1-beta.2/sandbox/platform/queryhttps://api.salesforce.com/platform/mcp/v1-beta.2/sandbox/platform/search
输入令牌和授权端点:
对于 Token endpoint,输入
https://<domain>/services/oauth2/token。对于 Authorization endpoint,输入
https://<domain>/services/oauth2/authorize。
备注
如果 Salesforce 组织是沙盒,则
<domain>可以是test.salesforce.com之一,否则为login.salesforce.com。输入您记下的客户端 ID 和客户端密钥。
选择要在其中创建 MCP 服务器的数据库和模式。
选择 Add。
自定义 MCP 连接器¶
您还可以手动配置自定义连接器以连接到任何与 MCP 兼容的端点。
在创建 API 集成时提供完整的 OAuth 配置:
或者,您可以将 API 集成与 DCR 一起使用:
创建 MCP 服务器对象:
在代理配置中引用 MCP 服务器:
自定义 MCP 服务器的 OAuth 参数¶
下表描述了自定义 MCP 服务器的 OAuth 参数:
参数 |
类型 |
必填 |
默认值 |
描述 |
|---|---|---|---|---|
OAUTH_CLIENT_ID |
STRING |
是 |
无 |
来自 MCP 服务器提供商的客户端 ID |
OAUTH_CLIENT_SECRET |
STRING |
是 |
无 |
来自 MCP 服务器提供商的客户端密钥 |
OAUTH_DISCOVERY_URL |
STRING |
否 |
无 |
用于自动端点解析的 OpenID Connect 发现 URL |
OAUTH_TOKEN_ENDPOINT |
STRING |
是 |
无 |
用于将授权码交换为访问令牌的端点 |
OAUTH_AUTHORIZATION_ENDPOINT |
STRING |
是 |
无 |
用户授权连接时使用的端点 |
OAUTH_CLIENT_AUTH_METHOD |
STRING |
否 |
CLIENT_SECRET_BASIC |
身身份验证方法:CLIENT_SECRET_BASIC 或 CLIENT_SECRET_POST |
将 MCP 连接器添加到 Cortex Agent¶
创建 MCP 服务器对象后,代理开发者会在 Cortex Agent 配置中引用它。MCP 连接器位于代理管理员 UI 中可用,开发者可在此浏览并选择已在账户级别配置的 MCP 连接器。您还可以使用 SQL 或 API 将 MCP 连接器添加到您的代理中。
登录 Snowsight。
在导航菜单中,选择 AI & ML » Agents。
从代理列表中选择代理名称。
选择 MCP Connectors。
从 Available Connectors 列表中,选择要添加的连接器。
查看连接器详细信息,然后选择 Add to agent。
代理开发者使用代理对象 REST API 将外部 MCP 服务器添加到 Cortex Agent 的规范中:
引用这些 MCP 服务器的 Cortex Agent 可以访问提供商提供的工具。例如,对于 Atlassian,工具包括创建 Jira 问题、评论问题、创建 Confluence 页面以及更新现有页面。
当代理被调用时,它会从每个 MCP 服务器获取工具列表,并将这些工具包含在其编排中。代理根据用户的查询和 MCP 服务器提供的工具描述来选择并调用工具。
在 Snowflake Intelligence 中使用 MCP 连接器¶
Snowflake Intelligence 用户通过 Snowflake Intelligence 接口连接到外部 MCP 服务器:
按照 访问代理 中的说明导航到 Snowflake Intelligence 接口。
打开源面板并选择 Connectors。
在所选连接器旁边选择 Connect。您也可以选择 Manage Connections,然后选择 Connect。
用户将被重定向到第三方服务的身份验证页面以批准连接。
身份验证后,连接器将在源列表中显示为 Connected。您现在可以与代理交互以从外部 MCP 服务器取信息。
要断开服务器连接,用户可以完成以下操作:
选择 Manage Connections。
选择 MCP Server,然后选择 Disconnect。
用户可以在源下拉菜单中连接和断开连接器,以将其包含在代理的编排中或从中排除。未处于 Connected 状态的连接器不会包含在编排中。
当用户的身份验证令牌过期时,Snowflake Intelligence 会提示用户重新进行身份验证。
在 Agent:run API 中使用 MCP 连接器¶
Agent:run API 通过客户端接口连接到 MCP 服务器。使用以下函数通过第三方服务对用户进行身份验证:
启动 OAuth 流程的函数:
完成 OAuth 流程的函数:
SYSTEM$START_USER_OAUTH_FLOW 会返回一个授权 URL,用于 API_PROVIDER = EXTERNAL_MCP 的 API 集成。在浏览器中打开 URL 以完成同意授权,然后在同一会话中使用来自重定向 URL 的查询字符串运行 SYSTEM$FINISH_OAUTH_FLOW。有关 SYSTEM$FINISH_OAUTH_FLOW 的更多信息,请参阅 SYSTEM$FINISH_OAUTH_FLOW。
管理 MCP 服务器¶
列出并描述 MCP 服务器¶
列出不同范围下的所有外部 MCP 服务器:
输出内容包括服务器名称、数据库、模式、所有者、类型(预置或自定义)、MCP 服务器 URL、状态(已启用或已禁用)以及关联的 API 集成。
要查看特定服务器的完整配置,请执行以下操作:
禁用和启用 MCP 服务器¶
通过更改其底层的 API 集成来禁用 MCP 服务器。禁用后,所有用户令牌会立即失效,并触发对 MCP 服务器撤销端点的调用。禁用集成时,密钥不会被删除。如果集成保持禁用状态足够长时间,这些密钥会自然过期。
警告
当您禁用 API 集成时,所有使用该 MCP 服务器的代理都会立即失去对其工具的访问权限。当连接器被禁用时,Snowflake Intelligence 会向用户显示一个警报。重新启用需要用户重新进行身份验证,就像首次连接一样。
您无法创建引用已禁用 API 集成的新 MCP 服务器。在代理执行期间,Snowflake 会检查 MCP 服务器和 API 集成的状态,并且仅使用已启用的服务器。
删除 MCP 服务器¶
先删除 MCP 服务器,然后再删除 API 集成。只有拥有 OWNERSHIP 权限的角色才能执行删除操作。
警告
删除 API 集成会永久删除所有 OAuth 配置和存储的密钥。在删除 MCP 服务器之前,请确保当前没有代理正在使用它。如果再次需要它们,必须从头开始重新创建这两个对象。
关键注意事项和最佳实践¶
自定义 MCP 服务器:在连接到不在可用 MCP 连接器列表中的 MCP 端点时,请使用自定义服务器。Snowflake 在 API 集成中支持 Atlassian、GitHub、Glean、Linear 和 Salesforce 的用户身份验证类型。
最低权限访问: 仅授予每个角色所需的最低权限。对 MCP 服务器的访问权限不会自动授予对其工具的访问权限,您必须为每个工具单独授予权限。
OAuth 身份验证: Snowflake 仅支持对所有 MCP 服务器连接使用 OAuth。
禁用或删除: 禁用 API 集成会保留其配置,但会使所有用户令牌立即失效并阻止工具调用。删除 API 集成会将其与所有存储的密钥一起永久删除。在执行维护时禁用集成。在停用时删除集成。
主机名格式: 在配置 MCP 服务器连接时,主机名中请使用连字符 (
-) 而不是下划线 (_)。包含下划线的主机名会导致连接问题。
限制¶
以下限制适用于 MCP 连接器:
监控: MCP 工具调用不会记录到监控表中。
MCP 协议范围: 外部 MCP 服务器仅支持工具能力。不支持资源、提示、根、通知、版本协商、生命周期阶段和采样。
已禁用的集成: 您无法创建引用已禁用 API 集成的新 MCP 服务器。
主机名格式: 主机名必须使用连字符,不能使用下划线。