Files
cloudpods/docs/mcp-server
彭镜肇 010fdfee3c Pengjingzhao ospp v2 (#23309)
* feat(mcp-server): 增加mcclient sdk适配器结构体以及对应的认证方法

* feat(mcp-server): 增加资源查询的sdk适配器方法

* feat(mcp-server): 增加资源操作的sdk适配器方法

* feat(mcp-server): 增加区域资源查询工具

* feat(mcp-server): 增加网络资源查询工具

* feat(mcp-server): 增加镜像资源查询工具

* feat(mcp-server): 增加虚拟机资源查询工具

* feat(mcp-server): 增加vpc资源查询工具

* feat(mcp-server): 增加存储资源查询工具

* feat(mcp-server): 增加套餐资源查询工具

* feat(mcp-server): 增加虚拟机创建工具

* feat(mcp-server): 增加虚拟机监控工具

* feat(mcp-server): 增加虚拟机操作工具,包括启动、重启、停止、重置密码和删除

* optimize(mcp-server): 增加工具函数接口定义

* feat(mcp-server): 增加工具函数所使用的结构体模型

* feat(mcp-server): 新增工具统一注册中心

* feat(mcp-server): 增加mcp服务中心

* feat(mcp-server): 增加统一配置中心

* feat(mcp-server): 增加服务启动主入口

* doc(mcp-server): 增加mcp-server相关的说明,安装和使用文档

* fix(mcp-server): 更正文档位置以及补充图片

* refactor(mcp-server): 修正了service以及配置解析的逻辑

* refactor(mcp-server): 将日志打印相关代码改成使用log

* feat(mcp-server): 增加mcclient sdk适配器结构体以及对应的认证方法

* feat(mcp-server): 增加资源查询的sdk适配器方法

* feat(mcp-server): 增加资源操作的sdk适配器方法

* feat(mcp-server): 增加区域资源查询工具

* feat(mcp-server): 增加网络资源查询工具

* feat(mcp-server): 增加镜像资源查询工具

* feat(mcp-server): 增加虚拟机资源查询工具

* feat(mcp-server): 增加vpc资源查询工具

* feat(mcp-server): 增加存储资源查询工具

* feat(mcp-server): 增加套餐资源查询工具

* feat(mcp-server): 增加虚拟机创建工具

* feat(mcp-server): 增加虚拟机监控工具

* feat(mcp-server): 增加虚拟机操作工具,包括启动、重启、停止、重置密码和删除

* optimize(mcp-server): 增加工具函数接口定义

* feat(mcp-server): 增加工具函数所使用的结构体模型

* feat(mcp-server): 新增工具统一注册中心

* feat(mcp-server): 增加mcp服务中心

* feat(mcp-server): 增加统一配置中心

* feat(mcp-server): 增加服务启动主入口

* doc(mcp-server): 增加mcp-server相关的说明,安装和使用文档

* fix(mcp-server): 更正文档位置以及补充图片

* refactor(mcp-server): 修正了service以及配置解析的逻辑

* refactor(mcp-server): 将日志打印相关代码改成使用log

* fix(mcp-server): 修复依赖导入以及缺失等问题

* refactor(mcp-server): 复用common_options

* fix: 修复配置结构体字段重复的问题

* doc(mcp-server): 更正文档错误

* style(mcp-server): 格式化import顺序

* style(mcp-server): 格式化import导入

* style(mcp-server): 规范import语句

* doc(mcp-server): 给目录生成doc文件

---------

Co-authored-by: 屈轩 <qu_xuan@icloud.com>
2025-09-22 10:32:21 +08:00
..

MCP Server

MCP Server 是 Cloudpods 多云管理平台的核心组件之一,负责处理多云资源的统一管理和调度。

目录结构

├── adapters/          # 适配器模块用于对接不同云平台的API
├── config/            # 配置模块,处理服务配置和加载
├── models/            # 数据模型,定义云资源的数据结构
├── registry/          # 注册中心,管理可用的工具和服务
├── server/            # 服务核心,包含服务启动和初始化逻辑
└── tools/             # 工具模块,实现各种云资源管理功能

架构设计

MCP Server 采用模块化设计,主要包括以下几个核心模块:

  1. 适配器模块 (Adapters): 负责与不同云平台的API进行交互实现资源的统一管理。
  2. 配置模块 (Config): 处理服务的配置加载和管理,支持多种配置方式。
  3. 数据模型 (Models): 定义云资源的数据结构,为其他模块提供统一的数据访问接口。
  4. 注册中心 (Registry): 管理可用的工具和服务,支持动态注册和发现。
  5. 服务核心 (Server): 负责服务的启动、初始化和生命周期管理。
  6. 工具模块 (Tools): 实现各种云资源管理功能如VPC、网络、镜像等。

运行机制

  1. 服务启动时,首先加载配置文件并初始化各个模块。
  2. 适配器模块根据配置连接到相应的云平台。
  3. 注册中心注册所有可用的工具和服务。
  4. 服务核心启动HTTP服务器监听客户端请求。
  5. 客户端通过API调用相应的工具来管理云资源。

主要功能

  • 统一管理多云资源VPC、网络、镜像、主机等
  • 支持多种云平台AWS、Azure、阿里云等
  • 提供RESTful API接口
  • 支持资源的查询、创建、更新和删除操作

配置说明

配置文件位于 options/options.go,主要包含以下配置项:

  • ServerConfig: 服务配置,如监听地址、端口等
  • MCPConfig: MCP相关配置
  • ExternalConfig: 外部服务配置

开发指南

  1. 实现新的云资源管理功能时,需要在 tools/ 目录下创建相应的工具文件。
  2. 工具需要实现 Tool 接口,包括 GetToolHandleGetName 方法。
  3. 数据模型定义在 models/ 目录下需要根据云平台API文档进行定义。
  4. 适配器实现在 adapters/ 目录下用于与云平台API进行交互。

贡献

欢迎提交Issue和Pull Request来改进MCP Server。