Redfish MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
> [!WARNING]
> This repository has moved from nokia/mcp-redfish to nokia-steward/mcp-redfish. New releases and versioned container images are published only as ghcr.io/nokia-steward/mcp-redfish.
Overview
The Redfish MCP Server is a **natural language interface** designed for agentic applications to efficiently manage infrastructure that exposes Redfish API for this purpose. It integrates seamlessly with **MCP (Model Content Protocol) clients**, enabling AI-driven workflows to interact with structured and unstructured data of the infrastructure. Using this MCP Server, you can ask questions like:
- "List the available infrastructure components"
- "Get the data of ethernet interfaces of the infrastructure component X"
Features
- **Natural Language Queries**: Enables AI agents to query the data of infrastructure components using natural language.
- **Seamless MCP Integration**: Works with any **MCP client** for smooth communication.
- **Full Redfish Support**: It wraps the Python Redfish library
Tools
This MCP Server provides tools to manage the data of infrastructure via the Redfish API.
- list_servers to query the Redfish API endpoints that are configured for the MCP Server.
- list_discovered_servers to review Redfish endpoints discovered via SSDP. Discovered endpoints are candidates only and are not managed until explicitly added to REDFISH_HOSTS.
- get_resource_data to read the data of a specific resource (e.g. System, EthernetInterface, etc.)
Quick Start
Installation
Follow these instructions to install the server.
Configuration
The Redfish MCP Server uses environment variables for configuration. The server includes comprehensive validation to ensure all settings are properly configured.
Environment Variables
| Name | Description | Default Value | Required |
|-------------------------------|-----------------------------------------------------------|----------------------------|----------|
| REDFISH_HOSTS | JSON array of Redfish endpoint configurations | [{"address":"127.0.0.1"}] | Yes |
| REDFISH_PORT | Default port for Redfish API (used when not specified per-host) | 443 | No |
| REDFISH_AUTH_METHOD | Authentication method: basic or session | session | No |
| REDFISH_USERNAME | Default username for authentication | "" | No |
| REDFISH_PASSWORD | Default password for authentication | "" | No |
| REDFISH_SERVER_CA_CERT | Path to CA certificate for server verification | None | No |
| REDFISH_TLS_VERIFY | Verify Redfish server TLS certificates | true | No |
| REDFISH_DISCOVERY_ENABLED | Enable SSDP discovery of review-only endpoint candidates | false | No |
| REDFISH_DISCOVERY_INTERVAL | Discovery interval in seconds | 30 | No |
| MCP_TRANSPORT | Transport method: stdio, sse, or streamable-http | stdio | No |
| MCP_HTTP_AUTH | Require MCP client authentication on HTTP transports | true | No |
| MCP_ALLOW_REMOTE_SSE | Warned break-glass setting for non-loopback SSE | false | No |
| MCP_AUTH_MODE | none, token, remote_oauth, oauth_proxy, or oidc_proxy | none | HTTP if MCP_HTTP_AUTH=true |
| MCP_AUTH_TOKEN_LEEWAY_SECONDS | Clock skew for JWT nbf and iat validation | 60 | No |
| MCP_AUTH_INTROSPECTION_ISSUER | Required issuer in an active introspection response | unset | Introspection |
| MCP_AUTH_INTROSPECTION_AUDIENCE | Required MCP resource audience in an introspection response | unset | Introspection |
| MCP_AUTH_INTROSPECTION_ALLOW_PRIVATE | Explicitly trust a private IdP HTTPS endpoint and internal DNS/routing | false | No |
| MCP_AUTH_JWKS_ALLOW_PRIVATE | Explicitly trust a private/loopback JWKS URL (lab IdPs such as local Dex) | false | No |
| FASTMCP_HOST | HTTP bind address. Unset/empty → this project binds 127.0.0.1 | (unset → 127.0.0.1) | No |
| FASTMCP_HTTP_ALLOWED_HOSTS | Exact client-facing hosts; required for off-loopback Streamable HTTP | FastMCP default | Non-loopback Streamable HTTP |
| MCP_TLS_CERTFILE | PEM server certificate for in-process HTTPS | unset | With key, for HTTP TLS |
| MCP_TLS_KEYFILE | PEM private key for in-process HTTPS | unset | With cert, for HTTP TLS |
| MCP_TLS_TERMINATED | Assert TLS is terminated **in front of** this MCP Server | false | HTTP + auth + non-loopback without certs |
| MCP_REDFISH_LOG_LEVEL | Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL | INFO | No |
REDFISH_HOSTS Configuration
The REDFISH_HOSTS environment variable accepts a JSON array of endpoint configurations. Each endpoint can have the following properties: