Skip to main content
Glama
carlosedp

Redfish MCP Server

by carlosedp

Redfish MCP Server

A Model Context Protocol (MCP) server that enables AI agents and LLMs to control Redfish-enabled hardware and simulators through a secure API. Built with FastMCP for enhanced development experience and structured output.

Features

This MCP server provides tools for:

  • Power Operations: Control system power states (On, Off, Restart, etc.)

  • System Inventory: Get detailed hardware information and specifications

  • Event Logs: Retrieve and manage system event logs (System, Security, Manager)

  • Health Monitoring: Monitor system health, status, and sensor readings

  • User Account Management: Manage BMC user accounts and permissions

  • Sensor Monitoring: Read temperature, fan, power, and voltage sensors

  • Configuration Management: Check connection status and auto-configure from environment

Related MCP server: Redfish MCP Server

Architecture

  • FastMCP Framework: Built with FastMCP for better development experience

  • Structured Output: Uses Pydantic models for type-safe, structured responses

  • Environment Configuration: Auto-configures from environment variables

  • Secure Authentication: Username/password authentication with configurable SSL

  • Development Tools: Compatible with mcp dev mode and MCP inspector

Security

All communications with Redfish endpoints are authenticated using username/password credentials. SSL verification can be configured (disabled by default for self-signed certificates common in BMCs).

Installation

This project uses uv for dependency management:

# Install development dependencies
uv sync

Usage

The simplest way to configure the Redfish MCP server is using environment variables. The server will automatically connect on startup if these are provided:

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 seconds

MCP Client Configuration

Configure the server in your MCP client with environment variables:

Claude Desktop

Add to ~/.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 Studio

Add to your LM Studio configuration (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"
        }
    }
  }
}

If developing under Windows with WSL2 where the server is running in WSL, you may need to set the REDFISH_HOST to the WSL IP address or use localhost if accessing from 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"
        ]
      }
  }
}

Manual Configuration

