MCP 合法时:FunctionAI MCP 开发平台来了!

打印 上一主题 下一主题

主题 1953|帖子 1953|积分 5859

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模板举行摆设

填写模板配置,摆设项目


查看摆设进度


方式二:创建自界说MCP服务

创建空白项目


创建MCP服务


编辑MCP服务配置,完成后点击预览&摆设


查看摆设进度,等待摆设完成


方式三:使用ServerlessDevs工具本地摆设

FunctionAI 正式发布了 ServerlessDevs 工具的 MCP 组件,实现本地摆设 MCP 工程到 FunctionAI 的本领
安装ServerlessDevs工具:
  1. npm install @serverless-devs/s -g
复制代码
初始化MCP项目
  1. s init start-fcai-mcp-nodejs
复制代码
查看s.yaml
  1. edition: 3.0.0
  2. name: start-mcp-server-nodejs
  3. access: 'default'
  4. vars:
  5.   region: 'cn-hangzhou'
  6. resources:
  7.   nodejs-stdio-hello-world:
  8.     component: fcai-mcp-server
  9.     props:
  10.       region: ${vars.region}
  11.       description: mcp server deployed by devs
  12.       transport: stdio # stidio | sse
  13.       runtime: nodejs20
  14.       cpu: 1
  15.       memorySize: 1024
  16.       rootDir: ./code
  17.       source:
  18.         oss: auto
  19.       build:
  20.         default: #默认构建器
  21.           # 构建环境
  22.           languages:
  23.             - nodejs20
  24.           # 执行步骤
  25.           steps:
  26.             - run: npm install
  27.             - run: npm run build
  28.       startCommand: "node ./dist/index.js" # 启动命令
  29.       instanceQuota: 1 # 实例数配额
复制代码
执行摆设
  1. s deploy
复制代码

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

测试 MCP 服务

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


查看日记和监控


方式2:Inspector本地测试

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

本地启动inspector,输入访问地址举行调试
  1. 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

加载方式1:环境变量

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

加载方式2:启动参数

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


绑定代码仓库举行一连摆设

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

  • 编辑MCP服务配置,选择代码仓库,目前支持了Github、Gitee、Codeup、GitLab、OSS代码仓库。
  • 选择仓库分支、MCP工程在代码仓库中的根目次
  • 选择构建环境:对于多语言的工程,可以选择多个构建环境
  • 编辑构建命令:例如 npm build、pip install -r requirements.txt
  • 可选:开启构建缓存,缓存目次根据不同语言可以设置/.npm(Nodejs)、/.cache(Python)、~/.m2、(Java)

绑定Git仓库后,如果指定的分支有push操纵,会主动触发服务的一连摆设

极速模式

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

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

总结与将来展望

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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表