forked from DevOps/deploy.stack
添加MCP服务器的初始实现,包括: - 主程序文件mcp_server.py - 配置文件config.toml - 依赖文件requirements.txt - 安装指南INSTALL.md - 使用说明README.md 服务器功能包括: - 接收客户端请求 - 调用OpenAI API进行分析 - 提供健康检查接口 - 支持与disk_inspection.py脚本对接
MCP服务器 - OpenAPI对接版
简介
这是一个对接OpenAPI的MCP(Model Context Protocol)服务器实现,用于接收来自客户端的请求并调用OpenAI API进行处理和分析。本服务器特别为与disk_inspection.py硬盘巡检脚本配合使用而设计,可以自动分析硬盘健康状态报告。
目录结构
mcp_server/
├── config.toml # 配置文件
├── mcp_server.py # 主程序文件
└── README.md # 说明文档
安装依赖
在运行MCP服务器之前,需要安装必要的Python依赖包:
pip install flask openai
配置说明
配置文件 config.toml
配置文件使用TOML格式,包含以下几个主要部分:
-
服务器配置
[server] host = "0.0.0.0" # 监听地址,0.0.0.0表示所有网卡 port = 8080 # 监听端口 debug = false # 是否开启调试模式 -
OpenAI API配置
[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 # 温度参数 -
日志配置
[logging] level = "info" # 日志级别:debug, info, warn, error format = "text" # 日志格式:text, json file_path = "/var/log/mcp_server.log" # 日志文件路径 -
安全配置
[security] enable_auth = false # 是否启用认证 # 如果启用认证,需配置以下参数 # auth_token = "your-auth-token" # 认证令牌
运行MCP服务器
1. 修改配置文件
首先,编辑config.toml文件,设置您的OpenAI API密钥:
vim /home/geng/mydate/deploy.stack/mcp_server/config.toml
找到[openai]部分,将api_key替换为您的实际API密钥。
2. 启动服务器
使用Python直接运行服务器:
cd /home/geng/mydate/deploy.stack/mcp_server
python mcp_server.py
或者,您可以将其作为后台服务运行:
nohup python mcp_server.py > /dev/null 2>&1 &
与 disk_inspection.py 的对接
已修改的disk_inspection.py脚本可以直接向MCP服务器提交硬盘巡检报告:
1. 为disk_inspection.py安装依赖
pip install requests
2. 运行硬盘巡检脚本
python /home/geng/mydate/deploy.stack/crontab/disk_inspection.py
脚本会自动执行以下操作:
- 检查各个控制器的硬盘状态
- 生成Markdown格式的报告
- 将报告通过HTTP请求发送到MCP服务器
- 接收并保存AI分析结果
手动提交数据(可选)
如果需要手动提交数据,可以使用curl命令:
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格式):
{
"type": "disk_inspection_report",
"timestamp": "2023-08-15T12:34:56.789012",
"content": "# 硬盘巡检报告\n..."
}
响应(JSON格式):
{
"status": "success",
"result": {
"analysis": "分析结果...",
"processed_at": "2023-08-15T12:35:00.123456",
"original_type": "disk_inspection_report"
}
}
健康检查接口
GET /health
响应(JSON格式):
{
"status": "healthy"
}
故障排除
-
API密钥错误
- 确保
config.toml中的OpenAI API密钥正确 - 检查API密钥是否有足够的余额和权限
- 确保
-
连接失败
- 确保MCP服务器正在运行
- 检查防火墙设置,确保8080端口已开放
- 验证
disk_inspection.py中的MCP服务器URL是否正确
-
权限问题
- 确保运行服务器的用户有权限写入日志文件
- 确保
disk_inspection.py以root权限运行
定期运行设置
您可以将MCP服务器添加到系统服务中,确保其持续运行:
-
创建系统服务文件:
sudo vim /etc/systemd/system/mcp_server.service -
添加以下内容(根据实际路径修改):
[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 -
启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable mcp_server sudo systemctl start mcp_server -
检查服务状态:
sudo systemctl status mcp_server