Skip to main content
Glama
ay-garg

OpenShift 4 MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_HOSTNoBind address for streamable-http transport127.0.0.1
MCP_PORTNoPort for streamable-http transport8080
OCP_MODENo`server` for MCP server, `ui` for Gradio web UIserver
OCP_TOKENNoBearer token for the service account or user
GRADIO_HOSTNoBind address for the Gradio web UI0.0.0.0
GRADIO_PORTNoPort for the Gradio web UI7860
OCP_API_URLNoAPI server URL for single-cluster token/password auth
GRADIO_SHARENoSet `true` for a temporary public Gradio URLfalse
OCP_CLUSTERSNoJSON array of named cluster configs for multi-cluster mode (e.g., [{"name":"prod","api_url":"...","token":"..."}])
OCP_PASSWORDNoPassword for `oc login`
OCP_USERNAMENoUsername for `oc login`
MCP_TRANSPORTNoTransport mode: `stdio` or `streamable-http`stdio
OCP_KUBECONFIGNoPath to a kubeconfig file~/.kube/config
OCP_VERIFY_SSLNoSet `false` to skip TLS verification for Prometheus/Alertmanager HTTP callstrue
ANTHROPIC_MODELNoModel for the AI Chat tabclaude-sonnet-5
ANTHROPIC_API_KEYNoRequired for the AI Chat tab in the Gradio UI
OCP_PROMETHEUS_URLNoPrometheus/Thanos querier URL (auto-detected if omitted)
OCP_SKIP_TLS_VERIFYNoSet `true`/`1`/`yes` to skip TLS for the k8s API clientfalse
OCP_ALERTMANAGER_URLNoAlertmanager URL (auto-derived if omitted)
OCP_PROMETHEUS_TOKENNoToken for Prometheus/Alertmanager HTTP calls (defaults to OCP_TOKEN)
OCP_KUBECONFIG_CONTEXTNoNamed context within the kubeconfig

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_cluster_infoB

Get high-level cluster information: name, API URL, version, channel, and platform type.

get_cluster_versionB

Show ClusterVersion history, conditions (Available/Progressing/Degraded), and available updates.

get_cluster_operatorsB

List all ClusterOperators with Available/Progressing/Degraded/Version columns; degraded operators are listed first.

get_cluster_operator_detailsC

Get detailed conditions, versions, and related objects for a single ClusterOperator.

get_infrastructure_configC

Get Infrastructure and Network configuration CRDs from config.openshift.io/v1.

list_nodesC

List all nodes with ROLES, STATUS, OS image, KUBELET version, and AGE.

get_nodeA

Get capacity, allocatable resources, conditions, and taints for a node.

cordon_nodeA

Cordon a node so that no new pods are scheduled on it.

uncordon_nodeA

Uncordon a node to allow new pods to be scheduled on it again.

drain_nodeA

Drain a node by evicting all evictable pods (cordons the node first).

Args: name: Name of the node to drain. ignore_daemonsets: Ignore DaemonSet-managed pods (default True). delete_emptydir_data: Allow deletion of pods with emptyDir volumes (default False). force: Force eviction of pods not managed by a controller (default False). grace_period: Seconds for graceful termination; -1 uses pod default. cluster: Named cluster to target (empty = default).

list_namespacesA

List all namespaces with STATUS, LABELS, and AGE.

create_namespaceB

Create a new namespace, optionally with labels.

Args: name: Namespace name. labels: Comma-separated KEY=VALUE pairs (e.g. "env=prod,team=platform"). cluster: Named cluster to target (empty = default).

delete_namespaceA

DESTRUCTIVE: Delete a namespace and ALL resources within it.

This action is irreversible. All pods, services, persistent volume claims, and other objects in the namespace will be permanently deleted.

Args: name: Namespace to delete. cluster: Named cluster to target (empty = default).

get_namespace_resource_quotaC

List ResourceQuotas and LimitRanges in a namespace.

list_eventsA

List the most recent 50 events, optionally filtered by namespace, field selector, or involved object name.

Args: namespace: Namespace to query (empty = all namespaces). field_selector: Kubernetes field selector (e.g. "reason=BackOff"). involved_object: Filter by involvedObject.name (appended to field_selector). cluster: Named cluster to target (empty = default).

