云函数 MCP 工具应用(内测中)

这篇说说在腾讯云Agent执行引擎部署MCP工具应用的完整流程,涵盖前置授权、镜像准备及操作步骤,最终获得访问地址并在MCP Inspector中验证服务。 前置依赖:需为Serverless Framework、CODING DevOps、云函数完成主账号或子账号的服务授权,并准备符合要求的WebServer容器镜像。 操作步骤:通过Serverless控制台创建应用,依次配置基础信息、环境变量、网络、日志及隔离并。

相关产品
云函数 产品页,含版本规格、价格与购买入口。

这篇说说如何在 Agent 执行引擎部署 MCP 工具应用。

注意:说明:

一、前置依赖

主账号服务授权(如果你已授权,请跳过该步骤)

你需要为 Serverless Framework、CODING DevOps、云函数创建服务角色并授权。具体操作如下:

在 腾讯云控制台 中,选择云产品 > 云函数,进入 Serverless 控制台,选择 AI 应用 > Agent:

·为预设策略授权:按界面提示,单击“同意授权”:

·为非预设策略授权:

1.1 单击“前往关联”为角色绑定策略。

1.2 进入访问管理 > 角色控制台,单击对应的角色名称 CODING_QCSRole。

1.3 单击关联策略,搜索并选择策略 “QcloudSCFFullAccess”。

1.4 单击确定完成策略绑定。

子账号服务授权(如果你已授权,请跳过该步骤)

1. 创建自定义策略

1.1 登录主账号并进入访问管理控制台。

1.2 在策略页面单击新建自定义策略,选择按策略语法创建。

1.3 选择空白模板,并单击下一步。

1.4 修改策略名称,并将创建 Agent 需要的最小策略内容输入到策略内容框。如下:

·策略名称:例如 scf-agent。

·策略内容:

{ "statement": [ { "action": [ "tcr:DescribeInstances", "tcr:ValidateUserPersonal", "tcr:CreateUserPersonal", "tcr:DescribeRepositoryOwnerPersonal", "tcr:DescribeRepositoryFilterPersonal", "tcr:DescribeImagePersonal", "sls:GetInstance", "sls:ListInstances", "scf:ListFunctions", "scf:ListTriggers", "scf:ListVersionByFunction", "scf:ListAliases", "scf:ListCustomDomains", "scf:GetFunction", "scf:GetAccount", "scf:GetFunctionEventInvokeConfig", "scf:GetFunctionTotalNum", "scf:UpdateFunctionCode", "cam:GetRole", "cam:ListAttachedRolePolicies", "cls:DescribeTopics", "cls:DescribeLogsets", "cfs:DescribeCfsFileSystems", "vpc:DescribeVpcs", "vpc:DescribeSubnets", "coding:*" ], "effect": "allow", "resource": "*" } ], "version": "2.0"}

附:策略的相关 action 说明

云产品名称 接口名(策略 action) 接口描述 备注
sls GetInstance 应用详情 –
sls ListInstances 查询应用列表 –
scf ListFunctions 查询函数列表 –
 ListTriggers 函数详情-查询函数 url –
 ListCustomDomains 应用详情-查询自定义域名 –
 ListVersionByFunction 函数详情-查询版本列表 –
 ListAliases 函数详情-查询别名 –
 GetFunction 函数详情 –
 GetAccount 函数详情-查询用户配置 –
 GetFunctionEventInvokeConfig 函数详情-查询异步事件配置 –
 GetFunctionTotalNum 函数列表-统计各个地域的函数个数 –
 UpdateFunctionCode 函数详情-更新镜像配置 –
cam GetRole 创建应用-角色校验 –
cam ListAttachedRolePolicies 创建应用-角色策略授权 –
coding * 创建应用-调用所有 coding 接口 coding 产品只定义 coding:*的 action,所以 coding 的所有接口只能添加 coding:* 的策略。
cls DescribeTopics 应用详情-查询日志主题 –
cls DescribeLogsets 应用详情-查询日志集 –
cfs DescribeCfsFileSystems 应用详情-查询 cfs 列表 –
vpc DescribeVpcs 应用详情-查询 vpc –
vpc DescribeSubnets 应用详情-查询子网 –
tcr DescribeInstances 开启镜像加速时需要初始化 TCR 调用该接口 –
 ValidateUserPersonal 校验是否初始化 TCR 个人实例 –
 CreateUserPersonal 初始化个人实例密码 –
 DescribeRepositoryOwnerPersonal 查询个人实例列表 –
 DescribeRepositoryFilterPersonal 获取满足输入搜索条件的个人版镜像仓库 –
 DescribeImagePersonal 用于获取个人版镜像仓库 tag 列表 –

2. 给子账号关联对应策略授权

2.1 自定义策略成功后,搜索对应策略,单击关联用户/组/角色。

2.2 勾选目前子账号的用户,单击确定,将子账号关联到对应策略上。

3. 确认策略关联成功

3.1 进入用户列表页面,单击子账号,进入用户详情页。