If you prefer not to use environment variables, you can use the tools to configure the connection:

  1. Use the redfish_get_config_status tool to check current configuration status

  2. Use the redfish_configure tool to set up connection parameters manually:

    • Host URL (e.g., https://192.168.1.100)

    • Username and password for BMC authentication

    • SSL verification settings

  3. Use the available tools to interact with your Redfish-enabled hardware:

Available Tools

  • redfish_get_config_status - Check current configuration status and connection

  • redfish_configure - Configure connection to Redfish endpoint (if not using env vars)

  • redfish_get_system_info - Get system information and inventory

  • redfish_power_control - Control system power state

  • redfish_get_event_logs - Retrieve system event logs

  • redfish_get_health_status - Get system health and status

  • redfish_manage_users - Manage user accounts

  • redfish_get_sensors - Get sensor readings

  • redfish_clear_logs - Clear system event logs

Example Usage

# 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({})

Development

FastMCP Development Features

This server is built with FastMCP, providing enhanced development experience:

  • Development Mode: Use mcp dev for hot reloading during development

  • MCP Inspector: Compatible with MCP inspector for debugging and testing

  • Structured Output: All responses use Pydantic models for type safety

  • Auto-generated Schemas: Tools automatically generate JSON schemas from type hints

Running the Server for Development

# 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

The server requires a Redfish hardware or simulator to connect to. Ensure the Redfish endpoint is accessible and the credentials are correct.

You can use Redfish-Mockup-Server for testing with simulated Redfish endpoints. Get the mockup data from the DMTF Redfish Mockup bundle.

Unpack them, install dependencies and run the mockup server:

# 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`

Available Tools

15 tools
redfish_clear_logsC

Clear system event logs

ParametersJSON Schema
NameRequiredDescriptionDefault
log_typeNoSystem

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits itself. It indicates the destructive action ('clear') but omits critical details: that logs are permanently deleted, whether confirmation is required, scope (all systems vs. specific type), and potential authorization requirements. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence with no redundancy or filler. It is appropriately concise for a simple tool, earning the highest score for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool's apparent simplicity, the description lacks essential context for a destructive operation: irreversibility, affected scope, return values, and any side effects. With no annotations and no output schema, the description alone is insufficient for an agent to safely infer the full behavior and consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the description does not explain the 'log_type' parameter beyond implying 'system' logs. It doesn't enumerate valid values, clarify the default behavior, or indicate whether other types like 'Manager' or 'Audit' are supported. The description adds only marginal meaning, leaving the parameter semantically ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Clear') and resource ('system event logs'), which is specific and distinguishes it from sibling tools that mostly retrieve or manage data. However, it does not clarify whether 'system event logs' refers to a specific log type (only one of many possible log_type values) or all logs, leaving slight ambiguity given the existence of manager logs and audit logs among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context. For example, it doesn't mention when clearing is appropriate (e.g., after reading logs) or that viewing logs should be done with redfish_get_manager_logs or redfish_get_audit_logs. The one-sentence description gives no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_configureC

Configure Redfish connection parameters and test the connection

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
passwordYes
usernameYes
verify_sslNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool configures and tests, but with no annotations provided, it carries the full burden of explaining behavioral traits. It omits critical details such as whether the configuration persists, what the connection test entails (e.g., success criteria), potential side effects, or error handling. This is a significant gap for a mutation-like operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, but it is under-specified rather than efficiently concise. It provides only a vague outline and omits essential details, so the sentence does not earn its place as a useful summary. A high-quality description would pack more actionable information into similar length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four parameters, no annotations, no output schema, and zero parameter descriptions, the description is far from sufficient. It does not explain what the connection test returns, how failures are handled, or any prerequisites. The tool likely needs more context for an agent to invoke it correctly and assess the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not elaborate on any of the four parameters (host, username, password, verify_ssl). It only refers to 'connection parameters' generically, adding no meaning beyond the schema's field titles. The agent receives no guidance on formats, constraints, or how parameters interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool configures Redfish connection parameters and tests the connection. This specific verb+resource combination distinguishes it from sibling tools that retrieve information or control power. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives or any prerequisites. The description does not mention that configuration is likely a prerequisite for other Redfish operations, nor does it exclude cases where alternative tools would be appropriate. Usage is only implied by the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_audit_logsC

Get comprehensive audit logs for security and compliance monitoring

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
log_typeNoAll

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states only the purpose and does not mention read-only behavior, pagination, default limits, or any side effects. 'Comprehensive' hints at broad coverage but lacks specifics about what the tool actually does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is front-loaded with the action and resource, making it easy to process quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal but adequate for a simple read tool with two optional parameters and no output schema. However, it omits critical details about parameter semantics and usage context, making it insufficient for an agent to fully understand filtering or limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two parameters (limit, log_type) with no descriptions, and the tool description offers zero additional meaning. The phrase 'comprehensive' does not bridge the gap, leaving the agent without any guidance on how limit or log_type affect the operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets 'comprehensive audit logs' for security and compliance monitoring, using a specific verb and resource. However, it does not explicitly differentiate from the sibling tool 'redfish_get_manager_logs', which could be confused for audit logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as redfish_get_manager_logs or redfish_clear_logs. The phrase 'for security and compliance monitoring' implies a context but does not offer explicit exclusions or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_chassis_infoB

Get chassis information and inventory

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Get chassis information and inventory', implying a read operation, but does not describe what data is returned, whether authentication is required, or any other behavioral characteristics such as pagination or filtering. The description is not misleading but is severely under-specified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence and is not verbose, but it is under-specified. It essentially restates the tool name ('get_chassis_info' vs 'Get chassis information') with the addition of 'and inventory', which is redundant and does not justify the full sentence. It is concise but lacks substance, making it minimally acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no annotations, no output schema, and no parameters, making the description the sole source of context. While the tool is simple, the description only says 'Get chassis information and inventory' without specifying the shape of the return, the breadth of 'inventory', or any operational context. Compared to sibling tools of similar purpose, this lacks the detail needed for an agent to confidently invoke it and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the input schema is empty and schemas provide no information. The baseline for 0-parameter tools is 4, and the description does not need to explain parameters. It neither adds nor detracts from parameter clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and names the exact resource 'chassis information and inventory'. This clearly distinguishes it from sibling tools like redfish_get_system_info or redfish_get_manager_info, which target different resources. The addition of 'inventory' adds a layer of specificity beyond mere restatement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the many sibling get_*_info tools. It does not mention typical use cases, prerequisites, or exclusions. The agent is left to infer from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_config_statusB

Get current Redfish configuration status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Get' implies a safe read operation, but the description doesn't specify return format, side effects, permissions, or what 'configuration status' includes. It provides minimal transparency beyond the action being read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb and object, and contains no unnecessary words. It is concise and well-structured, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is adequate but minimal. It tells the agent what the tool does but doesn't explain what 'configuration status' means or what kind of data to expect. Given its simplicity, this is a borderline acceptable level of completeness, but it leaves room for ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema coverage is 100% (vacuously). Per the rubric, the baseline is 4 for 0-parameter tools. The description doesn't need to explain parameters because none exist, so it doesn't detract from the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get) and target (Redfish configuration status), which is more specific than a tautology and distinguishes it from siblings like health/security status. However, it doesn't explicitly contrast with related getters (e.g., get_manager_info, get_system_info), leaving some ambiguity about what 'configuration status' encompasses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool over alternatives. The description simply states what it does, with no mention of context, prerequisites, or exclusions. Sibling tools like get_health_status or get_security_status are not referenced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_firmware_inventoryC

Get firmware inventory information for systems

ParametersJSON Schema
NameRequiredDescriptionDefault
system_idNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states the action without revealing any behavioral traits such as read-only nature, permission requirements, pagination, or return format. The name implies a read operation, but that is not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no extraneous words. It efficiently communicates the core function in a clear subject-verb-object structure. There is no clutter or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (one optional parameter, no output schema, no annotations), the description is under-specified. It lacks context about what 'firmware inventory' includes, how system_id affects results, and what the agent should expect as an output. A more complete description would mention the optional system_id and any limitations or use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and the only parameter, system_id, is undocumented in both schema and description. The description's phrase 'for systems' vaguely hints at the parameter's purpose but does not clarify how or when to set it. The parameter is optional, which reduces the burden slightly, but the lack of any semantic detail is a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Get') on a specific resource ('firmware inventory information') for systems. It is distinguishable from sibling tools by the unique resource type, though it does not explicitly call out differences from other getter tools like get_system_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention required context, prerequisites, or cases where another sibling tool would be more appropriate. The sibling list is present but the description does not leverage it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_health_statusA

Get system health and status information for a specific system or all systems

ParametersJSON Schema
NameRequiredDescriptionDefault
system_idNo

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. The word 'get' implies a read-only operation, but no detail is given about what exactly is returned, whether permissions are required, or how 'all systems' is handled. This is minimal and lacks behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the primary action, and contains no unnecessary words. It is optimally concise for the information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, so the description should explain return values and usage context, but it only states what the tool does. It does not clarify what constitutes 'health status', possible response formats, or how to interpret results for a specific vs. all systems. The description is incomplete for a dependent agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful semantics to the system_id parameter by explaining that providing it targets a specific system and omitting it returns all systems. The schema only lists the parameter with a default of null and no description, so the description compensates well for the zero coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Get system health and status information' with a clear scope ('for a specific system or all systems'). It identifies the resource (system health/status), the verb (get), and differentiates from sibling tools like redfish_get_system_info or redfish_get_chassis_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when system health/status is needed, and the optional system_id indicates targeting a specific system or all systems. However, it does not explicitly state when to use this tool over alternatives, nor does it mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_manager_infoB

Get manager information and inventory

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' implies a read-only operation, but the description does not explicitly state that it is non-destructive, nor does it describe the return format, response structure, or any side effects. The agent gets minimal insight beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence: 'Get manager information and inventory'. Every word contributes to the purpose, with no filler or redundancy. It is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool, the description is minimally viable but leaves ambiguity about what 'inventory' includes and what specific manager details are returned. There is no output schema, so the description is the sole source of information; adding examples like 'firmware version, model, serial number' would improve completeness. The lack of any usage guidance also reduces contextual value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is trivially 100% and there is nothing for the description to add about parameter meanings. Per rubric, a zero-parameter tool receives a baseline score of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Get') and specifies the resource ('manager information and inventory'), which distinguishes it from sibling tools like redfish_get_system_info and redfish_get_chassis_info. However, 'manager information' is somewhat generic and does not explicitly differentiate what is included in 'inventory', so it falls short of a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. With zero parameters, there is no ambiguity about inputs, but the lack of contextual guidance for tool selection is a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_manager_logsC