get_etcd_statusC

Get ETCD cluster status from operator.openshift.io/v1 etcds/cluster.

list_cluster_contextsC

Show all configured MCP clusters and the active oc kubeconfig contexts.

list_podsA

List pods with NAMESPACE, NAME, STATUS, READY, RESTARTS, NODE, and AGE columns.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector (e.g. "app=nginx"). field_selector: Field selector (e.g. "status.phase=Running"). cluster: Named cluster to target (empty = default).

get_podA

Show detailed information for a pod: phase, node, IP, QoS class, container states, and conditions.

Args: name: Pod name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

get_pod_logsA

Fetch logs from a pod container.

Args: name: Pod name. namespace: Namespace (default: "default"). container: Container name (empty = first/only container). previous: Return logs from the previous container instance. tail_lines: Number of lines from the end (default 100, 0 = unlimited). since_seconds: Only return logs newer than this many seconds. cluster: Named cluster to target (empty = default).

exec_in_podB

Execute a command inside a pod via oc exec. command is split with shlex — shell metacharacters (pipes, redirects) are not interpreted.

delete_podC

Delete a pod.

Args: name: Pod name. namespace: Namespace (default: "default"). force: Force-delete immediately (grace-period=0). cluster: Named cluster to target (empty = default).

describe_podB

Run 'oc describe pod' for detailed pod information including events.

Args: name: Pod name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_deploymentsA

List Deployments with NAMESPACE, NAME, READY, UP-TO-DATE, AVAILABLE, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter deployments. cluster: Named cluster to target (empty = default).

scale_deploymentB

Scale a Deployment to the specified number of replicas.

Args: name: Deployment name. replicas: Desired replica count. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

rollout_restart_deploymentB

Trigger a rolling restart of a Deployment (equivalent to 'oc rollout restart').

Args: name: Deployment name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

rollout_undo_deploymentA

Undo a Deployment rollout, optionally to a specific revision.

Args: name: Deployment name. namespace: Namespace (default: "default"). revision: Target revision number (0 = previous revision). cluster: Named cluster to target (empty = default).

rollout_status_deploymentA

Show the rollout status of a Deployment (equivalent to 'oc rollout status').

Args: name: Deployment name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_statefulsetsA

List StatefulSets with NAMESPACE, NAME, READY, SERVICE, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter StatefulSets. cluster: Named cluster to target (empty = default).

scale_statefulsetA

Scale a StatefulSet to the specified number of replicas.

Args: name: StatefulSet name. replicas: Desired replica count. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_daemonsetsA

List DaemonSets with NAMESPACE, NAME, DESIRED, CURRENT, READY, UP-TO-DATE, AVAILABLE, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter DaemonSets. cluster: Named cluster to target (empty = default).

list_jobsA

List Jobs with NAMESPACE, NAME, COMPLETIONS, ACTIVE, SUCCEEDED, FAILED, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter Jobs. cluster: Named cluster to target (empty = default).

list_cronjobsA

List CronJobs with NAMESPACE, NAME, SCHEDULE, SUSPEND, ACTIVE, LAST RUN, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter CronJobs. cluster: Named cluster to target (empty = default).

create_job_from_cronjobA

Create a Job immediately from a CronJob template (manual trigger).

Args: cronjob_name: Source CronJob name. job_name: Name for the newly created Job. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_deployment_configsA

List OpenShift DeploymentConfigs (apps.openshift.io/v1) with NAMESPACE, NAME, REVISION, DESIRED, CURRENT, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). cluster: Named cluster to target (empty = default).

rollout_deployment_configC

Trigger a new rollout of an OpenShift DeploymentConfig (oc rollout latest dc/).

Args: name: DeploymentConfig name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_servicesA

List Services with NAMESPACE, NAME, TYPE, CLUSTER-IP, EXTERNAL-IP, PORT(S), and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter Services. cluster: Named cluster to target (empty = default).

get_serviceB

Show detailed info for a Service including selector, ports, and current Endpoints.

Args: name: Service name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

delete_serviceC

Delete a Service.

Args: name: Service name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_routesA

