时间:2025-04-15 14:53
人气:
作者:admin
2024年11月,Anthropic发布模型上下文协议(MCP),这一开放标准迅速引发开发者社区的"协议觉醒"。其本质是通过标准化接口实现LLM与外部世界的双向交互,正如 USB 协议统一外设接入,MCP 正成为 AI 应用连接数字生态的通用总线。随着 Cursor、Claude 等开发工具相继集成,特别是 OpenAI 宣布全面兼容 MCP 协议,标志着 MCP 从技术实验迈入产业级标准,这一标准化接口正重塑AI与数字世界的交互范式。
截至2025年4月,MCP.so上已经已有超过8000个注册的MCP Server,涵盖数据处理、文件系统、API网关、聊天机器人、数据库等服务类别,这一数量还在迅速增长。
尽管 MCP 生态呈现指数级增长,GitHub 仓库星标数半年突破 3.5万,但生产级落地仍面临三重挑战:
我们观察到大部分的 MCP server 有以下特点:
因此灵活部署、弹性扩展的运行时对于 MCP server 的托管非常契合,这恰恰是 Serverless 的最大优势。以阿里云函数计算为例:
这些能力让 Serverless 正成为托管 MCP 的最优解。作为 MCP 的最佳运行时,函数计算已经支持阿里云百炼 MCP 服务。
Function AI 是基于函数计算构建的 Serverless AI 应用开发平台,基于函数计算的运行时能力上线了完整的 MCP 开发能力,成为真正意义上的MCP 开发平台。您可以进入FunctionAI控制台,快速体验 MCP 服务的能力。
进入FunctionAI控制台,选择探索->筛选应用模板(MCP Server),选择一个MCP模板进行部署







FunctionAI 正式发布了 ServerlessDevs 工具的 MCP 组件,实现本地部署 MCP 工程到 FunctionAI 的能力
npm install @serverless-devs/s -g
s init start-fcai-mcp-nodejs
edition: 3.0.0
name: start-mcp-server-nodejs
access: 'default'
vars:
region: 'cn-hangzhou'
resources:
nodejs-stdio-hello-world:
component: fcai-mcp-server
props:
region: ${vars.region}
description: mcp server deployed by devs
transport: stdio # stidio | sse
runtime: nodejs20
cpu: 1
memorySize: 1024
rootDir: ./code
source:
oss: auto
build:
default: #默认构建器
# 构建环境
languages:
- nodejs20
# 执行步骤
steps:
- run: npm install
- run: npm run build
startCommand: "node ./dist/index.js" # 启动命令
instanceQuota: 1 # 实例数配额
s deploy

登录到控制台,可以查看云端的部署详情

FunctionAI 支持托管 STDIO/SSE 协议的 MCP server。如果 MCP server 代码采用 STDIO,FunctionAI 会启动一个SSE服务来代理STDIO的请求,客户端访问需要使用SSE方式。
当 MCP 服务部署完成后,平台会生成一个 SSE 的连接地址,并且会生成 MCP server的schema 用于测试。
用户可以直接在控制台上测试连接、测试工具,也可以使用官方的 Inspector 在本地进行测试。

查看日志和监控


复制FunctionAI生成的公网访问地址

本地启动inspector,输入访问地址进行调试
npx @modelcontextprotocol/inspector

MCP 的鉴权只适用于 SSE 的协议,而且必须遵循 OAuth2.1协议标准,对于大量的 STDIO 的 MCP 服务托管的改造难度非常之高,企业落地 MCP 鉴权是一个非常痛点的问题。
FunctionAI 提供了网关侧的 Bearer 鉴权能力,用户只需要开启鉴权功能,使用平台生成的 Bearer Token,就可以让 MCP 服务自带鉴权能力。
编辑服务配置,点击开启鉴权,保存并且部署。开启后,平台会对服务生成一个只读的Bearer Token。


使用平台生成的Beaer Token,可以正常访问MCP服务

使用错误的token时,访问失败

使用本地的Inspector,输入服务的token,访问正常。
很多的 MCP Server 代码都需要访问第三方服务,比如高德地图、Github 等,需要持有用户的访问秘钥,比如API-Key、AccessToken,这些秘钥通常以环境变量加载或者启动命令参数注入。
FunctionAI 提供了变量管理能力,并且支持敏感变量托管,可以实现 MCP 服务访问秘钥的安全可靠管理。
选择服务->服务变量,添加服务变量的Key和Value

FunctionAI上配置的服务变量会默认注入到函数启动的环境变量中,MCP服务代码可以直接通过系统环境变量读取

FunctionAI的服务变量支持通过${self.KEY_NAME}的方式引用,可以在启动命令中修改命令行参数,使用变量的引用,在启动阶段注入变量的值。


FunctionAI的MCP服务面向开发态能力,提供以代码仓库托管MCP 服务的能力。
使用方式:

绑定Git仓库后,如果指定的分支有push操作,会自动触发服务的持续部署

对于延迟敏感性的业务,FunctionAI提供了极速模式,可以提前预留指定数量的实例快照,降低频繁冷启动带来的开销,并且只有在有活跃请求时才会产生vCPU费用,可以实现性能和成本的平衡。
另外由于MCP SSE请求的session机制,同一个session id访问到不同实例会导致上下文丢失,因此建议开启预置快照为1并且实例限额为1,这样可以让SSE请求打到不同弹性实例的概率更小。
:::info
FunctionAI后面会上线会话亲和性能力,尽情期待。
:::

开启后,可以在函数监控页面看到预留实例的个数

FunctionAI 现在已经支持了完整的 MCP 开发能力,包括:
MCP 的价值是统一了 Agent 和 LLM 之间的标准化接口,有了 MCP Server 的托管以及开发态能力只是第一步,接下来重要的是做好 MCP 和 Agent 的集成,FunctionAI 即将上线 Agent 开发能力,敬请期待。
更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。