MCP Server 之旅第 2 站: 从 0 到 1 - MCP Server 市场构建与存量 OpenAPI 转 MCP Server

简介: 本文聚焦MCP协议在企业应用中的两大核心痛点:如何将社区主流STDIO MCP Server一键转为可插拔Remote MCP Server,以及如何实现存量OpenAPI向MCP Server的智能化转型。文章通过具体示例,展示了基于函数计算和协议转译Adapter的解决方案,支持npm/pip生态,实现零改造一键迁移,大幅降低成本。

作者:西流、星宇

前言

在系列文章首篇 MCP Server 实践之旅第 1 站:MCP 协议解析与云上适配,我们系统解构了MCP协议的核心架构,重点验证了存量STDIO协议服务的云端转型方案——通过轻量化改造(前置一个 mcp-proxy)实现向SSE(Server-Sent Events)协议的实时通信升级。本文将延续技术纵深,聚焦当前企业拥抱 MCP 两大核心痛点:

如何将社区主流 STDIO MCP Server 一键转为企业内可插拔 Remote MCP Server?

在当前市面已经公开的各种 MCP Server,基本都是基于 STDIO 的实现,并且打包为独立的二进制可执行文件进行分发。其中 Node.js 和 python 占据了绝大多数,Node.js 生态通常通过 npx 提供,例如 "npx -y @amap/amap-maps-mcp-server", Python 生态则以 uvx 提供,例如 "uvx mcp-server-time --local-timezone=Asia/Shanghai",这种做法显然是十分明智。 既迎合了不同技术栈同学开发 MCP Server 的习惯, 也充分利用了极其可靠成熟的 npm 源, pypi 源进行 MCP Server 交付物的分发, 同时这种交付方式不仅简化了部署流程,还显著降低了环境依赖和配置的复杂性,使得跨平台部署变得极其轻量和高效。

因此,将社区主流 STDIO MCP Server 一键转为自己 的 MCP Server 是一个非常有价值的事情。至于为什么选择函数计算作为 MCP Server 托管运行时在 MCP Server 实践之旅第 1 站:MCP 协议解析与云上适配 上已经有深入的阐述(总结下来就是函数计算作为 MCP Server 的运行时具有安全、成本、弹性等各维度的优势),本文不再赘述。

存量API的智能化重生之路

许多公司自己有存量 OpenAPI,怎么让自己的存量的 OpenAPI 转为 MCP Server 服务, 从而可以被各种 Agent 调用, 进行 AI 应用上的创新是一个不可阻挡的趋势和潮流。但传统 OpenAPI 向 MCP 协议迁移挑战, 如何通过一个 OpenApi2MCP 适配器低成本实现存量 OpenAPI 一键转为 MCP Server 服务。

接下来,我们通过两个章节分别依次展开,通过具体的示例代码展示如何解决这两个痛点。

STDIO MCP Server 一键转为 SSE MCP Server

效果

1.通过 FunctionAI 平台的模版 https://cap.console.aliyun.com/create-project?template=start-mcp-fast-deploy 进行一键部署, 部署成功以后,就获得了一个 web 应用的 url

image.png

image.png

2.打开这个 web 应用,可以选择 npx 或者 uvx 部署,
a. 我们以 高德地图@amap/amap-maps-mcp-server 为例
b. 填写完毕,点击 "提交部署" 按钮, 等待一会, 会显示部署成功,并会显示部署成功以后保留的 mcp 服务 url 和支持这个 MCP 服务计算资源的函数 ARN

image.png

3.直接使用 "npx @modelcontextprotocol/inspector" 调试器调试部署成功的 MCP SSE 服务

image.png

4.之后,就可以把这个 url 注册到各种 Agent 客户端去消费, 比如百练、 Cherry Studio 等, 以 Cherry Studio 为例

image.png

image.png

原理

npx 运行原理

npx -y @modelcontextprotocol/server-github

等价于:

echo "{}" > package.json
npm install @modelcontextprotocol/server-github
./node_modules/.bin/mcp-server-github

uvx 运行原理

uvx mcp-server-time

等价于:

pip install -t ./python mcp-server-time
./python/bin/mcp-server-time

"提交部署"按钮做的事情, 整体流程如下图:

image.png

1.mcp-helper 函数干的事情,就是把对应的依赖包下载下来, zip 上传到一个 oss bucket 上, 函数计算支持使用 oss bucket 上的 object(zip 文件) 创建函数, 并且找到对应的启动命令