Retrieve manager event logs

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
manager_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description must carry the full burden of behavioral disclosure. It only states 'Retrieve', implying a read-only operation, but does not explain pagination behavior, the meaning of the limit parameter, error handling, or what data is included in the logs. This is minimal and leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence and is appropriately concise. It is front-loaded with the key action, but it could be expanded with additional context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low parameter count and no output schema, the complexity is moderate, but the description is too sparse. It does not clarify what 'manager event logs' contain, how limit affects the result set, or how this relates to sibling logging tools. The description is minimally complete but lacks enough context for a new agent to use it reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to compensate for the lack of parameter documentation. However, it does not mention limit or manager_id at all, aside from the general reference to 'manager' logs. While the parameter names are somewhat self-explanatory, the description adds no semantic value beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve manager event logs' clearly states the tool's function with a specific verb and resource. It distinguishes from siblings like redfish_get_audit_logs by focusing on 'manager event logs', though it does not explicitly contrast with alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the sibling tools such as redfish_get_audit_logs or redfish_clear_logs. There are no stated use cases, exclusions, or prerequisites, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_power_consumptionC

Get power consumption and efficiency metrics for systems

ParametersJSON Schema
NameRequiredDescriptionDefault
system_idNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. The verb 'Get' implies a read-only operation, but nothing is disclosed about required permissions, behavior when system_id is omitted, return format, or potential side effects. Minimal behavioral context is included.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise, front-loaded sentence with no wasted words. However, it is extremely terse and omits essential context. It is appropriately structured but lacks substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one optional parameter and no output schema, the description should clarify return values and parameter semantics. It only promises 'metrics' without specifying which metrics or how system_id affects results. The sibling list suggests a richer comparison would be valuable, but none is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single parameter, system_id, with no description and 0% coverage. The description does not mention the parameter at all, leaving its meaning, format, and optionality completely unexplained. This is a significant gap for an interactive tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets power consumption and efficiency metrics, using a specific verb ('Get') and resource ('power consumption'). It distinguishes from siblings like redfish_power_control and redfish_get_system_info, though it doesn't explicitly compare to them. The plural 'systems' aligns loosely with the single system_id parameter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites, system_id usage, or how this relates to redfish_get_sensors or redfish_power_control. The description only states what it does, not when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_security_statusB