List OpenShift Routes (route.openshift.io/v1) with NAMESPACE, NAME, HOST/PATH, TLS, SERVICE, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). cluster: Named cluster to target (empty = default).

get_routeA

Get detailed information for an OpenShift Route including admitted status and TLS config.

Args: name: Route name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

create_routeA

Create an OpenShift Route by exposing a Service.

Uses 'oc expose' to create a basic route and then patches TLS termination and path if required.

Args: name: Route name. namespace: Namespace. service: Name of the Service to expose. host: Hostname for the route (empty = let the router assign one). path: URL path prefix (default "/"). tls_termination: TLS termination type: "edge", "passthrough", "reencrypt", or "" (no TLS). port: Target port name or number (empty = first port from Service). cluster: Named cluster to target (empty = default).

delete_routeC

Delete an OpenShift Route.

Args: name: Route name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

list_ingressesA

List Kubernetes Ingress objects with NAMESPACE, NAME, CLASS, HOSTS, ADDRESS, PORTS, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). label_selector: Label selector to filter Ingresses. cluster: Named cluster to target (empty = default).

list_network_policiesA

List NetworkPolicies with NAMESPACE, NAME, POD-SELECTOR, POLICY-TYPES, and AGE.

Args: namespace: Namespace to query (empty = all namespaces). cluster: Named cluster to target (empty = default).

delete_network_policyB

Delete a NetworkPolicy.

Args: name: NetworkPolicy name. namespace: Namespace (default: "default"). cluster: Named cluster to target (empty = default).

get_cluster_network_configA

Get the cluster-wide Network configuration from config.openshift.io/v1 networks/cluster.

Shows network type, cluster networks, service networks, and machine networks.

get_ingress_controllerA

Get an OpenShift IngressController from operator.openshift.io/v1.

Args: name: IngressController name (default: "default"). cluster: Named cluster to target (empty = default).

list_pvsC

List PersistentVolumes with capacity, access modes, storage class, reclaim policy, status, and claim.

get_pvC

Get detailed PersistentVolume info including CSI, NFS, HostPath, or EBS source.

delete_pvB

Delete a PersistentVolume. WARNING: ensure no PVC is bound before deleting.

list_pvcsB

List PersistentVolumeClaims with status, volume, capacity, access modes, and storage class.

get_pvcB

Get detailed PersistentVolumeClaim info including conditions.

create_pvcB

Create a PersistentVolumeClaim. storage_request example: 10Gi access_mode: ReadWriteOnce, ReadOnlyMany, ReadWriteMany, ReadWriteOncePod.

delete_pvcB

Delete a PersistentVolumeClaim. WARNING: data loss may occur if PVC is in use.

list_storage_classesC

List StorageClasses. The cluster default is marked with (default).

list_volume_snapshotsB

List VolumeSnapshots (snapshot.storage.k8s.io/v1) with source PVC, class, and ready status.

create_volume_snapshotB

Create a VolumeSnapshot from a PersistentVolumeClaim.

list_configmapsC

List ConfigMaps with namespace, name, key count, and age.

get_configmapA

Get ConfigMap keys and values. Values longer than 200 characters are truncated.

create_configmapB

Create a ConfigMap. data is KEY=VALUE pairs separated by newlines or commas. Example: KEY1=value1\nKEY2=value2

update_configmapC

Set or update a single key in a ConfigMap using strategic merge patch.

delete_configmapC

Delete a ConfigMap.

list_secretsB

List Secrets showing type and key count only — secret values are never displayed.

get_secret_keysA

List the key names of a Secret. Values are never shown for security.

list_service_accountsC

List ServiceAccounts with number of secrets and image pull secrets.

list_usersB

List OpenShift users with their identities and group memberships.

get_userA

Get OpenShift user details: full name, identities, and group memberships.

list_groupsB

List OpenShift Groups with member count and up to 5 member names.

create_groupC

Create an empty OpenShift Group.

add_user_to_groupB

Add a user to an OpenShift Group (atomic — uses oc adm groups add-users).

remove_user_from_groupA

Remove a user from an OpenShift Group (atomic — uses oc adm groups remove-users).

list_rolesB

List Roles in a namespace with the number of policy rules.

