Assisted Service MCP Server

by carbonin

179 downloads Not rated yet

About

MCP server for interracting with the OpenShift Assisted Installer API

Explore

- List, create, and manage assisted installer clusters
- Retrieve detailed cluster and infraenv information
- Monitor cluster and host events
- Set cluster VIPs and host roles
- List OpenShift versions and operator bundles

infraenv_info - Get detailed information about the assisted installer infra env with the given ID. Contains data like ISO download URL and infra env metadata.
infraenv_id: Infrastructure environment ID (string, required)

List all clusters: "Show me all my clusters"
Get cluster details: "Give me detailed information about cluster abc123"
Create a cluster: "Create a new cluster named 'my-cluster' with OpenShift 4.14 and base domain 'example.com'"
Check cluster events: "What events happened on cluster abc123?"

  • Install a cluster: "Start the installation for cluster abc123"

The MCP server provides the following tools for interacting with the OpenShift Assisted Installer:

MCP server for interacting with the OpenShift assisted installer API.

Diagnose cluster failures and find out how to fix them.

Try it out:

1. Clone the repo:

git clone [email protected]:carbonin/assisted-service-mcp.git

2. Get your OpenShift API token from https://cloud.redhat.com/openshift/token

3. The server is started and configured differently depending on what transport you want to use

For STDIO:

In VSCode for example:

   "mcp": {
"servers": {
"AssistedService": {
"command": "uv",
"args": [
"--directory",
"/path/to/assisted-service-mcp",
"run",
"mcp",
"run",
"/path/to/assisted-service-mcp/server.py"
],
"env": {
"OFFLINE_TOKEN": <your token>
}
}
}
}

For SSE (recommended):

Start the server in a terminal:

OFFLINE_TOKEN=<your token> uv run server.py

Configure the server in the client:

    "assisted-sse": {
      "transport": "sse",
      "url": "http://localhost:8000/sse"
    }

Providing the Offline Token via Request Header

If you do not set the OFFLINE_TOKEN environment variable, you can provide the token as a request header.
When configuring your MCP client, add the OCM-Offline-Token header:

    "assisted-sse": {
      "transport": "sse",
      "url": "http://localhost:8000/sse",
      "headers": {
        "OCM-Offline-Token": "<your token>"
      }
    }

4. Ask about your clusters:
Example prompt asking about a cluster

Available Tools

The MCP server provides the following tools for interacting with the OpenShift Assisted Installer:

Cluster Management

list_clusters - Lists all current user assisted installer clusters. Returns minimal cluster information.

cluster_info - Get detailed information about the assisted installer cluster with the given ID
cluster_id: Cluster ID (string, required)

create_cluster - Create a new assisted installer cluster and infraenv. Set single_node to true only for single node clusters or when high availability is not needed. Returns cluster ID and infraenv ID as JSON.
name: Cluster name (string, required)
version: OpenShift version (string, required)
base_domain: Base domain for the cluster (string, required)
single_node: Whether to create a single node cluster (boolean, required)

install_cluster - Trigger installation for the assisted installer cluster with the given ID
cluster_id: Cluster ID (string, required)

set_cluster_vips - Set the API and ingress virtual IP addresses (VIPs) for the cluster
cluster_id: Cluster ID (string, required)
api_vip: API virtual IP address (string, required)
ingress_vip: Ingress virtual IP address (string, required)

Events and Monitoring

cluster_events - Get the events related to a cluster with the given ID
cluster_id: Cluster ID (string, required)

host_events - Get the events related to a specific host within a cluster
cluster_id: Cluster ID (string, required)
host_id: Host ID (string, required)

Infrastructure Environment

infraenv_info - Get detailed information about the assisted installer infra env with the given ID. Contains data like ISO download URL and infra env metadata.
infraenv_id: Infrastructure environment ID (string, required)

Host Management

set_host_role - Update a host to a specific role. Role options are: 'auto-assign', 'master', 'arbiter', 'worker'
host_id: Host ID (string, required)
infraenv_id: Infrastructure environment ID (string, required)
role: Host role (string, required)

OpenShift Versions and Operators

list_versions - Lists the available OpenShift versions for installation with the assisted installer

list_operator_bundles - Lists the operator bundles that can be optionally added to a cluster during installation

add_operator_bundle_to_cluster - Request an operator bundle to be installed with the given cluster
cluster_id: Cluster ID (string, required)
bundle_name: Operator bundle name (string, required)

Usage Examples

List all clusters: "Show me all my clusters"
Get cluster details: "Give me detailed information about cluster abc123"
Create a cluster: "Create a new cluster named 'my-cluster' with OpenShift 4.14 and base domain 'example.com'"
Check cluster events: "What events happened on cluster abc123?"

  • Install a cluster: "Start the installation for cluster abc123"

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.