Redfish兼容BMC管理工具

mcp-redfish是一个基于Model Context Protocol (MCP)的服务器,为AI助手提供通过DMTF Redfish REST API访问服务器硬件监控和控制的功能。

  • by fredriksknese
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 fredriksknese/mcp-redfish

使用说明

mcp红鱼

A. 模型上下文协议(MCP) 服务器用于 与Redfish兼容的BMC管理,通过DMTF Redfish REST API为人工智能助手提供对服务器硬件监控的访问。

支持的硬件

供应商 BMC/接口
Dell PowerEdge iDRAC(iDRAC8、iDRAC9、iDRAC10)
HPE ProLiant iLO(iLO4、iLO5、iLO6)
联想 ThinkSystem XClarity控制器(XCC)
Supermicro BMC(IPMI/Redfish)
任何供应商 DMTF Redfish 1.x兼容BMC

特性

20工具 分为六类:

系统

工具 说明
list_systems 列出所有计算机系统,包括名称、型号、电源状态、运行状况、内存和CPU摘要
get_system 获取完整的系统详细信息,包括BiosVersion、HostName、IndicatorLED和Boot设置
set_power_state 打开/关闭/重新启动系统(打开、强制关闭、GracefulShutdown、Graceful Restart、强制重新启动、Nmi)
get_bios_settings 获取当前BIOS属性和配置

底盘

工具 说明
list_chassis 列出机箱类型、制造商、型号、序列号和状态
get_chassis 获取完整的机箱详细信息
get_thermal 通过阈值和健康状态获取温度和风扇速度
get_power 获取电源状态和电流消耗(瓦特)

经理(BMC)

工具 说明
list_managers 列出BMC管理器及其管理器类型、固件版本和状态
get_manager 获取完整的经理详细信息
reset_manager 优雅地重新启动BMC
get_network_protocol 获取BMC协议设置(IPMI、SSH、启用/禁用HTTPS、端口)

存储

工具 说明
list_storage 列出存储控制器,包括型号、固件、支持的RAID类型和运行状况
list_drives 列出具有容量、协议(SAS/SATA/NMe)、MediaType(SSD/HDD)和运行状况的物理驱动器

事件日志

工具 说明
list_event_log 获取包含严重性、消息和时间戳的系统事件日志条目。自动发现日志路径。
clear_event_log 清除事件日志(不可逆)

固件

工具 说明
get_firmware_inventory 列出所有固件版本(BIOS、BMC、NIC、存储控制器、PSU等)

安装

git clone git@github.com:fredriksknese/mcp-redfish.git
cd mcp-redfish
npm install
npm run build

配置

服务器是通过环境变量配置的:

变量 必填 默认 描述
REDFISH_HOST 是 -- BMC主机名或IP地址
REDFISH_USERNAME 没有 root BMC用户名
REDFISH_PASSWORD 是 -- BMC密码
REDFISH_ALLOW_SELF_SIGNED 没有 true 接受自签名TLS证书(BMC正常)

默认情况下,身份验证使用Redfish会话令牌(POST到SessionService,存储X-Auth-Token)。如果会话创建失败,则返回HTTP基本身份验证。

使用Claude Desktop

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "redfish": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-redfish/dist/index.js"],
      "env": {
        "REDFISH_HOST": "192.168.1.100",
        "REDFISH_USERNAME": "root",
        "REDFISH_PASSWORD": "your-bmc-password"
      }
    }
  }
}

使用Claude代码

claude mcp add redfish -- node /absolute/path/to/mcp-redfish/dist/index.js

在MCP设置中设置所需的环境变量。

示例提示

连接后,您可以向您的AI助手询问以下问题:

  • “所有系统的当前电力状态和健康状况如何?”
  • “显示所有温度传感器,并标记任何高于正常阈值的温度传感器”
  • “安装了哪些固件版本,哪些组件可以更新?”
  • “检查系统事件日志,查看过去24小时内是否有任何严重错误”
  • 列出所有驱动器,包括其容量、类型(SSD/HDD)和运行状况
  • “目前的功耗是多少瓦?”
  • “显示BMC网络协议设置--是否启用了IPMI?”
  • “优雅地重新启动此服务器”
  • “清除系统事件日志”
  • “BIOS版本和当前启动顺序是什么?”

发展

npm run dev      # Run with tsx (no build required)
npm run build    # Compile TypeScript to dist/
npm start        # Run compiled output

建筑

src/
├── index.ts              # Entry point — creates MCP server + STDIO transport
├── redfish-client.ts     # HTTP client with session/basic auth and @odata.id expansion
└── tools/
    ├── systems.ts        # Computer system management (4 tools)
    ├── chassis.ts        # Chassis, thermal, and power (4 tools)
    ├── managers.ts       # BMC manager management (4 tools)
    ├── storage.ts        # Storage controllers and drives (2 tools)
    ├── eventlog.ts       # Event log read and clear (2 tools)
    └── firmware.ts       # Firmware inventory (1 tool)

需求

  • Node.js 18+
  • 符合DMTF Redfish 1.x标准的BMC(戴尔iDRAC、HPE iLO、联想XCC、Supermicro BMC或任何符合标准的BMC)

许可证

请参阅许可证中的许可证