list_cluster_rolesB

List ClusterRoles with the number of policy rules.

list_role_bindingsA

List RoleBindings in a namespace with role reference and bound subjects.

list_cluster_role_bindingsC

List ClusterRoleBindings with role reference and bound subjects.

create_role_bindingC

Create a RoleBinding in a namespace. subject_kind: User, Group, or ServiceAccount. cluster_role: if True, references a ClusterRole instead of a Role.

delete_role_bindingC

Delete a RoleBinding.

get_user_accessB

List all actions a user can perform using 'oc auth can-i --list --as='. Specify namespace to scope the check; omit for cluster-wide actions.

list_build_configsC

List BuildConfigs with strategy type, source, last version, and age.

get_build_configB

Describe a BuildConfig in detail using oc describe bc.

start_buildC

Start a new build from a BuildConfig. Optionally supply from_dir to use a local directory as the binary source.

list_buildsC

List Builds with phase, duration, reason, and age.

get_buildC

Get detailed Build information: phase, reason, output image, and timing.

get_build_logsA

Retrieve logs for a Build. Set follow=True to stream (returns available output).

list_image_streamsC

List ImageStreams with their internal Docker repository and tag count.

list_image_stream_tagsC

List tags for an ImageStream with image digest and creation timestamp.

list_installed_operatorsB

List installed operators (ClusterServiceVersions) with display name, version, and phase.

get_operator_statusB

Get ClusterServiceVersion status: phase, conditions, and owned CRDs. If namespace is empty, all namespaces are searched for a CSV whose name matches.

list_subscriptionsC

List OLM Subscriptions with package, channel, source, current CSV, and age.

create_subscriptionA

Create an OLM Subscription to install an operator from a CatalogSource. install_mode is informational only (set via OperatorGroup, not Subscription spec).

delete_subscriptionA

Delete an OLM Subscription. Set also_delete_csv=True to also remove the currently installed CSV.

list_catalog_sourcesC

List CatalogSources with display name, type, publisher, and connection state.

list_operator_groupsC

List OperatorGroups with their target namespaces and service account.

list_install_plansC

List InstallPlans with approval mode, approved status, phase, and CSV names.

approve_install_planC

Approve a Manual InstallPlan by patching spec.approved=True.

list_operator_conditionsC

List OperatorConditions (operators.coreos.com/v2) with active condition summary.

list_machine_setsA

List MachineSets with desired/ready/available replica counts, instance type, and age.

get_machine_setB

Describe a MachineSet showing all spec and status details.

scale_machine_setA

Scale a MachineSet to the given number of replicas by patching spec.replicas. WARNING: Scaling down will cause machines (and their nodes) to be deleted.

list_machinesC

List Machines with phase, node ref, provider ID, and age.

get_machineB

Get detailed Machine info: phase, nodeRef, providerID, addresses, conditions.

delete_machineA

Delete a Machine — the Machine controller will drain and terminate the underlying node. WARNING: Destructive. The node will be cordoned, drained, and terminated.

list_machine_config_poolsC

List MachineConfigPools with rendered config, machine counts, and status flags.

get_machine_config_poolC

Get MachineConfigPool detail: conditions and machine counts.

pause_machine_config_poolC

Pause a MachineConfigPool — prevents config updates from rolling out to nodes.

unpause_machine_config_poolB

Unpause a MachineConfigPool — allows pending config updates to roll out to nodes.

list_machine_configsC

List MachineConfigs with role label (machineconfiguration.openshift.io/role), generation, and age.

list_alertsB

List active alerts from Alertmanager, optionally filtered by severity and/or state. severity: critical | warning | info state: active | suppressed | unprocessed

get_alert_detailsB

Get full labels, annotations, status, and silence info for all instances of a named alert.

list_alerting_rulesB

List PrometheusRules (monitoring.coreos.com/v1) with rule group count.

list_prometheus_rulesC

List PrometheusRules with counts of alerting rules and recording rules per resource.

query_prometheusA

Execute a PromQL instant query against Thanos Querier and return results as a table.

query_prometheus_rangeA

Execute a PromQL range query. start/end in ISO8601 or Unix timestamp; step e.g. '5m'.

