服务器状态

yuqiang01/HOST-STATUS-MCP
0 Stars 46 次浏览 小懵 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP 服务器资源使用统计

概述

此MCP(模型上下文协议)服务提供了一个标准化接口,用于查询云平台中不同区域的KVM和裸金属服务器(BMS)的资源使用统计信息。该服务从ManageOne平台获取数据,并返回包含详细服务器利用率指标的结构化JSON响应。

功能

  • 📊 KVM 服务器统计:按区域统计总KVM服务器数量、运行中的KVM服务器数量和已停止的KVM服务器数量
  • 🖥️ BMS 服务器统计:按区域统计总BMS服务器数量、运行中的BMS服务器数量和已停止的BMS服务器数量
  • 🌐 区域支持:AZ1和AZ3区域
  • 📦 符合MCP标准:遵循模型上下文协议标准以实现集成
  • 🔒 安全:与ManageOne平台使用基于令牌的身份验证

要求

  • Python 3.7+
  • 所需包:

bash
pip install fastmcp requests urllib3

配置

在运行之前,请更新脚本中的配置参数:

python
domain = f"oc.cd-xxxxx.caacsricloud.com" # OC平台域名
username = f"xxx_api_user" # OC用户名
password = f"YOUR_PASSWORD_HERE" # OC密码(请替换为实际密码)

⚠️ 安全提示

  • 切勿将密码提交到版本控制系统
  • 在生产环境中,用环境变量替换硬编码密码

python
password = os.getenv("OC_PASSWORD", "")

安装与设置

  1. 安装依赖项:

bash
pip install fastmcp requests urllib3

  1. 更新配置(替换YOUR_PASSWORD_HERE):

python
password = "your_actual_password_here"

  1. 运行MCP服务:

bash
python mcp_tool.py

服务端点

服务运行于:

plain
http://0.0.0.0:8000/mcp

API 使用

请求

http
GET /mcp

响应

返回一个包含12个键值对的JSON对象:

json
{
"az1_kvm_total": 100,
"az1_kvm_running": 85,
"az1_kvm_stop": 15,
"az3_kvm_total": 150,
"az3_kvm_running": 120,
"az3_kvm_stop": 30,
"az1_bms_total": 50,
"az1_bms_running": 45,
"az1_bms_stop": 5,
"az3_bms_total": 75,
"az3_bms_running": 65,
"az3_bms_stop": 10
}

响应说明

描述 示例
az1_kvm_total AZ1中的总KVM服务器数量 100
az1_kvm_running AZ1中正在运行的KVM服务器数量 85
az1_kvm_stop AZ1中已停止/空闲的KVM服务器数量 15
az3_kvm_total AZ3中的总KVM服务器数量 150
az3_kvm_running AZ3中正在运行的KVM服务器数量 120
az3_kvm_stop AZ3中已停止/空闲的KVM服务器数量 30
az1_bms_total AZ1中的总BMS服务器数量 50
az1_bms_running AZ1中正在运行的BMS服务器数量 45
az1_bms_stop AZ1中已停止/空闲的BMS服务器数量 5
az3_bms_total AZ3中的总BMS服务器数量 75
az3_bms_running AZ3中正在运行的BMS服务器数量 65
az3_bms_stop AZ3中已停止/空闲的BMS服务器数量 10

示例用法

bash

使用curl获取服务器统计信息

curl http://localhost:8000/mcp

安全注意事项

  1. SSL验证
  • 代码中禁用了SSL验证(verify=False),以便于使用
  • 生产环境:启用SSL验证并使用有效证书
  1. 身份验证
  • 与ManageOne平台使用基于令牌的身份验证
  • 凭证存储在代码中(不推荐用于生产环境)
  • 建议:使用环境变量存储凭证

故障排除

| 问题 | 解决方案 || ------------------------------- | ---------------------------------------------------------- |
| Do不成功获取令牌 | 验证OC域、用户名和密码 |
| 服务器数量为空 | 检查ManageOne API访问权限 |
| SSL警告 | 仅在开发环境中禁用 (urllib3.disable_warnings()) |
| 连接被拒绝 | 确认OC平台可访问且服务正在运行 |

开发说明

  • 脚本使用ManageOneLogin类处理身份验证和API调用
  • KVM服务器基于allocatedVcpuCores进行计数(0 = 已停止)
  • BMS服务器基于vmId的存在与否进行计数(不存在 = 已停止)
  • 页面大小设置为1000,以便在单次请求中检索所有资源

许可证

此项目根据MIT许可证发布 - 详情请参阅LICENSE文件。


注意: 此服务需要访问ManageOne平台的北向API。确保配置的用户具有适当的权限以访问:

  • /rest/tenant-resource/v1/instances/SYS_PhysicalHost (KVM)
  • /rest/tenant-resource/v1/instances/CLOUD_BMS_NODE (BMS)

请注意,翻译中的“Do不成功获取令牌”可能不是最自然的中文表达方式。更自然的表达可能是“无法成功获取令牌”。如果可以接受这种调整的话,请告知我以便进一步修改。

相关 MCP 服务