您可以通过Function AI内置的MCP服务模板快速体验部署或基于空白项目自定义部署MCP服务。当MCP服务部署完成后,平台会生成一个SSE连接地址,并且会生成MCP服务的Schema用于测试。
创建MCP服务
函数计算提供支持SSE协议且具备并发能力的MCP运行时,存量STDIO模式的MCP服务无需任何改动即可转换为符合SSE协议的远端服务。通过函数计算创建MCP服务时,创建的函数自带MCP SSE亲和调度能力。
方式一:通过模板一键部署MCP服务
登录Function AI控制台,在探索页面,勾选MCP Server模板分类,选择任意一个MCP模板,单击模板所在卡片。本文以高德地图为例。
在模板详情页面,单击立即部署,进入服务配置页面,填写从高德开放平台获取的API-KEY,然后单击部署项目。
方式二:基于空白项目创建自定义MCP服务
登录Function AI控制台,在项目页面,选择 ,然后自定义名称和描述。
单击空白项目,在项目部署页面,选择
。在MCP服务配置页面,设置以下选项,然后单击预览&部署。
MCP服务配置
配置项
说明
本文示例
传输类型
支持托管STDIO和SSE协议的MCP服务。如果MCP服务代码采用STDIO协议,Function AI会启动一个SSE服务来代理STDIO的请求,客户端访问需要使用SSE方式。
SSE 协议
开启鉴权
开启鉴权后,Function AI平台会为MCP服务生成一个只读的Bearer Token,使用此Bearer Token可以让您的MCP服务自带鉴权能力。
打开开关
运行环境
使用官方提供Node.js、Python和Java运行时,无需修改代码即可实现一键云上托管MCP服务。
若需容器化部署,也可以选择自定义容器作为运行环境,然后根据界面提示,选择您托管在ACR的镜像开始构建。
选择仓库
使用平台内置代码包
您可以使用Function AI平台内置的运行时代码包Hello World,简化部署流程。后续可以在目标服务页面的WebIDE页签在线编写和调试代码。
绑定代码仓库进行持续部署
您也可以绑定代码仓库托管MCP服务,本文以GitHub仓库为例,绑定Git仓库后,如果指定的分支有push操作,会自动触发服务的持续部署。
参数说明如下:
构建环境:对于多语言的工程,可以选择多个构建环境。
构建命令:npm build或pip install -t . -r requirements.txt
构建缓存:可选,Node.js、Python和Java运行环境的缓存目录分别可以设置为
~/.npm
、~/.cache
和~/.m2
。
资源配置
配置项
说明
本文示例
实例规格
根据业务情况,选择或手动输入合理的资源项规格组合。
vCPU:1
内存:2 GB
弹性策略
默认模式
成本最优模式,此模式下函数计算系统自动为函数分配和释放实例,支持实例缩容至0。适用于流量无明显规律且波动较大的场景,需要接受一定程度的冷启动。
极速模式
成本与性能均衡模式,有效避免了冷启动问题,此模式可以通过设置预置快照数提前锁定弹性资源,实现极速弹性伸缩。并且只有在处理请求时才会产生vCPU使用费用,实现性能和成本的平衡。适用于对延迟较敏感的场景。
说明由于MCP SSE请求依赖于session会话机制,若同一个session id的请求被分配到不同实例会导致上下文丢失,因此建议开启极速模式,并预置1个快照,实例限额设置为1,确保SSE请求优先分配至同一实例,降低SSE请求分配到不同弹性实例的概率。
极速模式
网络配置
配置项
说明
本文示例
允许访问 VPC
是否允许函数访问VPC内资源。更多信息,请参见配置网络。
开启
专有网络
允许访问 VPC选择是时必填。创建新的VPC或在下拉列表中选择要访问的VPC ID。
fc.auto.create.vpc.1632317****
交换机
允许访问 VPC选择是时必填。创建新的交换机或在下拉列表中选择交换机ID。
fc.auto.create.vswitch.vpc-bp1p8248****
安全组
允许访问 VPC选择是时必填。创建新的安全组或在下拉列表中选择安全组。
fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd****
禁用公网访问 URL
开关开启后,您将仅能通过VPC内网访问MCP服务,而无法使用公网访问。
开启
仅允许指定 VPC 调用 MCP 服务
如果您希望MCP服务仅可以通过特定的VPC来调用,而无法通过公网和其他VPC调用,则需要开启此功能开关并绑定指定的VPC。
开启
测试MCP服务
当MCP服务部署完成后,平台会生成一个SSE连接地址,用于MCP服务连接测试。您可以通过Function AI控制台进行测试,或使用官方的Inspector进行本地测试。
方式一:Function AI控制台测试
在上一步创建的MCP服务详情页面,选择服务测试页签,单击测试连接测试成功后单击测试工具进行测试。
由于使用方式二创建MCP服务时,开启了鉴权认证,测试服务时自动填充Function AI平台生成的Bearer Token。
如果使用错误的Bearer Token,则测试失败。
测试成功后,选择监控和日志页签查看服务测试结果。
方式二:Inspector本地测试
在上一步创建的MCP服务详情页面,选择访问地址页签,获取公网访问地址。
执行以下命令,本地启动inspector工具。
npx @modelcontextprotocol/inspector
在inspector工具界面的URL输入框,填写获取的公网访问地址进行测试。
测试完成后,请及时单击Disconnect断开SSE连接,防止持续请求产生函数计算侧的资源使用费用。
接入MCP服务
在函数计算中创建MCP服务后,您可以通过在阿里云百炼控制台部署自定义 MCP 服务将您的MCP服务注册到百炼,然后接入智能体应用或工作流应用。
创建自定义MCP服务
登录Function AI控制台,找到上一步创建的MCP服务,在项目详情页面,选择访问地址页签,获取公网访问地址用于后期测试。
登录阿里云百炼控制台MCP管理页面,选择自定义服务页签,单击右上角的+创建MCP服务,选择使用脚本部署,然后单击部署服务。
在创建MCP服务页面,设置服务名称,选择安装方式为http,填写MCP服务配置,然后单击提交部署。
MCP服务配置示例如下,其中
https://****.cn-hangzhou.fcapp.run/sse
需替换为您在步骤1获取的公网访问地址。{ "mcpServers": { "test-sse": { "url": "https://****.cn-hangzhou.fcapp.run/sse" } } }
接入智能体应用
登录阿里云百炼应用管理页面,选择 ,单击立即创建。
在智能体应用页面,选择模型,添加上一步创建的MCP服务,开始试用。
本位以选择通义千问-Max模型为例。您可以添加多个MCP服务,包括阿里云百炼预置的MCP服务和您自定义的MCP服务。
测试MCP服务
大模型应用:智能体应用
外部工具:自定义地址位置服务工具
get_geolocation
变量管理
MCP服务通常需要访问第三方服务,例如高德地图或GitHub等,因此需要使用访问密钥,例如API-KEY或Token,这些密钥信息建议以环境变量加载或者启动命令参数注入。Function AI平台提供了变量管理功能,支持敏感变量托管,可以实现MCP服务访问密钥的安全可靠管理。更多关于变量的信息,请参见使用变量跨服务管理配置。
配置服务变量
加载服务变量
方式一:通过系统环境变量读取
Function AI平台配置的服务变量默认注入到函数启动的环境变量中,MCP服务代码可以直接通过系统环境变量读取。
方式二:通过启动参数注入
Function AI平台配置的服务变量支持通过${self.变量名称}
的方式引用,您可以在启动命令中修改命令行参数,在启动阶段注入变量的值。