list_silencesB

List Alertmanager silences with ID, state, matchers, comment, creator, and end time.

create_silenceA

Create an Alertmanager silence. matchers: comma-separated key=value or key=~regex pairs. Example: 'alertname=Watchdog,severity=~warning|critical' duration_hours: silence duration in hours (default 4).

delete_silenceB

Delete an Alertmanager silence by its ID.

get_monitoring_configB

Read the cluster-monitoring-config ConfigMap from the openshift-monitoring namespace.

list_sccsB

List all SecurityContextConstraints sorted by priority descending.

get_sccA

Get full SCC detail: volumes, capabilities, allowedCapabilities, users, and groups.

create_sccB

Create a custom SecurityContextConstraint CR. run_as_any: if True, sets RunAsAny for runAsUser and fsGroup. allow_privilege_escalation: if True, allows processes to gain more privileges than their parent (required for setuid binaries).

add_scc_to_service_accountA

Grant an SCC to a ServiceAccount via 'oc adm policy add-scc-to-user'. Equivalent to: oc adm policy add-scc-to-user system:serviceaccount::

remove_scc_from_service_accountC

Revoke an SCC from a ServiceAccount via 'oc adm policy remove-scc-from-user'.

add_cluster_role_to_userB

Grant a ClusterRole to a user via 'oc adm policy add-cluster-role-to-user'.

add_cluster_role_to_groupB

Grant a ClusterRole to a group via 'oc adm policy add-cluster-role-to-group'.

get_oauth_configC

Get the cluster OAuth configuration and identity providers from config.openshift.io/v1.

list_pod_security_violationsB

List events that indicate pod security or SCC violations (FailedCreate + security keywords).

list_hpasC

List HorizontalPodAutoscalers with min/max/current/desired replicas and metrics.

create_hpaC

Create an HPA using 'oc autoscale'. target_ref format: 'Deployment/my-app' or 'DeploymentConfig/my-dc'. cpu_percent: target CPU utilisation percentage (default 80).

delete_hpaC

Delete a HorizontalPodAutoscaler.

list_vpasB

List VerticalPodAutoscalers with update mode and target workload.

get_vpa_recommendationB

Show VPA recommendations per container: lowerBound/target/upperBound/uncappedTarget.

get_cluster_autoscalerB

Get the ClusterAutoscaler 'default' resource limits and scale-down configuration.

list_machine_autoscalersC

List MachineAutoscalers in openshift-machine-api with target MachineSet, min, max, and age.

create_machine_autoscalerA

Create a MachineAutoscaler CR targeting a MachineSet in openshift-machine-api. Requires a ClusterAutoscaler to be configured for this to take effect.

list_gitops_applicationsC

List ArgoCD Applications with sync/health status, repo, revision, destination, and age.

get_gitops_applicationA

Get ArgoCD Application details: sync/health/repo/path/destination + resources table.

sync_gitops_applicationC

Trigger a sync on an ArgoCD Application by patching the operation field.

get_gitops_application_healthA

Get per-resource health status for an ArgoCD Application.

refresh_gitops_applicationB

Force-refresh an ArgoCD Application by patching the argocd.argoproj.io/refresh annotation.

list_app_projectsB

List ArgoCD AppProjects with source repos, destinations, and cluster resource access.

list_gitops_clustersB

List ArgoCD registered clusters from Secrets with label argocd.argoproj.io/secret-type=cluster.

list_pipelinesB

List Tekton Pipelines with task count and age.

get_pipelineB

Get Tekton Pipeline details: tasks with dependencies, params, and workspaces.

list_pipeline_runsC

List Tekton PipelineRuns with pipeline name, status, duration, and age.

get_pipeline_runC

Get Tekton PipelineRun details: status, duration, and child task run references.

start_pipeline_runB

Start a Tekton PipelineRun. params is a comma-separated list of KEY=VALUE pairs.

cancel_pipeline_runC

Cancel a running Tekton PipelineRun.

list_tasksC

List Tekton Tasks with step count and age.

list_task_runsC

List Tekton TaskRuns with task name, status, duration, and age.

list_trigger_templatesB

List Tekton TriggerTemplates with template count and age.

list_event_listenersB

