MCP 合法时:FunctionAI MCP 开发平台来了!
MCP——AI 时代的“操纵系统接口”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 都采用传统 STDIO 模式,该模式没有鉴权本领(缺乏 OAuth 2.1 标准的双向认证机制、无法实现基于脚色的访问控制),在复杂业务场景下暴暴露调试困难、网络隔离性差等缺陷,难以实现访问内网环境的数据安全管控,内网穿透导致攻击面扩大;
[*]弹性困境:MCP 工具调用流量出现显著的非稳态特征以及"脉冲式"波动,比如智能客服系统的峰谷效应非常明显,传统虚拟机摆设造成大量资源浪费;
[*]开发断层:从本地调试到云端摆设需要重构鉴权、变量管理、日记、中间件等底子组件,改造本钱高,开发者大量的精力消耗在非业务代码的开发上;
Serverless 是 MCP 托管的最佳解决方案
我们观察到大部门的 MCP server 有以下特点:
[*]稀疏调用,而且对算力的需求都比较小,0.5c/1G的规格基本可以或许应对大部门场景;
[*]代码体积比较小(< 100MB),Nodejs、Python解释型语言是MCP的一等公民,大部门MCP server直接通过npx、uv就能一键运行;
[*]MCP server的迭代非常快,新增、修改或弃用MCP server的场景会非常高频,对MCP server元数据管理的需求非常普遍;
因此灵活摆设、弹性扩展的运行时对于 MCP server 的托管非常契合,这恰恰是 Serverless 的最大优势。以阿里云函数计算为例:
[*]天然的事件驱动模型,提供毫秒级弹性本领、按量付费、安全沙箱的运行时环境,完美解决了云上托管对于性能、本钱、安全的需求;
[*]官方对于 Nodejs、Python 运行时的支持美满,内置代码包加速本领以及层的扩展,大幅低落代码启动时间;
[*]控制台、SDK、ServerlessDevs 工具提供丰富的函数元数据的管理本领;
这些本领让 Serverless 正成为托管 MCP 的最优解。作为 MCP 的最佳运行时,函数计算已经支持阿里云百炼 MCP 服务。
Function AI 是基于函数计算构建的 Serverless AI 应用开发平台,基于函数计算的运行时本领上线了完备的 MCP 开发本领,成为真正意义上的MCP 开发平台。您可以进入FunctionAI控制台,快速体验 MCP 服务的本领。
快速摆设
方式一:通过模板一键摆设
选择MCP模板
进入FunctionAI控制台,选择探索->筛选应用模板(MCP Server),选择一个MCP模板举行摆设
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145223308-652582887.png
填写模板配置,摆设项目
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145225508-1532722208.png
查看摆设进度
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145226503-70223839.png
方式二:创建自界说MCP服务
创建空白项目
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145227760-1937704921.png
创建MCP服务
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145229284-288518686.png
编辑MCP服务配置,完成后点击预览&摆设
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145230961-2074282105.png
查看摆设进度,等待摆设完成
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145233731-101290668.png
方式三:使用ServerlessDevs工具本地摆设
FunctionAI 正式发布了 ServerlessDevs 工具的 MCP 组件,实现本地摆设 MCP 工程到 FunctionAI 的本领
安装ServerlessDevs工具:
npm install @serverless-devs/s -g初始化MCP项目
s init start-fcai-mcp-nodejs查看s.yaml
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 deployhttps://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145237026-1947780178.png
登录到控制台,可以查看云端的摆设详情
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145239152-54464465.png
测试 MCP 服务
FunctionAI 支持托管 STDIO/SSE 协议的 MCP server。如果 MCP server 代码采用 STDIO,FunctionAI 会启动一个SSE服务来代理STDIO的哀求,客户端访问需要使用SSE方式。
当 MCP 服务摆设完成后,平台会生成一个 SSE 的连接地址,而且会生成 MCP server的schema 用于测试。
用户可以直接在控制台上测试连接、测试工具,也可以使用官方的 Inspector 在本地举行测试。
方式1:FunctionAI控制台测试
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145241000-762625296.png
查看日记和监控
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145243782-1795292777.png
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145245913-208809900.png
方式2:Inspector本地测试
复制FunctionAI生成的公网访问地址
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145248342-98415754.png
本地启动inspector,输入访问地址举行调试
npx @modelcontextprotocol/inspectorhttps://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145250417-1104094022.png
高阶本领
鉴权
MCP 的鉴权只适用于 SSE 的协议,而且必须遵照 OAuth2.1协议标准,对于大量的 STDIO 的 MCP 服务托管的改造难度非常之高,企业落地 MCP 鉴权是一个非常痛点的问题。
FunctionAI 提供了网关侧的 Bearer 鉴权本领,用户只需要开启鉴权功能,使用平台生成的 Bearer Token,就可以让 MCP 服务自带鉴权本领。
使用方式
编辑服务配置,点击开启鉴权,生存而且摆设。开启后,平台会对服务生成一个只读的Bearer Token。
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145252459-1625294904.png
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145253896-100870998.png
测试鉴权生效
使用平台生成的Beaer Token,可以正常访问MCP服务
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145255313-1484778628.png
使用错误的token时,访问失败
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145258010-1082075659.png
使用本地的Inspector,输入服务的token,访问正常。https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145300314-1512026216.png
变量管理
很多的 MCP Server 代码都需要访问第三方服务,比如高德地图、Github 等,需要持有效户的访问秘钥,比如API-Key、AccessToken,这些秘钥通常以环境变量加载大概启动命令参数注入。
FunctionAI 提供了变量管理本领,而且支持敏感变量托管,可以实现 MCP 服务访问秘钥的安全可靠管理。
配置方式:设置服务变量
选择服务->服务变量,添加服务变量的Key和Value
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145301997-1116378926.png
加载方式1:环境变量
FunctionAI上配置的服务变量会默认注入到函数启动的环境变量中,MCP服务代码可以直接通过系统环境变量读取
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145303556-1369415712.png
加载方式2:启动参数
FunctionAI的服务变量支持通过${self.KEY_NAME}的方式引用,可以在启动命令中修改命令行参数,使用变量的引用,在启动阶段注入变量的值。
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145304203-1018094048.png
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145305604-1523068281.png
绑定代码仓库举行一连摆设
FunctionAI的MCP服务面向开发态本领,提供以代码仓库托管MCP 服务的本领。
使用方式:
[*]编辑MCP服务配置,选择代码仓库,目前支持了Github、Gitee、Codeup、GitLab、OSS代码仓库。
[*]选择仓库分支、MCP工程在代码仓库中的根目次
[*]选择构建环境:对于多语言的工程,可以选择多个构建环境
[*]编辑构建命令:例如 npm build、pip install -r requirements.txt
[*]可选:开启构建缓存,缓存目次根据不同语言可以设置/.npm(Nodejs)、/.cache(Python)、~/.m2、(Java)
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145306888-556060722.png
绑定Git仓库后,如果指定的分支有push操纵,会主动触发服务的一连摆设
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145309214-216075458.png
极速模式
对于延迟敏感性的业务,FunctionAI提供了极速模式,可以提前预留指定数目的实例快照,低落频繁冷启动带来的开销,而且只有在有活泼哀求时才会产生vCPU费用,可以实现性能和本钱的平衡。
另外由于MCP SSE哀求的session机制,同一个session id访问到不同实例会导致上下文丢失,因此建议开启预置快照为1而且实例限额为1,这样可以让SSE哀求打到不同弹性实例的概率更小。
:::info
FunctionAI后面会上线会话亲和性本领,尽情期待。
:::
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145311155-1242627222.png
开启后,可以在函数监控页面看到预留实例的个数
https://img2024.cnblogs.com/other/2123714/202504/2123714-20250415145312540-1858927807.png
总结与将来展望
FunctionAI 现在已经支持了完备的 MCP 开发本领,包括:
[*]摆设形式上,支持模板直接摆设、自界说MCP服务、ServerlessDevs工具本地摆设
[*]托管本领上,支持STDIO/SSE的主动托管,无需业务改造既能生成可用于访问的SSE地址
[*]调试本领上,支持控制台直接调试以及Inspector本地调试
[*]二次开发本领上,支持变量管理、鉴权、绑定代码仓库举行一连摆设
[*]可观测本领上,支持函数监控、实例监控以及日记
[*]弹性调度上,支持标准模式以及极速模式
MCP 的价值是统一了 Agent 和 LLM 之间的标准化接口,有了 MCP Server 的托管以及开发态本领只是第一步,接下来重要的是做好 MCP 和 Agent 的集成,FunctionAI 即将上线 Agent 开发本领,敬请期待。
更多内容关注 Serverless 微信公众号(ID:serverlessdevs),汇集 Serverless 技术最全内容,定期举办 Serverless 活动、直播,用户最佳实践。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]