Files
deploy.stack/mcp_server-py/README.md

214 lines
4.7 KiB
Markdown
Raw Normal View History

# 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
```