2.使用 supergateway 将启动 stdio server 的命令 expose 成 sse server 服务,有关 supergateway 在 FC 上的实践可以参考 MCP Server 实践之旅第 1 站:MCP 协议解析与云上适配 MCP Porxy 章节

具体源码可以参考: https://github.com/devsapp/mcp-fast-deploy/blob/main/src/mcp-fast-deploy/fc_utils.py

合作方

如果您想打造自己私有的 MCP Server 广场,可以参考该方案, 比如交付物发布到内部的 npm 或者 pypi 仓库,仅仅简单修改上面的 mcp-helper 函数即可以实现。

存量 OpenAPI 转 MCP Server

效果

1.通过 FunctionAI 部署模版https://cap.console.aliyun.com/create-project?template=start-fcai-mcp-openapi,输入 JSON 格式的存量服务的 OpenAPI Spec 以及包含权限信息的请求头(如果有的话)

image.png

只有 OpenAPI Spec 中存在 securitySchemes才需要填写 OpenApi 安全配置。

目前支持以下三种鉴权配置:

  • API Key 认证

OpenAPI 示例定义如下:

components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-API-KEY
      in: header

需要填入的 “OpenApi 安全配置” 内容格式如下:

{
   
  // 对应 apiKey 类型的 securityScheme 名称
  "ApiKeyAuth": "your_api_key_here",
}
  • HTTP Basic 认证

OpenAPI 示例定义如下:

components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic

需要填入的 “OpenApi 安全配置” 内容格式如下:

{
   
  // Basic Auth 配置(username:password 格式)
  "basic": "username:password", 
}
  • OAuth 2.0

OpenAPI 示例定义如下:

components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://example.com/oauth/authorize
          tokenUrl: https://example.com/oauth/token

需要填入的 “OpenApi 安全配置” 内容格式如下:

{
   
  // OAuth2 配置(Bearer token)
  "oauth2": "your_bearer_token_here",
}

2.点击立即部署,即可拉起 MCP 服务。部署完成后,可以在 “服务测试” 标签进行测试,也可以在“访问地址”标签拿到 SSE 协议的服务 URL:

image.png

image.png

直接使用 "npx @modelcontextprotocol/inspector" 调试器可以调试部署成功的 MCP SSE 服务:

image.png

所有 Tool 的参数都为 queryheaderbodypath,数据格式均为 json。测试时,您需要以标准 json 格式输入 Tool 对应的 API 的每个位置的参数。例如,如果 API 的 queryparam1param2 两个参数,则您需要在 query的输入框中以如下格式输入:

{
   
  "param1": "xxx",
  "param2": "xxx"
}

3.你可以使用访问地址中的 SSE URL 接入到 Cursor,Cherry Studio 等支持 SSE 协议的 MCP Client 中使用。如果 Client 只需要 SSE 的 URL(以 Cherry Studio 为例),输入“公网访问”的 URL 即可:

image.png

若需要输入 JSON 格式的 MCP 配置,则配置方式如下:

{
   
  "mcpServers": {
   
    "server-name": {
   
      "url": "<您的服务URL>",
    }
  }
}

随后,向 LLM 提问与你的服务相关的问题,LLM 便会自动调用部署好的 MCP Tool 并获取结果:

image.png

⚠️ FAQ

  1. 点击部署报错提示 “s.yaml not found in response” 怎么办?
    请确保您的 OpenAPI Spec 中不存在 { {}} 双花括号结构。若存在,请删除后重试。
  2. 部署不成功。日志中显示“Status Code is not 200”。
    请检查您的 OpenAPI Spec 是否规范,且确保其中的 servers字段不为空且包含了您的服务的真实 endpoint。

原理

