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