IPI Provisioner MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IPI Provisioner MCP Servergenerate install-config for HA cluster with 3 masters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IPI Provisioner MCP Server
An MCP (Model Context Protocol) server for OpenShift Baremetal IPI (Installer-Provisioned Infrastructure) cluster provisioning. This tool helps you generate, validate, and manage install-config.yaml files, test BMC connectivity, validate network configurations, and guide you through the cluster installation process.
Features
Install Config Management: Generate and validate install-config.yaml files
BMC Testing: Test Redfish/IPMI BMC connectivity
Network Validation: Validate CIDR ranges, VIPs, and DNS configuration
Cluster Lifecycle: Extract installer, create manifests, and manage installations
Templates: Pre-built templates for Compact and HA deployments
Related MCP server: ocp-mcp
Architecture
ipi-provisioner-mcp/
├── mcp_server/
│ ├── config.py # Configuration and environment variables
│ ├── main.py # FastMCP server setup
│ ├── models/ # Pydantic data models
│ │ ├── install_config.py # InstallConfig models
│ │ ├── baremetal.py # Baremetal host models
│ │ └── network.py # Network configuration models
│ ├── services/ # Business logic
│ │ ├── validation_service.py # Config validation
│ │ ├── bmc_service.py # BMC operations
│ │ ├── network_service.py # Network validation
│ │ └── openshift_service.py # Installer operations
│ ├── tools/ # MCP tool implementations
│ │ ├── config_tools.py # Config generation/validation
│ │ ├── bmc_tools.py # BMC testing
│ │ ├── network_tools.py # Network validation
│ │ └── cluster_tools.py # Cluster lifecycle
│ └── utils/ # Utilities
│ ├── yaml_handler.py # YAML operations
│ └── templates.py # Template management
├── templates/ # Install-config templates
│ ├── baremetal-ipi-compact.yaml
│ └── baremetal-ipi-ha.yaml
└── tests/ # Unit testsAvailable MCP Tools
Config Generation & Validation (6 tools)
validate_install_config- Validate install-config.yaml contentgenerate_install_config- Generate install-config.yaml from parametersget_config_template- Get a pre-built templatelist_config_templates- List all available templatescreate_baremetal_host_entry- Create a host entry for install-config
BMC Operations (4 tools)
test_bmc_connection- Test single BMC connectivity (Redfish)validate_bmc_addresses- Validate multiple BMC addressesparse_bmc_address- Parse and validate BMC address formatgenerate_bmc_test_script- Generate bash script for BMC testing
Network Validation (8 tools)
validate_network_cidr- Validate CIDR notationcheck_ip_in_network- Check if IP is in CIDR rangecheck_network_overlap- Check if two networks overlapvalidate_vip_configuration- Validate VIP configurationgenerate_dns_config- Generate DNS records for clustercalculate_cluster_network_capacity- Calculate pod network capacitygenerate_network_diagram- Generate network diagramvalidate_complete_network_config- Comprehensive network validation
Cluster Lifecycle (6 tools)
check_installer_binary- Check if openshift-install existsextract_openshift_installer- Extract installer from release imagecreate_installation_manifests- Create Kubernetes manifestsprepare_cluster_installation- Prepare installation commandprepare_cluster_destroy- Prepare cluster destroy commandget_installation_status- Get installation statusget_installation_logs- Get installation logs
Installation
cd /Users/jhajyahy/mcp/ipi-provisioner-mcp
uv sync # Creates venv and installs dependencies
source .venv/bin/activate # On Windows: .venv\Scripts\activateConfiguration
Environment Variables (Optional)
# OpenShift Configuration
export OPENSHIFT_RELEASE_IMAGE="quay.io/openshift-release-dev/ocp-release:4.17.0-x86_64"
export PULL_SECRET_PATH="$HOME/pull-secret.json"
export SSH_KEY_PATH="$HOME/.ssh/id_rsa.pub"
# MCP Transport (default: stdio)
export MCP_TRANSPORT="stdio" # or "sse" for web-based integration
export MCP_HOST="127.0.0.1" # for sse transport
export MCP_PORT="8000" # for sse transportMCP Client Configuration
Claude Desktop / Cursor IDE
Add to your ~/.config/claude-desktop/mcp.json or ~/.cursor/mcp.json:
{
"mcpServers": {
"ipi-provisioner": {
"command": "uv",
"args": ["run", "python", "/Users/jhajyahy/mcp/ipi-provisioner-mcp/main.py"],
"description": "IPI Cluster Provisioning Assistant for OpenShift Baremetal",
"env": {
"OPENSHIFT_RELEASE_IMAGE": "quay.io/openshift-release-dev/ocp-release:4.17.0-x86_64",
"PULL_SECRET_PATH": "/path/to/pull-secret.json",
"SSH_KEY_PATH": "/path/to/id_rsa.pub"
}
}
}
}Usage Examples
1. List Available Templates
User: List available install-config templatesResponse shows Compact and HA templates with descriptions.
2. Generate Install Config
User: Generate an install-config for a 3-master HA cluster named 'prod-cluster'
with base domain 'example.com', API VIP 192.168.1.10, Ingress VIP 192.168.1.113. Validate Install Config
User: Validate this install-config.yaml:
[paste your config]Returns validation errors, warnings, and a summary.
4. Test BMC Connectivity
User: Test BMC connection to redfish://192.168.1.100 with username admin and password secret5. Validate Network Configuration
User: Validate network config with cluster CIDR 10.128.0.0/14, service CIDR 172.30.0.0/16,
machine CIDR 192.168.1.0/24, API VIP 192.168.1.10, Ingress VIP 192.168.1.116. Generate DNS Configuration
User: Generate DNS config for cluster 'ocp' with base domain 'example.com',
API VIP 192.168.1.10, Ingress VIP 192.168.1.11, and hosts:
- master-0 with IP 192.168.1.20
- master-1 with IP 192.168.1.21
- master-2 with IP 192.168.1.22This will generate A and PTR records for all cluster components including the API VIP, Ingress VIP, and all hosts.
7. Extract OpenShift Installer
User: Extract openshift-install from release image
quay.io/openshift-release-dev/ocp-release:4.17.0-x86_648. Check Installation Status
User: Get installation status for /path/to/install-dirCommon Workflows
Workflow 1: Validate Existing Config
Validate config:
validate_install_config(yaml_content)Validate networks:
validate_complete_network_config(...)Validate BMCs:
validate_bmc_addresses(hosts)Generate DNS config:
generate_dns_config(...)
Workflow 2: Troubleshoot Installation
Check status:
get_installation_status(install_dir)Get logs:
get_installation_logs(install_dir, lines=100)Validate network:
validate_complete_network_config(...)Test BMCs:
validate_bmc_addresses(hosts)
Testing
Run the test suite:
uv run pytest tests/ -vTemplates
Available Templates
baremetal-ipi-compact.yaml - Compact Cluster
3 master nodes (also act as workers)
Requires API and Ingress VIPs
Good for resource-constrained environments
baremetal-ipi-ha.yaml - High Availability
3 master nodes
2+ dedicated worker nodes
Requires API and Ingress VIPs
Production-ready configuration
Network Requirements
Machine Network
Physical network for baremetal hosts
Contains API VIP and Ingress VIP (for HA)
Example: 192.168.1.0/24
Cluster Network (Pod Network)
Virtual network for pod-to-pod communication
Example: 10.128.0.0/14
Each node gets a /23 subnet (510 IPs per node)
Service Network
Virtual network for Kubernetes services
Example: 172.30.0.0/16
DNS Requirements (HA/Compact)
A Records
api.<cluster_name>.<base_domain>→ API VIP*.apps.<cluster_name>.<base_domain>→ Ingress VIP (wildcard)<hostname>.<base_domain>→ Host IP (for each cluster node)
PTR Records (Reverse DNS)
API VIP →
api.<cluster_name>.<base_domain>Each host IP →
<hostname>.<base_domain>
Example for cluster 'ocp' with domain 'example.com':
# A Records
api.ocp.example.com. A 10.1.235.200
*.apps.ocp.example.com. A 10.1.235.201
master-0.example.com. A 10.1.235.25
master-1.example.com. A 10.1.235.26
master-2.example.com. A 10.1.235.27
# PTR Records
200.235.1.10.in-addr.arpa. PTR api.ocp.example.com.
25.235.1.10.in-addr.arpa. PTR master-0.example.com.
26.235.1.10.in-addr.arpa. PTR master-1.example.com.
27.235.1.10.in-addr.arpa. PTR master-2.example.com.BMC Requirements
Supported BMC Types
Redfish (recommended)
Redfish Virtual Media
IPMI
iDRAC Virtual Media
BMC Address Format
Redfish:
redfish://192.168.1.100orredfish+https://192.168.1.100:443IPMI:
ipmi://192.168.1.100
Troubleshooting
Common Issues
BMC Connection Failures
Use
test_bmc_connectionto verify connectivityCheck BMC credentials
Verify network connectivity to BMC
Network Validation Errors
Use
validate_complete_network_configto check for overlapsEnsure VIPs are in machine network range
Verify DNS is configured correctly
Installation Failures
Use
get_installation_logsto check logsVerify all BMCs are reachable
Check network configuration
Ensure DNS records exist (for HA)
Contributing
Contributions are welcome! Please ensure:
All tests pass:
uv run pytest tests/ -vCode follows existing patterns
Add tests for new functionality
License
Apache 2.0
Built for OpenShift Metal Platform Team
Available Tools
24 toolscalculate_cluster_network_capacityA
Calculate cluster network capacity.
Args: cluster_cidr: Cluster network CIDR (e.g., '10.128.0.0/14') host_prefix: Host prefix - subnet size per node (e.g., 23)
Returns: Capacity calculations (max nodes, IPs per node, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| host_prefix | Yes | ||
| cluster_cidr | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains the return value (capacity calculations) and parameter meanings, but does not discuss potential errors, assumptions about CIDR validity, or any internal behavior. For a pure calculation tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact docstring with clearly labeled Args and Returns sections. Every line is informative with no filler, making it easy to parse and act upon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, has an output schema, and the description covers purpose, parameters, and return summary. It lacks usage context relative to siblings, but for a straightforward calculation tool, the information provided is sufficient for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by clearly explaining both parameters with concrete examples: '10.128.0.0/14' for cluster_cidr and '23' for host_prefix, plus clarifying host_prefix as 'subnet size per node'. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'calculate' and a clear resource 'cluster network capacity', which distinguishes it from sibling tools like 'validate_network_cidr' and 'check_network_overlap'. The purpose is immediately unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention scenarios, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and general context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_installer_binaryA
Check if openshift-install binary is available.
Args: install_dir: Optional installation directory to check for local binary
Returns: Binary existence check results
| Name | Required | Description | Default |
|---|---|---|---|
| install_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It only says 'Check if openshift-install binary is available' and 'Binary existence check results,' without specifying whether it checks PATH, install_dir, executable permission, or what the return format is. This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single purpose sentence followed by structured Args and Returns sections. Every sentence adds value, and the structure is clear and front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and no annotations, and an output schema exists. However, the description leaves gaps about how availability is determined (e.g., system PATH vs. install_dir) and what constitutes 'available.' This is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the install_dir parameter, but the tool description clarifies it as 'Optional installation directory to check for local binary.' This adds meaningful context beyond the bare schema definition, though it could be more specific about path formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check'), a specific resource ('openshift-install binary'), and a clear outcome ('is available'). It clearly distinguishes this tool from sibling tools which handle configuration, network validation, or installation actions. The optional install_dir further clarifies the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (checking existence of the binary) but does not provide explicit guidance on when to use this vs. alternatives such as extract_openshift_installer. There is no mention of prerequisites or exclusions, so the context is only implicit from the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ip_in_networkB
Check if an IP address is within a CIDR range.
Args: ip_address: IP address to check cidr: CIDR range
Returns: Check result
| Name | Required | Description | Default |
|---|---|---|---|
| cidr | Yes | ||
| ip_address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only restates the basic operation and provides 'Returns: Check result' without disclosing edge cases, accepted IP formats (IPv4/IPv6), error behavior, or return type details. This leaves significant ambiguity for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, with clear sections for arguments and returns, and contains no redundant text. It earns high marks for conciseness, though the brevity contributes to the lack of behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple check tool, it covers the core operation and parameter names, but it lacks usage guidance, input format constraints, and clarification of the result format. An output schema exists, which partially covers return details, but the description still feels minimally complete for an agent needing to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description should compensate, but it merely says 'ip_address: IP address to check' and 'cidr: CIDR range'—essentially restating the parameter names. It adds no format examples, constraints, or additional meaning, offering minimal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Check if an IP address is within a CIDR range.' This directly differentiates it from siblings like validate_network_cidr or check_network_overlap, which have distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use the tool (testing IP membership in a network), but there is no explicit guidance about when not to use it or which sibling alternative to choose. No exclusions or alternative scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_network_overlapB
Check if two networks overlap.
Args: cidr1: First CIDR cidr2: Second CIDR
Returns: Overlap check result
| Name | Required | Description | Default |
|---|---|---|---|
| cidr1 | Yes | ||
| cidr2 | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits itself. It only states the basic operation and returns 'Overlap check result' without addressing edge cases (e.g., invalid CIDR format, partial overlap definition), error handling, or whether it supports IPv6. This is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well-structured, with a clear summary line followed by an Args/Returns list. Every sentence earns its place, though the extreme brevity does sacrifice behavioral detail that could be included without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description covers the essential purpose and arguments, and an output schema exists to explain return values. However, it leaves gaps around the definition of 'overlap' (partial vs. full) and behavior on invalid inputs, which an agent might need in complex network validation workflows.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds only 'First CIDR' and 'Second CIDR', which barely goes beyond the parameter names. No format guidance, examples, or validation rules are provided, leaving the agent to guess what constitutes a valid CIDR.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Check if two networks overlap.' It uses a specific verb ('check') and resource ('networks overlap'), which distinguishes it from sibling tools like check_ip_in_network or validate_network_cidr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the tool name and description, but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The context is clear enough for a single-purpose utility, but lacks explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_baremetal_host_entryA
Create a baremetal host entry for install-config.yaml.
Args: name: Host name (e.g., 'master-0') role: Host role ('master' or 'worker') bmc_address: BMC address (e.g., 'redfish://192.168.1.100') bmc_username: BMC username bmc_password: BMC password boot_mac_address: Boot MAC address (e.g., 'aa:bb:cc:dd:ee:ff') root_device_hint: Optional root device hint (e.g., '/dev/sda' or 'wwn')
Returns: Host configuration dictionary ready for install-config.yaml
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| role | Yes | ||
| bmc_address | Yes | ||
| bmc_password | Yes | ||
| bmc_username | Yes | ||
| boot_mac_address | Yes | ||
| root_device_hint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It clearly states the tool returns a dictionary ('Returns: Host configuration dictionary ready for install-config.yaml'), indicating it's a pure data constructor rather than a side-effecting file operation. It does not explicitly say 'does not modify files', but the return statement strongly implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a well-organized docstring with a one-line summary followed by Args and Returns sections. Every sentence provides useful information; there is no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (7 scalar parameters, no nested objects) and detailed parameter examples, the description is complete. It explains the return value, which is especially important since the output schema is not visible to the agent. No critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by listing every parameter with concrete examples (e.g., name: 'master-0', bmc_address: 'redfish://192.168.1.100'). This adds significant meaning beyond the bare input schema, especially for root_device_hint with its optional/null type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('baremetal host entry for install-config.yaml'), clearly distinguishing it from siblings like list_config_templates or validate_install_config. The purpose is unambiguous and concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: this tool constructs a single host entry for an install-config file. It does not explicitly mention alternatives or exclusions, but the purpose is clear enough that an agent would know when to use it over other tools like validate_network_cidr or generate_install_config.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_installation_manifestsA
Create Kubernetes manifests from install-config.yaml.
Args: install_dir: Installation directory containing install-config.yaml installer_path: Path to openshift-install binary (default: 'openshift-install')
Returns: Manifest creation results
| Name | Required | Description | Default |
|---|---|---|---|
| install_dir | Yes | ||
| installer_path | No | openshift-install |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing side effects. It mentions creating manifests but does not state that files will be written to the install directory, whether the openshift-install binary modifies anything, or any permissions needed. The 'Returns' line is vague and adds no behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. The Args and Returns sections are clearly structured. However, the Returns line ('Manifest creation results') is somewhat vague and could be more informative without adding length. Overall, it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 parameters and an output schema, so the description covers the essentials. However, it lacks context about prerequisites (e.g., install-config must exist, openshift-install binary must be available), where manifests are written, and how this step fits into the larger installation workflow. This is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), but the description's Args section adds meaningful semantics: install_dir is 'Installation directory containing install-config.yaml' and installer_path is 'Path to openshift-install binary (default: 'openshift-install')'. This goes beyond simple parameter naming and clarifies the role of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create Kubernetes manifests from install-config.yaml' with a specific verb ('Create') and resource ('Kubernetes manifests from install-config.yaml'). This distinguishes it from sibling tools like generate_install_config and validate_install_config, which target different artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: it is used when you have an install-config.yaml and want to generate manifests. However, there is no explicit guidance on when to use this tool versus alternatives like prepare_cluster_installation, nor any exclusions or prerequisites beyond the parameter descriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_openshift_installerA
Extract openshift-install binary from a release image.
Args: release_image: OpenShift release image URL (e.g., 'quay.io/openshift-release-dev/ocp-release:4.17.0-x86_64') output_dir: Directory to extract installer to (default: current directory)
Returns: Extraction results and next steps
| Name | Required | Description | Default |
|---|---|---|---|
| output_dir | No | . | |
| release_image | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose side effects and safety. It only states 'Extract' and a generic 'Returns' line, without mentioning that it writes to output_dir, may require network access, or could have side effects like downloading a large image.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and follows a clean structure: purpose first, then Args, then Returns. Every sentence adds value without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, with two parameters and an output schema present. The description adequately covers the purpose and parameters, but lacks usage context and behavioral details, making it only minimally complete for a full agent decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema parameter descriptions are absent (0% coverage), so the description compensates well. The Args section explains release_image with a concrete example URL and output_dir with its default value, adding meaningful guidance beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Extract openshift-install binary from a release image.' This clearly states the action and distinguishes it from sibling tools like check_installer_binary or create_installation_manifests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. It lacks prerequisites, exclusions, or references to related sibling tools such as check_installer_binary, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_bmc_test_scriptB
Generate a bash script to test BMC connectivity for multiple hosts.
Args: hosts: List of host configurations with BMC details
Returns: Bash script for testing BMC connectivity
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It only states the tool generates a script and returns it, without mentioning side effects, permissions, or that it's non-destructive. Minimal transparency beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main action, followed by Args and Returns sections. However, the Returns line largely repeats the first sentence ('Bash script for testing BMC connectivity'), introducing minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one complex parameter (hosts array) but its structure is undefined. The description does not explain what 'BMC details' include or what the generated script actually does beyond testing connectivity. Despite having an output schema, without input detail the description is incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only says 'List of host configurations with BMC details'. This adds some meaning but fails to specify required fields (e.g., IP, credentials, protocol), leaving the input insufficiently defined for a user to construct valid hosts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a bash script for testing BMC connectivity across multiple hosts. This specific verb+resource+scope distinguishes it from siblings like test_bmc_connection (which directly tests) and validate_bmc_addresses (which validates addresses).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (generate a script rather than directly test) but provides no explicit guidance on when to choose this over alternatives like test_bmc_connection or validate_bmc_addresses. No when-to-use or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_dns_configA
Generate DNS configuration for the cluster.
Args: cluster_name: Cluster name base_domain: Base domain api_vip: API VIP address ingress_vip: Ingress VIP address hosts: Optional JSON string of hosts list. Each host should have 'name' and 'ip' keys. Example: '[{"name": "master-0", "ip": "10.1.235.25"}, {"name": "master-1", "ip": "10.1.235.26"}]'
Returns: Required DNS records and validation commands including A and PTR records for hosts
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | No | ||
| api_vip | Yes | ||
| base_domain | Yes | ||
| ingress_vip | Yes | ||
| cluster_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns DNS records and validation commands, implying a read-only/generation behavior with no side effects. It also clarifies the optional 'hosts' parameter format and example, adding useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose sentence, an Args block, and a Returns line. It is appropriately sized, front-loaded, and every line adds value, including the hosts example. No redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, parameters, and return value, which is sufficient for a generation tool with a moderate number of parameters. It lacks edge-case details (e.g., behavior with invalid IPs, interaction with other tools), but given the output schema exists and the description provides a solid overview, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides clear explanations for all five parameters, including an example for 'hosts'. The Args section fully compensates for the schema gap, giving semantic meaning to each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Generate') and resource ('DNS configuration for the cluster'). It clearly differentiates from sibling tools by focusing on DNS records and validation commands, which no other tool in the list addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its parameter list and returns (e.g., needed when DNS records are required), but it does not explicitly state when to use this tool over alternatives or provide exclusion criteria. Context signals show related tools but no direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_install_configA
Generate an install-config.yaml for baremetal IPI.
Args: cluster_name: Name of the cluster base_domain: Base domain (e.g., example.com) pull_secret: Pull secret content (JSON string) ssh_key: SSH public key content api_vip: API VIP address ingress_vip: Ingress VIP address hosts: List of baremetal hosts with BMC configuration machine_network_cidr: Machine network CIDR (default: 192.168.1.0/24) cluster_network_cidr: Cluster network CIDR (default: 10.128.0.0/14) service_network_cidr: Service network CIDR (default: 172.30.0.0/16) network_type: Network type (default: OVNKubernetes) control_plane_replicas: Number of master nodes (default: 3) worker_replicas: Number of worker nodes (default: 0)
Returns: Generated install-config as dictionary and YAML string
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | Yes | ||
| api_vip | Yes | ||
| ssh_key | Yes | ||
| base_domain | Yes | ||
| ingress_vip | Yes | ||
| pull_secret | Yes | ||
| cluster_name | Yes | ||
| network_type | No | ||
| worker_replicas | No | ||
| cluster_network_cidr | No | ||
| machine_network_cidr | No | ||
| service_network_cidr | No | ||
| control_plane_replicas | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only specifies the return value ('Generated install-config as dictionary and YAML string'). It does not state whether the tool writes to disk, requires prior setup, or has side effects. The 'generate' wording suggests a non-destructive function, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured as a docstring with Args and Returns sections, and the opening sentence is clear. It is longer due to 13 parameters, but each line is informative and earns its place. No redundant fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides solid parameter coverage and return info, but lacks broader context such as workflow position (e.g., should be followed by validation), prerequisites (e.g., valid BMC addresses, installer binary), or failure behavior. For a 13-parameter tool with no annotations, this is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden. It lists all 13 parameters with brief meanings, including default values not present in the schema (e.g., machine_network_cidr default 192.168.1.0/24). However, the 'hosts' parameter is only described as 'List of baremetal hosts with BMC configuration' without specifying the required object structure, leaving a significant gap for a complex parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Generate an install-config.yaml for baremetal IPI.' This clearly distinguishes it from sibling tools like validate_install_config or get_config_template, and the scope (baremetal IPI) adds context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for creating an install-config in a baremetal IPI deployment, but it does not explicitly state when to choose this over alternatives or when not to use it. No exclusions or alternative tool references are provided, leaving the guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_network_diagramA
Generate a network diagram for the cluster.
Args: cluster_cidr: Cluster (pod) network CIDR service_cidr: Service network CIDR machine_cidr: Machine network CIDR api_vip: API VIP ingress_vip: Ingress VIP
Returns: Network diagram
| Name | Required | Description | Default |
|---|---|---|---|
| api_vip | Yes | ||
| ingress_vip | Yes | ||
| cluster_cidr | Yes | ||
| machine_cidr | Yes | ||
| service_cidr | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists input parameters and a return value but does not disclose whether the operation has side effects, requires permissions, or how the diagram is rendered. This leaves significant ambiguity about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a one-line purpose, an argument list, and a return statement. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five required parameters and no output schema or annotations, the description covers the parameters and return value but lacks details on the output format, error handling, and any dependencies. The mention of 'Returns: Network diagram' is vague, providing no information about the diagram's representation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides brief definitions for each parameter (e.g., 'cluster_cidr: Cluster (pod) network CIDR'), which adds meaning beyond the bare schema. However, it does not specify formats, allowed values, or examples, so while helpful, it is not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Generate a network diagram for the cluster', using a specific verb and resource. It distinguishes itself from sibling tools like validate_network_cidr or check_network_overlap by focusing on diagram generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The purpose implies it is for generating a visual representation of network configuration, but no prerequisites or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_config_templateA
Get an install-config template.
Args: template_name: Template name (e.g., 'baremetal-ipi-compact', 'baremetal-ipi-ha')
Returns: Template content and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| template_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates the tool returns template content and metadata, which implies read-only behavior. However, it does not explicitly state that it has no side effects, nor does it describe error behavior (e.g., invalid template name). The return description adds some transparency but not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose, followed by Args and Returns. Every sentence serves a purpose with no unnecessary filler. It is front-loaded with the main action and clearly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description is complete enough for correct usage. It includes return details and examples. It does not mention potential edge cases or the relationship with sibling tools, but these are not critical for a getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description compensates by providing concrete examples of template_name ('baremetal-ipi-compact', 'baremetal-ipi-ha'). This adds practical meaning beyond the bare schema and helps the agent construct valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets an install-config template, with a specific verb ('Get') and resource. It is distinguishable from siblings like list_config_templates, which lists templates, and generate_install_config, which creates one. The Args section reinforces the purpose by showing the template_name parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: you need a template by name, and examples are provided. However, there is no explicit guidance on when to use this tool versus alternatives such as list_config_templates or generate_install_config. No exclusions or prerequisites are mentioned, but for a simple getter, implied usage is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_installation_logsA
Get recent installation log entries.
Args: install_dir: Installation directory lines: Number of recent lines to retrieve (default: 50)
Returns: Recent log entries
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | ||
| install_dir | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only states 'Get' (a read operation) but does not mention whether the tool reads from a file, what happens if the directory is invalid, whether it follows a tail/streaming model, or any side effects. The description is too thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary followed by Args and Returns sections. Every sentence adds value, and the format is easy to scan. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple log retrieval tool with an output schema, the description covers the main parameters and return concept. However, it lacks details on error handling, behavior when lines exceeds available log size, or path format expectations. Given no annotations, more context would be helpful, but it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by listing args. 'install_dir: Installation directory' adds some meaning but is vague and could be misinterpreted (path to installer vs logs). 'lines: Number of recent lines to retrieve' is clear. The default value is in the schema, but the description repeats it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get recent installation log entries' clearly specifies the verb (get) and resource (installation log entries), and it distinguishes this tool from siblings like get_installation_status and configuration validation tools. The purpose is immediately understandable and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and purpose: one would use this tool when they need recent installation logs. However, there is no explicit guidance on when to prefer this over alternatives or any prerequisites (e.g., installer must be run first). No exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_installation_statusB
Get cluster installation status.
Args: install_dir: Installation directory
Returns: Installation status and progress
| Name | Required | Description | Default |
|---|---|---|---|
| install_dir | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It implies a read-only operation via 'Get' and mentions return of 'status and progress', but does not disclose error behavior, required installation state, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single clear sentence plus a simple Args/Returns block. No unnecessary words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with an output schema, the description covers the core purpose and return summary. However, it omits usage context and behavioral details, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema lists only install_dir with type string and 0% coverage. The description adds 'Installation directory' which gives basic meaning beyond the bare schema, but lacks details like path format or expected location.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get cluster installation status' with a specific verb and resource, clearly indicating the tool's function. It distinguishes itself from siblings like get_installation_logs by focusing on status rather than logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites, and no alternatives. It simply states the action without any contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_config_templatesA
List all available install-config templates.
Returns: List of templates with descriptions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool 'List[s] all' and describes the return value, implying a safe, read-only operation. However, it does not disclose potential behaviors like pagination, ordering, or access requirements, though these may be trivial for a simple list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the purpose and then states the return value, making every word earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter tool, existing output schema, and simple list functionality, the description is complete. It states what the tool does and what it returns, leaving no critical gaps for this use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are not applicable. Per the baseline for 0-param tools, this scores 4, and the description appropriately avoids inventing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource structure: 'List all available install-config templates.' This clearly states the tool's function and differentiates it from sibling tools like get_config_template, which retrieves a specific template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage—when you need to see all available templates—but does not explicitly state when to prefer this over alternatives like get_config_template. There are no exclusion criteria or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_bmc_addressA
Parse and validate BMC address format.
Args: bmc_address: BMC address (e.g., 'redfish://192.168.1.100:443')
Returns: Parsed BMC address components
| Name | Required | Description | Default |
|---|---|---|---|
| bmc_address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states the tool parses and validates, but gives no details on failure behavior (e.g., errors on invalid format), side effects, or any constraints. The return description is vague ('Parsed BMC address components') and does not clarify how validation failures are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured with Args/Returns sections. It is front-loaded with the purpose and every sentence adds value—no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter) and the presence of an output schema, the description adequately covers the essentials. It includes a usage example and a high-level return summary. It could be more complete with explicit error handling info, but the output schema likely covers return component details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates with an Args section that names the parameter and gives a concrete example ('redfish://192.168.1.100:443'), adding meaning beyond the schema's bare string type. However, it does not enumerate all possible accepted formats or the exact components returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Parse and validate BMC address format', with a specific verb and resource. It distinguishes from siblings like validate_bmc_addresses by focusing on parsing a single address, and the example 'redfish://192.168.1.100:443' sets clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by showing an example of a BMC address and stating a parse/validate action, but it does not explicitly state when to choose this over sibling tools like validate_bmc_addresses or test_bmc_connection. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_cluster_destroyA
Prepare cluster destroy command.
This tool provides the command to destroy the cluster. Use with caution - this will delete the entire cluster!
Args: install_dir: Installation directory installer_path: Path to openshift-install binary (default: 'openshift-install')
Returns: Destroy command and information
| Name | Required | Description | Default |
|---|---|---|---|
| install_dir | Yes | ||
| installer_path | No | openshift-install |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the destructive outcome ('this will delete the entire cluster!') and states that the tool returns a 'Destroy command and information.' However, it does not mention prerequisites, permissions, or whether the command is actually executed or just returned. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear warning up front, followed by parameter docs and return info. Every sentence contributes value, though the 'Args' and 'Returns' sections are minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return format is likely covered. The description warns about destruction and lists parameters, but lacks prerequisites, what 'information' means, and any subtle behavioral details. It is minimally complete but leaves some gaps for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so by explaining both parameters: 'install_dir: Installation directory' and 'installer_path: Path to openshift-install binary (default: 'openshift-install').' This adds meaning beyond the bare schema, though it could include more detail on constraints or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Prepare cluster destroy command' and 'This tool provides the command to destroy the cluster.' It uses a specific verb and resource, and no sibling tool handles cluster destruction, so it is well differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the name and description ('destroy the cluster'), and there is a strong warning ('Use with caution - this will delete the entire cluster!'), but there is no explicit when-to-use vs. when-not-to-use or alternative guidance. The tool stands alone among siblings, so some context is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_cluster_installationA
Prepare cluster installation command.
This tool doesn't actually start the installation (which can take 30-60 minutes), but provides the command to run.
Args: install_dir: Installation directory installer_path: Path to openshift-install binary (default: 'openshift-install') log_level: Log level (debug, info, warn, error)
Returns: Installation command and information
| Name | Required | Description | Default |
|---|---|---|---|
| log_level | No | info | |
| install_dir | Yes | ||
| installer_path | No | openshift-install |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the non-starting behavior and return type, but does not mention potential side effects, file writes, or permission requirements, leaving some behavioral ambiguity for a preparation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, front-loaded with the core purpose, and includes only essential information about parameters and returns. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description covers purpose, key parameters, and return value. It lacks notes on prerequisites or integration with sibling tools, but is sufficient for a command-preparation task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though the schema has no descriptions (0% coverage), the description clearly explains each parameter's meaning and includes default values and allowed log levels, effectively compensating for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'prepares' a cluster installation command and explicitly distinguishes it from actually starting the installation, which sets it apart from sibling execution/status tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the tool only provides the command and does not start the installation, giving clear context and a when-not. However, it does not name specific alternative tools or state explicit prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_bmc_connectionA
Test BMC connectivity (Redfish).
Args: bmc_address: BMC address (e.g., 'redfish://192.168.1.100' or 'redfish+https://192.168.1.100') username: BMC username password: BMC password verify_ssl: Whether to verify SSL certificates (default: False)
Returns: Connection test results
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | ||
| username | Yes | ||
| verify_ssl | No | ||
| bmc_address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, but it only says 'Test BMC connectivity' without disclosing that it performs a live network call, attempts authentication, or is read-only. The verify_ssl default to False hints at behavior but doesn't clarify side effects or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, clearly labeled Args with inline comments, and a Returns line. No wasted words, and it is suitably front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of sibling tools for BMC address validation and parsing, this description is insufficient to position the tool's exact role. It lacks any usage context or differentiation. However, the presence of an output schema and thorough parameter documentation partially mitigates the gap, making it minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the Args section fully compensates: it explains bmc_address format with examples, clarifies username/password roles, and describes verify_ssl's purpose and default. This adds significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Test BMC connectivity (Redfish)' with a specific verb and resource, clearly distinguishing it from sibling tools like validate_bmc_addresses (format validation) and generate_bmc_test_script (script generation). 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.
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 such as validate_bmc_addresses or parse_bmc_address. The arg list gives param info but no context on prerequisites or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_bmc_addressesA
Validate BMC addresses for multiple hosts.
Args: hosts: List of host configurations with BMC details Each host should have: name, bmc.address, bmc.username, bmc.password
Returns: Validation results for all hosts
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. 'Validate' is vague—it doesn't specify whether it checks IP format, credentials, reachability, or something else. It also omits potential side effects, network operations, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured with Args and Returns sections. Every sentence contributes useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the input shape and the return concept, and an output schema exists to detail results. However, it leaves the exact validation criteria undefined, which is a notable gap for a validation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the hosts parameter, but the description compensates by listing required fields (name, bmc.address, bmc.username, bmc.password). This adds meaning beyond the bare schema, though it could be more detailed about accepted variations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Validate' with a clear resource 'BMC addresses' and scope 'for multiple hosts', which distinguishes it from sibling tools like test_bmc_connection or parse_bmc_address. The action and target are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While 'for multiple hosts' implies a batch use case, there is no explicit guidance on when to use this tool versus alternatives like test_bmc_connection or validate_install_config. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_complete_network_configA
Validate complete network configuration for overlaps and validity.
Args: cluster_cidr: Cluster network CIDR service_cidr: Service network CIDR machine_cidr: Machine network CIDR api_vip: Optional API VIP (required for HA) ingress_vip: Optional Ingress VIP (required for HA)
Returns: Comprehensive validation results
| Name | Required | Description | Default |
|---|---|---|---|
| api_vip | No | ||
| ingress_vip | No | ||
| cluster_cidr | Yes | ||
| machine_cidr | Yes | ||
| service_cidr | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the tool validates overlaps and validity and returns comprehensive results, but does not explicitly state whether it is read-only or if it modifies any resources. The word 'validate' implies non-mutating behavior, yet explicit disclosure of side effects or error behavior is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear one-sentence purpose followed by an Args section and a Returns line. Every sentence adds value, and there is no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity and the presence of an output schema, the description adequately covers the tool's purpose and parameters. It does not detail return value structure, but the output schema handles that. It could mention prerequisites or edge cases, but overall it provides sufficient context for an agent to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It provides a brief explanation for each of the five parameters, including the HA requirement for VIPs, which goes beyond the schema's type information. However, it does not specify CIDR format or constraints such as expected notation, so it is not fully comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a complete network configuration for overlaps and validity, using specific verbs and resources. It distinguishes itself from sibling tools like validate_network_cidr, check_network_overlap, and validate_vip_configuration by covering the full network configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for full network configuration validation, with context that API and ingress VIPs are optional but required for HA. It does not explicitly name alternative sibling tools or state when not to use it, but the 'complete' designation provides clear context for when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_install_configA
Validate an install-config.yaml file.
Args: config_yaml: The install-config.yaml content as a string
Returns: Validation results with errors and summary
| Name | Required | Description | Default |
|---|---|---|---|
| config_yaml | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states that it validates and returns errors/summary, but does not mention side effects (e.g., read-only), potential failure modes, or whether it checks against external systems. This is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and well-structured, with a one-line purpose followed by clear Args and Returns sections. Every sentence serves a purpose with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema provided), the description covers the essential aspects: purpose, input, and return value. It is sufficiently complete for an agent to understand what the tool does, though it could offer more workflow context (e.g., when in the installation process to run it).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter config_yaml is clearly described as 'The install-config.yaml content as a string', adding meaningful context beyond the bare schema type. Since schema description coverage is 0%, this description compensates well for the schema's silence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Validate an install-config.yaml file' with a specific verb and resource. It is distinct from sibling tools like generate_install_config and list_config_templates, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the tool's name and description: use it to validate an install-config.yaml file. However, there is no explicit guidance on when to use it versus alternatives or prerequisites, leaving the context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_network_cidrA
Validate CIDR notation.
Args: cidr: CIDR string (e.g., '192.168.1.0/24')
Returns: Validation result
| Name | Required | Description | Default |
|---|---|---|---|
| cidr | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 the tool performs validation and returns a 'Validation result,' which implies a read-only operation. However, it does not specify the result's format, possible exceptions, or any side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a one-sentence purpose followed by clearly labeled Args and Returns sections. Every line adds value with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter validator, the description adequately covers the input and basic return concept. Since an output schema exists, return-value details are not required in the description. However, the missing usage context and behavioral transparency prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description for the 'cidr' parameter, but the description compensates with a clear explanation and an example ('192.168.1.0/24'). This gives the agent practical guidance on the expected string format, exceeding what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Validate CIDR notation.' It is distinguishable from siblings like validate_vip_configuration by its narrow focus on CIDR syntax. However, it does not explicitly differentiate from other validate tools, so it misses a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as check_ip_in_network or validate_complete_network_config. Usage is only implied by the name and purpose. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_vip_configurationC
Validate VIP (Virtual IP) configuration.
Args: api_vip: API VIP address ingress_vip: Ingress VIP address machine_network_cidr: Machine network CIDR
Returns: Validation results
| Name | Required | Description | Default |
|---|---|---|---|
| api_vip | Yes | ||
| ingress_vip | Yes | ||
| machine_network_cidr | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of explaining behavior. It only says 'Returns: Validation results' without disclosing what validation is performed, whether it is read-only, or what constitutes success/failure. This is a significant transparency gap for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with an Args/Returns layout. It avoids redundancy and front-loads the core purpose effectively. The only slight issue is that 'Returns: Validation results' is vague but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's specific scope and the existence of sibling validation tools, the description lacks critical context about what validation rules are applied and how this tool fits into the broader workflow. The output schema exists, so return values are partially covered, but behavior and usage context remain inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides basic meanings for each parameter (e.g., 'API VIP address', 'Ingress VIP address', 'Machine network CIDR'), which adds value beyond the bare schema types. However, it lacks format expectations (e.g., IP vs hostname, CIDR notation), so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Validate VIP (Virtual IP) configuration.' It distinguishes itself from sibling tools like validate_network_cidr and validate_complete_network_config by focusing on VIPs, though it does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites, exclusions, or scenarios where another validation tool would be more appropriate, leaving the agent without decision-making context.
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.
24 tool updates
v0.1.0- First observed
calculate_cluster_network_capacity - First observed
check_installer_binary - First observed
check_ip_in_network - First observed
check_network_overlap - First observed
create_baremetal_host_entry - First observed
create_installation_manifests - First observed
extract_openshift_installer - First observed
generate_bmc_test_script - First observed
generate_dns_config - First observed
generate_install_config - First observed
generate_network_diagram - First observed
get_config_template - First observed
get_installation_logs - First observed
get_installation_status - First observed
list_config_templates - First observed
parse_bmc_address - First observed
prepare_cluster_destroy - First observed
prepare_cluster_installation - First observed
test_bmc_connection - First observed
validate_bmc_addresses - First observed
validate_complete_network_config - First observed
validate_install_config - First observed
validate_network_cidr - First observed
validate_vip_configuration
TDQS
Scored across 24 tools
Tools are mostly distinct, each targeting a specific task like config generation, BMC testing, network validation, or installer commands. However, test_bmc_connection and validate_bmc_addresses could be confused, though one is a live test and the other validates multiple host BMC details.
All tool names follow a consistent verb_noun pattern with lowercase and underscores, such as list_config_templates, generate_install_config, validate_vip_configuration, and get_installation_logs. The verbs vary but the pattern is uniformly applied.
24 tools is on the higher end but reasonable for the complex IPI provisioning domain, covering templates, BMC, network, and installer utilities. Some tools like parse_bmc_address and validate_network_cidr are granular, but the count is not excessive for the scope.
The tool surface covers the main lifecycle stages: config generation and validation, BMC connectivity, network checks, DNS generation, manifest creation, installation preparation, status, logs, and destroy commands. A minor gap is that actual installation execution is not performed (only the command is provided), but this is a reasonable design choice.
Maintenance
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
MCP server for Appcircle mobile CI/CD platform.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- FlicenseAqualityDmaintenanceAI-powered MCP server for enterprise OpenShift/Kubernetes cluster management, providing diagnostic tools, RAG knowledge retrieval, and autonomous remediation recommendations.9-
- FlicenseBqualityDmaintenanceAn MCP server for managing multiple OpenShift Container Platform (OCP) clusters through AI assistants.77-
- AlicenseAqualityDmaintenanceMCP server for Oracle Cloud Infrastructure (OCI) that provides tools to manage Compute, Object Storage, Block Storage, Networking, Autonomous Database, and IAM via the official OCI SDK.2367MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for bare-metal lab operations, enabling inventory, commissioning, deployment, fabric audit, and job scheduling via Hermes agent skills and a tool server.Apache 2.0