3.2 确认子账号已经授权 scf-agent 策略。

容器镜像准备

·如果你通过容器镜像部署,你需要先准备好 WebServer 类型的容器镜像,并上传到容器镜像仓库。

1.1 镜像要求:需要搭建 HTTP Server,监听 0.0.0.0:9000 或 *:9000。HTTP Server 需在30秒内启动完毕。如未完成,则可能会导致健康检查超时,出现以下错误:

The request timed out in 30000ms.Please confirm your http server have enabled listening on port 9000.

1.2 上传到镜像仓库:你可以根据实际需求进行镜像仓库选型(详情可参见 容器镜像服务企业版、容器镜像服务个人版)。

·如果你希望通过代码方式部署应用,可以参考 自定义创建 Web 函数,并配置 基于会话并发模式。

二、操作步骤

1. 登录 Serverless 控制台,单击左侧导航栏的 Agent。

2. 在 Serverless AI 运行时页面上选择 MCP 工具,单击创建应用,进入应用创建流程。

3. 在基础配置版块:

3.1 填入应用名称:应用的唯一标识,不可重复,创建后不可修改。

3.2 选择地域:资源必须归属于某个地域。

3.3 镜像:选择提前上传到镜像仓库的镜像,镜像要求请参见 WebServer 镜像函数。

4. 在环境配置版块:

4.1 选择内存:设置资源类型对应的规格,当前仅支持 CPU 不同内存配置,详情请参见 函数算力支持。

4.2 添加环境变量,在配置中定义的环境变量可在函数运行时从环境中获取到。详情请参见 环境变量。

5. 在网络配置版块,配置函数网络访问权限:

·公网访问:默认启用,关闭后应用无法访问公网资源。

·私有网络:启用后,应用可以访问同一个私有网络下的资源。

6. 在日志配置版块:启用日志投递,可将函数运行日志实时投递到指定位置。详情请参见 日志投递配置。

7. 在隔离、并发配置版块:配置实例安全隔离和单实例并发模式。

7.1 开启实例安全隔离,保证每一次会话信息独占一个实例,会话销毁,实例也销毁。

7.2 配置基于会话单实例并发模式,配置项说明如下:

配置项 说明 示例
会话 Key 来源 用于说明从哪里获取客户端标识,系统根据此标记来决定要调度到同个实例上。可选项:MCP SSE、MCP Streamable HTTP,二选一。不同选项支持场景说明如下:MCP SSE基于 MCP SSE 协议规范,确保客户端携带相同会话 ID(SessionId) 的请求始终路由到同一个实例。MCP Streamable HTTP基于 MCP HTTP 协议规范,确保客户端携带相同会话 ID(SessionId) 的请求始终路由到同一个实例。 MCP SSE
会话 Key 名称 1. Key 用途及命名规则用途:用于指定会话标识的名称(即 Key),作为会话的唯一标识名称。MCP SSE 来源的 Key 默认是 session_id,MCP Streamable HTTP 来源的 Key 默认是 mcp-session-id,如果服务端有重新定义,可以手动修改匹配服务端的 Key。命名要求:必须以字母开头;非首字母可包含数字、字母、下划线(_)、中划线(-);长度限制5-40 个字符(含边界值)。 2. Key 对应 Value 生成逻辑及字符要求:生成逻辑:来源为 MCP SSE、MCP Streamable HTTP:首次 Value 由 MCP 服务端生成。字符要求:含数字、字母、下划线(_)、中划线(-)长度限制128个字节。 session-id
SSE 路径 如果会话 Key 来源选择 MCP SSE,需要填写发起 SSE 连接请求的路径。 默认/sse,支持修改
单实例最大并发会话数 单实例在同一时间内能同时处理的最大会话数(包含活跃会话和非活跃会话),默认值为20,最大支持100。 20
会话最长生命周期 从会话创建、使用到最终销毁的全过程,单位秒。超过生命周期后,服务端将自动销毁会话。最长可设置7天,默认21600秒。 21600秒
会话最长空闲时间 用户在一段时间内没有进行任何操作,导致会话进入空闲状态,单位秒。超过设置的最长空闲(Idle)时间后,服务端将自动销毁会话。最长可设置1800秒。 1800秒
单实例最大并发请求数 单实例在同一时间内能同时处理的最大请求数,默认为10,最大支持100。 10
会话空闲超时处理策略 如果你开启了实例安全隔离,会话空闲超时处理策略可选自动销毁或者自动暂停。如果你没有开启实例安全隔离,会话空闲超时处理策略默认自动销毁。 自动销毁

8. 单击提交,启动应用的部署。

9. 应用部署完成后,在应用详情页面,可以获得访问地址。

10. 你可以在 MCP Inspector 中验证服务:

·如果 Transport Type 为 SSE,URL 为 https://******.ap-****.tencentscf.com/sse。

·如果 Transport Type 为 Streamable HTTP,URL 为 https://******.ap-****.tencentscf.com/mcp。

赞 (0)
上一篇 4天前
下一篇 4天前