Get security status and compliance information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for disclosing behavior. It implies a read operation via 'Get' but does not state that no changes occur, whether authentication is required, or what the returned compliance information includes. This is a significant gap for an operation that the agent must trust to be safe.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words. It is well-structured for a simple getter, though the brevity leaves some questions unanswered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description should explain what security status and compliance information means and what the agent can expect as a response. It does not, making it incomplete for an agent to decide if this tool fits a task.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to document. The baseline of 4 applies because no parameter explanation is needed; the description correctly omits parameter details as there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving security status and compliance information, using the verb 'Get' with a specific resource. It distinguishes itself from sibling tools that focus on manager info, system info, or health status, though it does not detail what security status encompasses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the many sibling tools. The description does not mention prerequisites, alternatives, or exclusions, leaving the agent to infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_sensorsC

Get sensor readings for a specific system

ParametersJSON Schema
NameRequiredDescriptionDefault
system_idYes
sensor_typeNoAll

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description only states a read operation (Get), but doesn't disclose return format, error behavior, or auth needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal description misses essential context like output structure, sensor_type options, and behavior for missing systems; no output schema or annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%; the description hints at system_id via 'specific system' but doesn't explain sensor_type or its default 'All'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Get' with resource 'sensor readings' and scope 'specific system', clearly distinguishing it from sibling tools like health status or power consumption.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool instead of alternatives; no mention of sensor_type filtering or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_get_system_infoB

Get system information and inventory

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the burden of disclosing behavior. 'Get' implies a read-only operation, but the description does not mention what kind of information is returned, whether any system changes occur, or any security/authentication requirements. This is a significant gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the verb and resource, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with no parameters and no output schema, the description is minimally adequate but lacks specificity. It does not clarify what 'system information' covers, which could lead to incorrect usage expectations given the variety of sibling tools. More detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema provides full coverage. The baseline for no parameters is 4, and the description does not need to explain any parameters. It adds no parameter-specific information, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Get' and the resource 'system information and inventory', which clearly indicates what the tool does. However, it does not differentiate from sibling tools like redfish_get_manager_info or redfish_get_chassis_info, as 'system' is ambiguous in the Redfish context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are no prerequisites, exclusions, or mention of alternative tools for specific use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_manage_usersD

