红鱼MCP服务器
模型上下文协议(MCP)服务器,使人工智能代理和LLM能够通过安全的API控制Redfish-enabled硬件和模拟器。使用FastMCP构建,以增强开发体验和结构化输出。
特性
此MCP服务器提供以下工具:
- 动力操作:控制系统电源状态(开、关、重启等)
- 系统清单:获取详细的硬件信息和规格
- 事件日志:检索和管理系统事件日志(系统、安全、管理器)
- 健康监测:监控系统健康状况、状态和传感器读数
- 用户帐户管理:管理BMC用户帐户和权限
- 传感器监测:读取温度、风扇、功率和电压传感器
- 配置管理:检查连接状态并从环境中自动配置
建筑
- FastMCP框架:使用FastMCP构建,以获得更好的开发体验
- 结构化输出:使用Pydantic模型进行类型安全的结构化响应
- 环境配置:从环境变量自动配置
- 安全认证:使用可配置SSL的用户名/密码身份验证
- 开发工具:与兼容
mcp dev模式和MCP检查器
安全
与Redfish端点的所有通信都使用用户名/密码凭据进行身份验证。可以配置SSL验证(默认情况下,对于BMC中常见的自签名证书禁用)。
安装
此项目使用 uv 对于依赖关系管理:
# Install development dependencies
uv sync用法
环境变量配置(推荐)
配置Redfish MCP服务器的最简单方法是使用环境变量。如果提供以下选项,服务器将在启动时自动连接:
export REDFISH_HOST="https://192.168.1.100"
export REDFISH_USERNAME="admin"
export REDFISH_PASSWORD="password123"
export REDFISH_VERIFY_SSL="false" # Optional, defaults to false
export REDFISH_TIMEOUT="30" # Optional, defaults to 30 secondsMCP客户端配置
使用环境变量在MCP客户端中配置服务器:
克劳德桌面
增添 ~/.config/claude-desktop/claude_desktop_config.json:
{
"mcpServers": {
"redfish": {
"command": "uv",
"args": ["run", "redfish-mcp-server"],
"cwd": "/path/to/your/redfish-mcp-server",
"env": {
"REDFISH_HOST": "https://192.168.1.100",
"REDFISH_USERNAME": "admin",
"REDFISH_PASSWORD": "password123",
"REDFISH_VERIFY_SSL": "false"
}
}
}
}LM工作室
添加到LM Studio配置(mcp.json):
{
"mcpServers": {
"redfish": {
"command": "uv",
"args": [
"--directory",
"C:\\Users\\MyUser\\repos\\redfish-mcp-server",
"run",
"mcp",
"run",
"main.py"
],
"env": {
"REDFISH_HOST": "http://localhost:8000",
"REDFISH_USERNAME": "admin",
"REDFISH_PASSWORD": "password123"
}
}
}
}如果在Windows下使用WSL2开发,服务器在WSL中运行,您可能需要设置 REDFISH_HOST 发送到WSL IP地址或使用 localhost 如果从Windows访问:
{
"mcpServers": {
"redfish": {
"command": "bash",
"args": [
"-c",
"REDFISH_HOST=http://localhost:8000 REDFISH_USERNAME=admin REDFISH_PASSWORD=password123 /home/carlosedp/.local/bin/uv --directory /home/carlosedp/repos/redfish-mcp-server run mcp run main.py"
]
}
}
}手动配置
如果您不想使用环境变量,可以使用工具配置连接:
- 使用
redfish_get_config_status工具 检查当前配置状态
- 使用
redfish_configure工具 手动设置连接参数:
- 主机URL(例如。, https://192.168.1.100) - BMC身份验证的用户名和密码 - SSL验证设置
- 使用可用的工具 与支持Redfish的硬件交互:
可用工具
redfish_get_config_status-检查当前配置状态和连接redfish_configure-配置与Redfish端点的连接(如果不使用env变量)redfish_get_system_info-获取系统信息和库存redfish_power_control-控制系统电源状态redfish_get_event_logs-检索系统事件日志redfish_get_health_status-获取系统运行状况和状态redfish_manage_users-管理用户帐户redfish_get_sensors-获取传感器读数redfish_clear_logs-清除系统事件日志
示例用法
# Check current configuration status
await redfish_get_config_status({})
# If not configured via environment variables, configure manually
await redfish_configure({
"host": "https://192.168.1.100",
"username": "admin",
"password": "password123",
"verify_ssl": false
})
# Get system information
await redfish_get_system_info({})
# Power on the system
await redfish_power_control({
"action": "On"
})
# Check system health
await redfish_get_health_status({})发展
FastMCP开发特性
此服务器使用FastMCP构建,提供增强的开发体验:
- 开发模式:使用
mcp dev用于开发过程中的热重新加载 - MCP检查员:兼容MCP检验员进行调试和测试
- 结构化输出:所有响应都使用Pydantic模型进行类型安全
- 自动生成的模式:工具根据类型提示自动生成JSON模式
运行服务器进行开发
# Set environment variables for automatic configuration
export REDFISH_HOST="https://192.168.1.100"
export REDFISH_USERNAME="admin"
export REDFISH_PASSWORD="password123"
export REDFISH_VERIFY_SSL="false"
# Run in development mode with the inspector
uv run mcp dev main.py服务器需要Redfish硬件或模拟器才能连接。请确保Redfish端点可访问且凭据正确。
解压缩它们,安装依赖项并运行原型服务器:
# Create a venv and install dependencies
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
pip install -r requirements.txt
# Run the mockup server
python redfishMockupServer.py --short-form -D public-rackmount1`