List Tekton EventListeners with readiness, URL, and age.

list_service_mesh_control_planesC

List ServiceMeshControlPlanes with generation, version, readiness, and age.

get_smcp_statusA

Get ServiceMeshControlPlane status: conditions and component readiness breakdown.

list_virtual_servicesA

List Istio VirtualServices with hosts, gateways, HTTP/TCP route counts, and age.

list_destination_rulesC

List Istio DestinationRules with host, subsets, TLS mode, and age.

list_peer_authenticationsC

List Istio PeerAuthentications with mTLS mode, selector, and age.

list_service_entriesC

List Istio ServiceEntries with hosts, location, ports, and age.

list_gatewaysB

List Istio Gateways with selector, ports, servers count, and age.

list_service_mesh_membersC

List ServiceMeshMemberRolls and the namespaces enrolled in each mesh.

get_dsciC

Get DSCInitialization status: phase, conditions, and component enablement.

get_data_science_clusterC

Get DataScienceCluster status: component management states.

list_data_science_projectsB

List OpenShift AI Data Science Projects (namespaces with opendatahub.io/dashboard=true label).

list_notebooksC

List Kubeflow Notebooks with state, image, CPU/memory requests, and age.

start_notebookA

Start a stopped Notebook by removing the kubeflow-resource-stopped annotation.

stop_notebookC

Stop a running Notebook by setting the kubeflow-resource-stopped annotation.

list_model_serversC

List ServingRuntimes and ClusterServingRuntimes with scope, formats, multi-model, and age.

list_inference_servicesC

List InferenceServices with readiness, model format, storage URI, URL, and age.

create_inference_serviceC

Create a KServe InferenceService CR.

delete_inference_serviceC

Delete a KServe InferenceService.

list_data_science_pipelinesB

List DataSciencePipelinesApplications with readiness, storage, and API endpoint.

list_model_registriesC

List ModelRegistries with availability, REST port, gRPC port, and age.

get_rhoai_component_statusB

Check RHOAI/OpenShift AI overall health: pods in RHOAI namespaces, DSC/DSCI status, CRD presence.

list_virtual_machinesC

List VirtualMachines with status, vCPU, memory, and age.

get_virtual_machineB

Get detailed VM info: running state, resources, interfaces, disks, conditions.

start_virtual_machineB

Start a VirtualMachine by setting spec.running=true.

stop_virtual_machineB

Stop a VirtualMachine by setting spec.running=false.

restart_virtual_machineC

Restart a VirtualMachine using virtctl.

pause_virtual_machineC

Pause a running VirtualMachine using virtctl.

unpause_virtual_machineC

Unpause a paused VirtualMachine using virtctl.

create_virtual_machineC

Create a VirtualMachine. Provide image_url (HTTP) or pvc_name (existing PVC).

delete_virtual_machineC

Delete a VirtualMachine (stop it first if running).

list_virtual_machine_instancesA

List running VirtualMachineInstances with node, IP, and phase.

live_migrate_vmC

Live migrate a VirtualMachineInstance to another node.

list_data_volumesC

List DataVolumes with phase, progress, capacity, and source type.

list_vm_snapshotsC

List VirtualMachineSnapshots with phase, source VM, and ready status.

create_vm_snapshotC

Create a VirtualMachineSnapshot of a VM.

restore_vm_snapshotC

Restore a VM from a VirtualMachineSnapshot.

list_konflux_applicationsC

List Konflux Applications in a workspace namespace.

get_konflux_applicationC

Get Konflux Application details including conditions.

list_componentsB

List Konflux Components with source repo, branch, and build status.

get_componentB

Get detailed Konflux Component info including GitOps repo and nudges.

create_componentC

Create a Konflux Component.

list_snapshotsC

List Konflux Snapshots with components and integration test status.

get_snapshot_statusC

Get Snapshot with integration test results and component images.

list_integration_test_scenariosC

List Konflux IntegrationTestScenarios.

list_release_plansC

List Konflux ReleasePlans with target workspace.

list_releasesC

List Konflux Releases with snapshot, status, and target workspace.

list_component_pipeline_runsB

List Tekton PipelineRuns associated with Konflux components.

