Files
deploy.stack/mcp_server-py/README.md
cnphpbb 79cdb45e20 feat: 添加MCP服务器初始实现及相关文件
添加MCP服务器的初始实现,包括:
- 主程序文件mcp_server.py
- 配置文件config.toml
- 依赖文件requirements.txt
- 安装指南INSTALL.md
- 使用说明README.md

服务器功能包括:
- 接收客户端请求
- 调用OpenAI API进行分析
- 提供健康检查接口
- 支持与disk_inspection.py脚本对接
2025-09-10 22:15:10 +08:00

214 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MCP服务器 - OpenAPI对接版
## 简介
这是一个对接OpenAPI的MCPModel 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
```