在这个模版中,我们使用自开发的 [@serverless-devs/openapi-mcp-converter](https://github.com/Serverless-Devs/openapi-mcp-converter) 库实现了从 OpenAPI 规范数据到 MCP Server 实例的互转:

import fs from 'fs';
import {
    OpenApiMCPSeverConverter } from '../index.js';
import {
    StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import path from 'path';
import {
    fileURLToPath } from 'url';

const openApiDoc = JSON.parse(
  fs.readFileSync(
    path.join(
      path.dirname(
        fileURLToPath(import.meta.url)
      ), 
      'openapi.json'
    ), 
    'utf8'
  ));

const converter = new OpenApiMCPSeverConverter(
  openApiDoc, 
  {
    
    timeout: 100000, 
    security: {
    
      apiKey: 'my-api-key' 
    } 
  });
const server = converter.getServer();

这个库会分析 OpenAPI 中的接口信息,自动转化为 MCP Server 所需的 JSON Schema,并利用官方 SDK 生成一个 Server 实例。整体流程如下:

image.png

转化库的代码已在 Github 开源,地址为 https://github.com/Serverless-Devs/openapi-mcp-converter。项目遵循 MIT 协议并持续开放维护,如果你发现任何问题或有改进建议:

  • 欢迎通过 Issues 提交问题报告或功能请求
  • 可直接通过 Pull Requests 提交代码改进

总结

本文通过协议转译 Adapter + 函数计算的解决方案,为 MCP Server 服务化提供了一套企业级、低成本的解决方案, 同时为存量 API 的智能化转型开辟了高效率的实践路径。

生态价值
联合阿里云百练、魔搭社区等头部平台,快速构建起 MCP Server 服务市场,加速 AI 应用生态的繁荣与创新。

技术优势
支持主流 npm/pip 生态,实现 MCP Server 的零改造、一键迁移,大幅降低技术迁移成本。

成本与效率

  • 低成本转型:相比传统代码重构,我们的 Serverless Adapter 方案可以实现存量 API 到 MCP Server 的无缝转换,转型成本接近零。
  • 弹性计算:针对 MCP Server 典型的稀疏访问特征,Serverless 架构的毫秒级按量付费模式,
目录
相关文章
|
18天前
|
人工智能 监控 Serverless
MCP Server On FC 之旅第 4 站:长连接闲置计费最高降低 87% 成本的技术内幕
函数计算(FC)是阿里云的全托管计算服务,支持事件驱动模式。用户无需管理基础设施,只需上传代码或镜像即可运行任务,并享有日志查询、性能监控等功能。针对MCP Server场景,FC通过MCP Runtime实现开源Stdio MCP Server的一键托管,解决了Session会话保持问题,并推出长连接闲置计费能力,按实际使用收费,最高可降低87%的成本。此外,FC还提供亲和性调度及Websocket长请求的闲置计费支持,帮助用户优化资源利用与成本。
156 69
|
1月前
|
JSON 安全 Serverless
MCP Server On FC之旅2: 从0到1-MCP Server市场构建与存量OpenAPI转MCP Server
本文介绍了将社区主流STDIO MCP Server一键转为企业内可插拔Remote MCP Server的方法,以及存量API智能化重生的解决方案。通过FunctionAI平台模板实现STDIO MCP Server到SSE MCP Server的快速部署,并可通过“npx”或“uvx”命令调试。同时,文章还探讨了如何将OpenAPI规范数据转化为MCP Server实例,支持API Key、HTTP Basic和OAuth 2.0三种鉴权配置。该方案联合阿里云百练、魔搭社区等平台,提供低成本、高效率的企业级MCP Server服务化路径,助力AI应用生态繁荣。
321 40
|
17天前
|
人工智能 Serverless API
MCP Server 之旅第 4 站: 长连接闲置计费最高降低87%成本的技术内幕
阿里云函数计算(FC)提供事件驱动的全托管计算服务,支持 MCP Server 场景优化。通过 [MCP Runtime](https://mp.weixin.qq.com/s/_DSMRovpr12kkiQUYDtAPA),实现 Stdio MCP Server 一键托管,并借助亲和性调度解决 Session 保持问题。针对 MCP Server 的稀疏调用特性,函数计算引入长连接闲置计费机制,在毫秒级计费基础上,显著降低资源闲置成本(最高可达87%)。用户可通过控制台或 API 开启该功能,Websocket 长请求场景亦默认支持。此方案有效提升资源利用率,为用户提供灵活、经济的计算服务。
38 2
|
2月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
257 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
2月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
297 29
|
5月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
2月前
|
人工智能 开发框架 运维
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
Serverless MCP 运行时业界首发,函数计算支持阿里云百炼 MCP 服务!阿里云百炼发布业界首个全生命周期 MCP 服务,无需用户管理资源、开发部署、工程运维等工作,5 分钟即可快速搭建一个连接 MCP 服务的 Agent(智能体)。作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力。
226 0
 Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
|
3月前
|
人工智能 运维 架构师
Serverless + AI 让应用开发更简单,加速应用智能化
Serverless + AI 让应用开发更简单,加速应用智能化
128 5
|
4月前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
251 15
|
8月前
|
存储 消息中间件 人工智能
ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
本文整理自2024年云栖大会阿里云智能集团高级技术专家金吉祥的演讲《ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用》。
264 53