list_managed_clustersB

List ACM ManagedClusters with status, OCP version, cloud provider, and region.

get_managed_clusterB

Get detailed ManagedCluster info: capacity, conditions, labels.

list_cluster_setsC

List ACM ManagedClusterSets.

list_cluster_claimsC

List ACM ClusterClaims with pool and resolved cluster.

list_placementsC

List ACM Placements with predicates and satisfaction status.

get_placement_decisionsA

List PlacementDecisions for a Placement showing selected clusters.

list_policiesC

List ACM Policies with remediation action and compliance status.

get_policy_complianceC

Show per-cluster compliance status for an ACM Policy.

list_manifest_worksB

List ManifestWorks deployed to a ManagedCluster (namespace=cluster_name).

create_manifest_workC

Create a ManifestWork to deploy resources to a ManagedCluster.

list_managed_cluster_addonsC

List ManagedClusterAddons on a specific managed cluster.

apply_manifestC

Apply a YAML or JSON manifest to the cluster via 'oc apply -f -'. WARNING: This applies resources directly. Review manifests before applying.

delete_resourceC

Delete any Kubernetes/OpenShift resource by type and name. WARNING: Destructive operation. Confirm the resource name before proceeding.

get_resourceB

Get any resource in YAML, JSON, or wide format. Use output='describe' for oc describe.

list_custom_resourcesC

List any custom resource by group/version/plural — works for any CRD.

run_oc_commandA

Escape hatch: run any oc command. args is a space-separated string of arguments. WARNING: Use carefully. Destructive commands should be confirmed first.

list_crdsB

List all CustomResourceDefinitions with group, stored versions, and scope.

Prompts

Interactive templates invoked by user choice

NameDescription
troubleshoot_podStep-by-step runbook for diagnosing a failing or misbehaving pod.
debug_network_connectivityStep-by-step runbook for diagnosing network connectivity between pods/services.
investigate_node_pressureStep-by-step runbook for diagnosing and resolving node resource pressure.
plan_cluster_upgradeStep-by-step runbook for safely upgrading an OpenShift cluster to a new version.
setup_new_projectStep-by-step runbook for provisioning a new OpenShift project with proper guardrails.
deploy_ml_modelStep-by-step runbook for deploying an ML model using OpenShift AI (RHOAI).
investigate_cluster_degradationStep-by-step runbook for investigating a degraded or unhealthy cluster.
migrate_vm_workloadStep-by-step runbook for live-migrating a KubeVirt VM to another node.
debug_operator_installStep-by-step runbook for diagnosing a stuck or failed operator installation.
configure_gitops_applicationStep-by-step runbook for deploying an application via OpenShift GitOps (ArgoCD).

Resources

Contextual data attached and managed by the client

NameDescription
cluster_infoCurrent cluster version and infrastructure summary.
cluster_nodesList all cluster nodes with role, ready status, OS image, kubelet version, and age.
cluster_operatorsList all cluster operators sorted degraded-first, with available/progressing/degraded status.
cluster_alertsList currently firing alerts from Alertmanager.

TDQS

B3/5.0

Scored across 216 tools

Disambiguation5/5

Every tool name includes a specific action and resource type (e.g., list_pods, get_pod, scale_deployment), making each tool's purpose clear and distinct. Even with 216 tools, the consistent naming prevents ambiguity, and generic escape hatches like run_oc_command are explicitly labeled.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (list_, get_, create_, delete_, scale_, rollout_*, etc.), with resource types as the noun. Deviations like apply_manifest and get_resource still adhere to the same structure, ensuring predictability.

Tool Count1/5

216 tools is extreme and far exceeds any reasonable scope for an MCP server. Even for a comprehensive OpenShift management platform, this count is overwhelming and will likely confuse agents, making tool selection difficult. It falls into the 'extreme mismatch' category.

Completeness4/5

The tool set covers an extensive range of OpenShift domains including compute, networking, storage, security, operators, machine management, monitoring, service mesh, OpenShift AI, virtualization, GitOps, Tekton, and ACM. However, some resource types lack individual get/update/delete operations (e.g., Deployments have no get or delete), relying on generic tools like get_resource and delete_resource, creating minor gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues