快速打造企业内部的私有MCP市场

随着企业数字化转型的深入,Model Context Protocol (MCP) 作为连接AI模型与企业数据的重要桥梁,正在成为企业AI应用的核心基础设施。阿里云计算巢为企业提供了完整的MCP市场解决方案,帮助企业快速构建内部私有化的MCP服务平台,实现AI能力的统一管理和分发。本文介绍如何基于计算巢构建企业内部MCP市场,包括系统架构设计、公开和私有MCP服务部署、权限管理以及企业级功能特性。

系统架构设计

image

核心组件与架构特点

核心组件:

  • MCP集群管理:支持私有和公开MCP包的统一管理。

  • AI网关(Higress):提供统一的API入口和路由控制。

  • 权限控制模块:基于API Key的多租户权限管理。

  • 基础设施管理:包含动态伸缩、服务发现、健康检查等。

架构特点:

  • 私有MCP包通过OSS存储,支持本地化部署。

  • AI网关提供统一的API访问入口和认证机制。

  • 支持REST APIMCP协议的智能转换。

  • 完整的监控和日志管理体系。

通过计算巢MCP市场,企业可以快速构建内部的私有化MCP服务平台。

核心价值:

  • 统一管理:公开和私有MCP服务的统一管理和分发。

  • 安全可控:企业级的权限管理和数据安全保障。

  • 易于使用:简化的部署流程和直观的管理界面。

业务收益:

  • 提升AI应用开发效率。

  • 降低基础设施管理成本。

  • 增强数据安全和合规性。

  • 促进企业内部AI能力共享。

多协议支持

  • MCP原生协议:SSE长连接,实时交互

  • OpenAPI REST:标准HTTP接口

  • Streamable HTTP:分块传输,支持大数据流处理

部署模式

社区版能力:

  • 快速部署MCP,支持私有化部署

  • 支持实例变配和MCP调试

  • 简单的MCP管控面板

企业版增强:

在社区版基础上,支持以下功能

  • 支持选择已有AI网关实例和自定义域名

  • 企业级权限管理和API Key分发

  • 完备的MCP管控面板

公开MCP服务部署

支持的服务类型

计算巢MCP市场支持多种类型的公开MCP服务。

标准公开MCP工具:

  • 浏览器自动化工具

  • 位置服务和地图工具

  • 搜索引擎工具

  • 开发者工具集

  • 文件处理工具

  • 数据分析工具

自定义公开MCP服务:

  • 支持从公共仓库安装的NPX

  • 支持从公共仓库安装的UVX

  • 已有的SSE MCP服务纳管

公开MCP服务部署流程

  1. 访问MCP市场:进入计算巢首点击"MCP市场",浏览可用的公开MCP工具。

    image.png

  2. 选择要部署的MCP工具,如"必应搜索中文",点击MCP工具进入详细文档界面,查看工具功能说明和使用示例。image.png

  1. 单击开始部署,选择创建新的服务实例或部署到已有实例,多个MCP工具可部署在同一服务实例内。image.png

  2. 根据业务情况选择合适的ECS实例规格及包年包月或按量付费的计费方式,配置网络和安全组。

  3. 配置完成后点击立即创建开始部署,待服务实例创建完成后,可获取到MCP控制台和调试界面访问地址。

私有MCP服务部署

说明

若无可用的OSS Bucket可通过任意公开MCP包创建出计算巢服务实例,该服务实例会自动创建出符合规范的OSS仓库。

MCP包存储及部署原理

OSS存储方案:

  • 所有私有包统一上传到用户自有的OSS Bucket根目录

安全控制:

  • 通过ECS RAM Role实现安全的OSS访问

  • 支持包的加密存储

  • 实施访问日志和审计

自动化部署流程:

  1. 环境检查:检查OSSUtil工具是否已安装配置

  2. 包下载:从OSS下载私有MCP包到本地

  3. 服务启动:根据配置启动MCP服务

  4. 健康检查:验证服务是否正常运行

  5. 服务注册:将服务注册到AI网关

计算巢MCP市场支持标准的包管理格式Python (UVX) 格式和JavaScript (NPX) 格式。

Python (UVX) 格式

基于PEP 518标准pyproject.toml配置。

JavaScript (NPX) 格式

基于标准的package.json配置。

  • 支持文件类型:.tgz

创建流程

