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

服务器功能包括接收请求、调用OpenAI API进行分析、日志记录等
2025-09-10 20:49:25 +08:00
..

MCP服务器 - OpenAPI对接版

简介

这是一个对接OpenAPI的MCPModel 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格式包含以下几个主要部分

  1. 服务器配置

    [server]
    host = "0.0.0.0"  # 监听地址0.0.0.0表示所有网卡
    port = 8080       # 监听端口
    debug = false     # 是否开启调试模式
    
  2. 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              # 温度参数
    
  3. 日志配置

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

    [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"
}

故障排除

  1. API密钥错误

    • 确保config.toml中的OpenAI API密钥正确
    • 检查API密钥是否有足够的余额和权限
  2. 连接失败

    • 确保MCP服务器正在运行
    • 检查防火墙设置确保8080端口已开放
    • 验证disk_inspection.py中的MCP服务器URL是否正确
  3. 权限问题

    • 确保运行服务器的用户有权限写入日志文件
    • 确保disk_inspection.py以root权限运行

定期运行设置

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

  1. 创建系统服务文件:

    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. 启用并启动服务:

    sudo systemctl daemon-reload
    sudo systemctl enable mcp_server
    sudo systemctl start mcp_server
    
  4. 检查服务状态:

    sudo systemctl status mcp_server