Manage user accounts on the Redfish system

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits itself. 'Manage user accounts' strongly implies a mutating operation (create/update/delete), but it gives no warning about destructive potential, permission requirements, reversibility, or side effects. This is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and technically concise, but it is under-specified. It does not earn its place by adding meaningful information beyond the tool name itself. Similar to the calibration example 'Process', this is under-specification rather than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this is an account-management tool with one ambiguous parameter, no output schema, and no annotations, the description is completely inadequate. It provides no information about valid actions, expected results, error conditions, or security implications, making it insufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single required parameter 'action' with no description, enum, or default. Schema description coverage is 0%, and the description does not mention 'action' or its possible values. The tool description fails to explain what actions are supported, leaving the agent completely without guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a general action ('Manage user accounts') on a specific resource ('the Redfish system'), which distinguishes it from sibling tools like redfish_get_manager_info or redfish_power_control. However, 'manage' is vague and does not specify the concrete operations (e.g., create, delete, update) or scope, making it only minimally clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool compared to alternatives. It does not mention any exclusions, prerequisites, or contexts where a different tool would be more appropriate. Sibling tools suggest a variety of read-only operations, but there is no contrast or use-case clarification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redfish_power_controlD

Control system power state

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
system_idYes

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It fails to mention that power control is a state-changing, potentially disruptive operation that may require elevated privileges. No warnings about system impact, reversibility, or authentication are given, making it dangerously opaque for a control action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence) and front-loaded, but this is under-specification rather than conciseness. No structural elements like lists, examples, or warnings exist. It does not earn its single sentence because it conveys almost no useful information beyond what the tool name already implies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a power control operation with no annotations, no output schema, and two undocumented parameters. The description is insufficient for an agent to know what actions are possible, what the side effects are, or what to expect in response. It fails to complete the full picture needed for safe and correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 2 parameters with 0% description coverage, and the description adds no meaning to either 'action' or 'system_id'. It does not hint at valid action values (e.g., on/off/restart) or the format of system_id, so the agent is left without critical parameter context that the schema also fails to provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Control system power state' uses a clear verb and resource, and it obviously relates to power management, differentiating it from the sibling get_* tools. However, 'control' is vague—it doesn't specify whether this turns power on/off, reboots, or performs other actions, so it lacks the precision needed to fully distinguish it from potential power-related variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus alternatives. The sibling list is mostly read-only information tools, and this is one of the few control tools, but the description doesn't state prerequisites, when not to use it, or alternatives such as redfish_configure. The intended use case is only implied by the tool's name and vague description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.1.0
    • First observedredfish_clear_logs
    • First observedredfish_configure
    • First observedredfish_get_audit_logs
    • First observedredfish_get_chassis_info
    • First observedredfish_get_config_status
    • First observedredfish_get_firmware_inventory
    • First observedredfish_get_health_status
    • First observedredfish_get_manager_info
    • First observedredfish_get_manager_logs
    • First observedredfish_get_power_consumption
    • First observedredfish_get_security_status
    • First observedredfish_get_sensors
    • First observedredfish_get_system_info
    • First observedredfish_manage_users
    • First observedredfish_power_control

TDQS

C2.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target distinct Redfish resources (manager, system, chassis, sensors, firmware, power, logs, security, configuration). Minor overlap exists between health status and sensor readings, and between manager/audit logs, but descriptions clarify the intent.

Naming Consistency3/5

Tools share a redfish_ prefix, and most read operations use get_*. However, action tools vary: power_control (noun-verb), manage_users, clear_logs, and configure (bare verb), creating an inconsistent verb-noun pattern.

Tool Count5/5

15 tools is a well-scoped set for a Redfish management server, covering inventory, health, power, logs, security, and configuration without feeling excessive.

Completeness4/5

The tool set covers the core Redfish lifecycle: inventory retrieval, power control, health/sensor monitoring, logs, user management, and configuration. Some gaps exist (e.g., firmware updates, network/storage inventory, BIOS settings), but these are not critical for basic monitoring and control.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Redfish-compliant BMC devices for server management, firmware updates, and hardware monitoring through session-based authentication and standardized API endpoints.
    1
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Enables AI agents to control Digital Loggers (DLI) Web Power Switches for hardware discovery, status querying, and power operations. It features a safety-first architecture with configurable access levels to protect critical infrastructure from unauthorized or accidental power loss.
    8
    1
    MIT