Python MCP包创建流程

  1. 创建pyproject.toml文件。

    [build-system]
    requires = ["hatchling"]
    build-backend = "hatchling.build"
    
    [project]
    name = "your-mcp-package"           # 包名(必需)
    version = "1.0.0"                   # 版本号(必需)
    description = "Your MCP Server description"
    authors = [
        {name = "Your Name", email = "your.email@example.com"}
    ]
    readme = "README.md"
    requires-python = ">=3.8"          # Python版本要求
    dependencies = []                   # 运行时依赖
    
    # 脚本入口点配置(必需)
    [project.scripts]
    your-mcp-command = "your_package_name.server:main"
    
    [project.urls]
    Homepage = "https://github.com/your-username/your-mcp-package"
    
    # 构建配置
    [tool.hatch.build.targets.wheel]
    packages = ["src/your_package_name"]
  2. 进入计算巢首页,点击"MCP市场",选择"创建自定义MCP"。image.png

  3. 上传MCP图标(支持自定义图标),设置MCP名称和唯一ID。

    说明

    同一服务实例下ID不能重复。

  4. 选择安装方式为UVX,选择合适的地域和OSS Bucket,上传软件包。image.png

  5. (可选)配置启动参数。

    默认参数启动命令如下(不可修改)。

    uvx /mcp-package/your-package-name.whl

    您可添加额外的启动参数。

    --timezone Asia/Shanghai --config /path/to/config
  6. (可选)配置环境变量,如果您使用的MCP Serverpackage需要设置环境变量,如API Key 等参数,可在此处添加配置。image.png

  7. 选择创建新的服务实例或部署到已有实例。等待部署完成,可通过MCP管控平台查看服务状态。image.png

JavaScript MCP包创建流程

  1. 确保package.json包含正确的配置:

    {
      "name": "your-mcp-package",
      "version": "1.0.0",
      "description": "Your MCP Server description",
      "main": "index.js",
      "bin": {
        "your-mcp-command": "./bin/server.js"
      },
      "dependencies": {
        "@modelcontextprotocol/sdk": "^0.4.0"
      }
    }
  2. 使用npm pack生成.tgz包文件。

  3. 上传配置,选择安装方式为NPX,上传.tgz格式的软件包。image.png

  4. (可选)配置启动参数。

    • 默认参数启动命令如下(不可修改)。

      npx -y --package /mcp-package/your-package.tgz ${启动命令}
    • 自定义参数:第一个参数必须是可执行文件映射(package.jsonbin字段的值)。

      your-mcp-command --config /path/to/config
      说明

      用户如果有自定义参数项,比如给package设置时区,则可传入类似--from cn-beijing的值进行设置。此处会通过空格解析传入的指令

  1. (可选)配置环境变量,如果您使用的MCP Serverpackage需要设置环境变量,如API Key 等参数,可在此处添加配置。image.png

  2. 直接新建服务实例或选择已有的服务实例。

    image.png

  3. 待服务实例部署完后,可点击MCP管控平台查看整体的MCP服务,或在下方可用的MCP服务处选择查看。image.png

企业内部APIMCP服务

对于企业内部,满足OpenAPI规范的配置文件的API服务,可基于AI网关实现已有APIMCP。该转换操作支持将OpenAPI规范批量转化为MCP Server,自动生成MCP协议适配层,并保持原有API的功能和性能。

企业接入指南

接入前,需创建网关实例

企业MCP市场展示

在企业版计算巢服务实例中,展示了可用的MCP。此处需要调用AI网关的APIListHttpApiRoutesListHttpApis查询可用的MCP,包含APIMCP和私有公开包拉起的MCP。image.png

调用逻辑如下:

  1. 首先通过ListHttpApis获取ApiId,入参如下。出参中获取到type为唯一的MCP相关的httpApiId

      "gatewayId": "gw-d1qbbium1hko66pmepf0",(从服务实例Parameters里获取)
      "gatewayType": "AI",(固定)
      "keyword": "mcp",(固定)
  2. 通过传入httpApiId和从服务实例里获取的gatewayId,通过ListHttpApiRoutes查询当前网关MCP信息。对于计算巢部署的MCP,在Description字段中存储了该MCP的图标,名称和描述。可参考以下字段:

    {
      "Name": "MCP-Name",
      "Description": "该服务器使大型语言模型能够检索和处理网页内容,将HTML转换为markdown格式,以便于更轻松地使用。",
      "Path": "oss://packages/nodejs/web-scraper-mcp-1.0.0.tgzwhl",
      "Icon": "https://resources.modelscope.cn/studio-cover-pre/studio-cover_761f7bfe-fc5c-4753-b955-dcdd3288941b.png",
    }
  3. 将以上结果作为卡片展示即可。

企业级权限管理架构

权限控制模块包含以下核心组件:

  • 消费者管理(Consumer Management):管理不同业务团队的身份标识。

  • API Key认证:基于API Key的身份验证机制。

  • 授权策略引擎:控制消费者对MCP服务的访问权限。

  • 路由级权限控制:在AI网关层面实现精细化的路由访问控制。

权限模型:

企业平台
├── 业务团队A (Consumer A)
│   ├── API Key: bmw-team-a-001
│   └── 权限: MCP1, MCP2, MCP3
├── 业务团队B (Consumer B)
│   ├── API Key: bmw-team-b-002
│   └── 权限: MCP4, MCP5, MCP6
└── 业务团队C (Consumer C)
    ├── API Key: bmw-team-c-003
    └── 权限: MCP1, MCP4, MCP5

消费者与API Key管理

平台管理员可以通过调用CreateConsumer API为业务团队创建消费者身份。

API调用示例:

{
  "apiKeyIdentityConfig": {
    "apikeySource": {
      "source": "QueryString",
      "value": "apikey"
    },
    "type": "Apikey",
    "credentials": [
      {
        "generateMode": "Custom",
        "apikey": "bmw-team-a-001"
      }
    ]
  },
  "name": "会计团队",
  "enable": true,
  "gatewayType": "AI"
}

响应示例:

{
  "code": "Ok",
  "data": {
    "consumerId": "cs-d2437ium1hkoc92qbpo0"
  },
  "requestId": "3CA6571A-937B-3164-8DE7-11716FA43466"
}

API Key命名规范建议:

{企业标识}-{团队标识}-{序号}
例如:bmw-finance-001, bmw-frontend-002

安全策略:

  • API Key应存储在安全的配置管理系统中。

  • 避免在代码中硬编码API Key。

  • 定期轮换API Key提升安全性。

  • 实施IP白名单限制。

MCP服务授权机制

启用MCP服务认证

调用CreateAndAttachPolicy API,为每个MCP服务启用认证机制,。

{
  "attachResourceType": "GatewayRoute",
  "gatewayId": "gw-d1qbbium1hko66pmepf0",
  "environmentId": "env-d1qbc7em1hkluu4lgagg",
  "config": "{\"authenticationType\":\"Apikey\",\"enable\":true}",
  "className": "Authentication",
  "attachResourceIds": [
    "hr-d1sqdqem1hkrte7kn3t0"
  ]
}

消费者授权

通过CreateConsumerAuthorizationRules API为消费者授权访问特定MCP服务:

{
  "authorizationRules": [
    {
      "consumerId": "cs-d242jsum1hkktoltohs0",
      "resourceIdentifier": {
        "resourceId": "hr-d1sqdqem1hkrte7kn3t0",
        "environmentId": "env-d1qbc7em1hkluu4lgagg"
      },
      "resourceType": "MCP",
      "expireMode": "LongTerm"
    }
  ]
}

权限申请工作流

在企业内部可参考以下流程实现API Key的自动化。

  1. 业务团队提交申请:选择需要访问的MCP服务列表。

  2. 平台方审核:验证申请的合理性和安全风险。

  3. 自动化授权:系统自动创建消费者并执行授权操作。

  4. 权限生效:业务团队获得API Key并开始使用。

MCP服务使用与集成

支持所有兼容MCP协议的AI助手,提供标准的MCP服务器配置格式,支持SSE、HTTP等多种连接方式。

AI助手Cherry Studio集成示例

  1. 访问计算巢实例界面,选择要使用的MCP工具进入详情页面,获取MCP配置信息image.png

  2. 复制MCP服务器配置信息。image.png

  3. 打开Cherry Studio助手,新建MCP服务器配置,粘贴复制的配置信息。image.png

  4. 点击右上角的"启用"和"保存"进入对话界面,选择要使用的MCP工具,开始与AI助手进行对话,调用MCP工具功能。

运维监控与健康检查

实例健康状态监控

访问服务实例监控面板可查看ECS监控指标。image.png

MCP服务可用性检测。

MCP调用日志,网关日志可在AI网关控制台查看。image.png

性能指标收集和告警

image

资源使用情况统计

image

常见问题

OSS文件上传失败怎么办?

需要选择的OSS关闭”阻止公共访问“,且对当前RAM账号开启授权。可参考以下操作。image.png

image.png