# 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` 接口，包括 `GetTool`、`Handle` 和 `GetName` 方法。
3. 数据模型定义在 `models/` 目录下，需要根据云平台API文档进行定义。
4. 适配器实现在 `adapters/` 目录下，用于与云平台API进行交互。

## 贡献

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