# MCP服务器 - OpenAPI对接版

## 简介

这是一个对接OpenAPI的MCP（Model Context Protocol）服务器实现，用于接收来自客户端的请求并调用OpenAI API进行处理和分析。本服务器特别为与`disk_inspection.py`硬盘巡检脚本配合使用而设计，可以自动分析硬盘健康状态报告。

## 目录结构

```
mcp_server/
├── config.toml      # 配置文件
├── mcp_server.py    # 主程序文件
└── README.md        # 说明文档
```

## 安装依赖

在运行MCP服务器之前，需要安装必要的Python依赖包：

```bash
pip install flask openai
```

## 配置说明

### 配置文件 `config.toml`

配置文件使用TOML格式，包含以下几个主要部分：

1. **服务器配置**
   ```toml
   [server]
   host = "0.0.0.0"  # 监听地址，0.0.0.0表示所有网卡
   port = 8080       # 监听端口
   debug = false     # 是否开启调试模式
   ```

2. **OpenAI API配置**
   ```toml
   [openai]
   api_key = "your-api-key-here"  # 请替换为您的OpenAI API密钥
   model = "gpt-3.5-turbo"        # 使用的模型
   base_url = "https://api.openai.com/v1"  # API基础URL
   max_tokens = 2048              # 最大token数
   temperature = 0.7              # 温度参数
   ```

3. **日志配置**
   ```toml
   [logging]
   level = "info"        # 日志级别：debug, info, warn, error
   format = "text"       # 日志格式：text, json
   file_path = "/var/log/mcp_server.log"  # 日志文件路径
   ```

4. **安全配置**
   ```toml
   [security]
   enable_auth = false  # 是否启用认证
   # 如果启用认证，需配置以下参数
   # auth_token = "your-auth-token"  # 认证令牌
   ```

## 运行MCP服务器

### 1. 修改配置文件

首先，编辑`config.toml`文件，设置您的OpenAI API密钥：

```bash
vim /home/geng/mydate/deploy.stack/mcp_server/config.toml
```

找到`[openai]`部分，将`api_key`替换为您的实际API密钥。

### 2. 启动服务器

使用Python直接运行服务器：

```bash
cd /home/geng/mydate/deploy.stack/mcp_server
python mcp_server.py
```

或者，您可以将其作为后台服务运行：

```bash
nohup python mcp_server.py > /dev/null 2>&1 &
```

## 与 `disk_inspection.py` 的对接

已修改的`disk_inspection.py`脚本可以直接向MCP服务器提交硬盘巡检报告：

### 1. 为`disk_inspection.py`安装依赖

```bash
pip install requests
```

### 2. 运行硬盘巡检脚本

```bash
python /home/geng/mydate/deploy.stack/crontab/disk_inspection.py
```

脚本会自动执行以下操作：
- 检查各个控制器的硬盘状态
- 生成Markdown格式的报告
- 将报告通过HTTP请求发送到MCP服务器
- 接收并保存AI分析结果

### 手动提交数据（可选）

如果需要手动提交数据，可以使用curl命令：

```bash
curl -X POST -H 'Content-Type: application/json' -d @/root/mcp_data_日期.json http://localhost:8080/mcp/v1/submit
```

## API接口说明

### MCP提交接口

```
POST /mcp/v1/submit
```

**请求体（JSON格式）**:
```json
{
  "type": "disk_inspection_report",
  "timestamp": "2023-08-15T12:34:56.789012",
  "content": "# 硬盘巡检报告\n..."
}
```

**响应（JSON格式）**:
```json
{
  "status": "success",
  "result": {
    "analysis": "分析结果...",
    "processed_at": "2023-08-15T12:35:00.123456",
    "original_type": "disk_inspection_report"
  }
}
```

### 健康检查接口

```
GET /health
```

**响应（JSON格式）**:
```json
{
  "status": "healthy"
}
```

## 故障排除

1. **API密钥错误**
   - 确保`config.toml`中的OpenAI API密钥正确
   - 检查API密钥是否有足够的余额和权限

2. **连接失败**
   - 确保MCP服务器正在运行
   - 检查防火墙设置，确保8080端口已开放
   - 验证`disk_inspection.py`中的MCP服务器URL是否正确

3. **权限问题**
   - 确保运行服务器的用户有权限写入日志文件
   - 确保`disk_inspection.py`以root权限运行

## 定期运行设置

您可以将MCP服务器添加到系统服务中，确保其持续运行：

1. 创建系统服务文件：
   ```bash
   sudo vim /etc/systemd/system/mcp_server.service
   ```

2. 添加以下内容（根据实际路径修改）：
   ```
   [Unit]
   Description=MCP Server for OpenAPI Integration
   After=network.target
   
   [Service]
   Type=simple
   User=root
   WorkingDirectory=/home/geng/mydate/deploy.stack/mcp_server
   ExecStart=/usr/bin/python /home/geng/mydate/deploy.stack/mcp_server/mcp_server.py
   Restart=on-failure
   
   [Install]
   WantedBy=multi-user.target
   ```

3. 启用并启动服务：
   ```bash
   sudo systemctl daemon-reload
   sudo systemctl enable mcp_server
   sudo systemctl start mcp_server
   ```

4. 检查服务状态：
   ```bash
   sudo systemctl status mcp_server
   ```