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)
许可证
请参阅许可证中的许可证
