Openshift-mcp-server (cskaruppu/Openshift-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 46 out of 100, grade D. It declares 177 tools. No publisher has claimed this listing.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
cskaruppu
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
list_managed_clustersList all clusters managed by Red Hat Advanced Cluster Management (ACM)
get_managed_cluster_detailsGet detailed information about a specific ACM managed cluster
list_acm_policiesList governance policies across managed clusters (ACM)
search_across_clustersSearch for resources across all ACM managed clusters using the search API
list_ansible_job_templatesList available Ansible Automation Platform job templates for OpenShift remediation
launch_ansible_jobLaunch an Ansible job template to remediate an OpenShift issue (use after ITSM approval)
check_ansible_job_statusCheck the status of a running Ansible job
list_ansible_inventoriesList available Ansible inventories
list_ansible_workflowsList Ansible workflow templates for multi-step remediation
launch_ansible_workflowLaunch an Ansible workflow template for complex multi-step remediation
app_watch_namespacesAdd or list namespaces being watched for application code/config changes at the pod level
app_change_scanScan watched namespaces for application changes (image updates, config changes, env var modifications, replica changes)
app_change_historyView the history of detected application changes across watched namespaces
app_change_rollbackRollback a workload to its previous baseline state (reverts image, env, replicas to the snapshot before the change)
app_gitops_driftCheck ArgoCD/OpenShift GitOps applications for drift between live state and Git-desired state
run_kube_burnerRun kube-burner cluster density/stress tests. Creates a Job that runs kube-burner with the specified workload profile.
run_storage_benchmarkRun FIO storage performance benchmarks. Tests IOPS, throughput, and latency for a given storage class.
run_network_testTest network throughput, latency, or packet loss between pods using iperf3.
run_cpu_stress_testRun CPU and/or memory stress tests on worker nodes using stress-ng.
run_database_benchmarkRun database performance benchmarks using pgbench (PostgreSQL) or sysbench (MySQL).
get_cluster_infoGet OpenShift cluster version, status, and configuration details
get_cluster_eventsGet recent cluster events, optionally filtered by namespace or type (Warning/Normal)
get_cluster_resource_usageGet cluster-wide resource allocation and usage summary (CPU, memory) across all nodes
compliance_checkRun CIS Kubernetes Benchmark and OpenShift hardening checks against the cluster. Returns pass/fail with remediation commands for each control.
get_dashboard_summaryGet a comprehensive cluster summary suitable for the MCP AI Assistant dashboard — nodes, pods, deployments, health, alerts
deploy_from_documentParse a document (Word or text) describing an application, extract deployment intent, generate Kubernetes/OpenShift manifests, and deploy
diagnose_pod_issuesAnalyze a pod for common issues (CrashLoopBackOff, ImagePullBackOff, OOMKilled, pending scheduling) and suggest fixes
diagnose_namespace_healthPerform a health check on all workloads in a namespace — find failing pods, unhealthy deployments, quota issues
cluster_health_checkPerform a comprehensive cluster health check — nodes, operators, etcd, critical pods, certificate expiry
drift_detectCompare two ACM-managed clusters and detect configuration drift: image version mismatches, resource differences, policy compliance gaps, and security posture differences
emergency_fixExecute an emergency fix: creates an emergency change request in ServiceNow, performs the fix immediately, and sends notification. Use only for critical production issues.
approved_fixExecute a fix after ITSM change request has been approved. Checks approval status before executing.
generic_getGet any Kubernetes resource by apiVersion, kind, and name
generic_listList any Kubernetes resources by apiVersion and kind, with optional selectors
generic_createCreate any Kubernetes resource from a JSON manifest
generic_deleteDelete any Kubernetes resource by apiVersion, kind, and name
generic_scaleGet or update the scale of any scalable Kubernetes resource (Deployment, StatefulSet, ReplicaSet, etc.)
generic_applyApply (server-side patch) a Kubernetes resource from a JSON manifest
gitops_list_applicationsList all ArgoCD / OpenShift GitOps applications with sync and health status
gitops_get_applicationGet detailed status of an ArgoCD application including sync, health, source, managed resources, conditions, and operation state
gitops_sync_applicationTrigger a sync operation for an ArgoCD application to reconcile it with the desired state in Git
gitops_app_diffShow resources that are out of sync in an ArgoCD application — what differs between the live state and Git
gitops_list_appprojectsList ArgoCD AppProjects with their allowed source repos, destinations, and roles
gitops_application_rollbackRollback an ArgoCD application to a specific Git revision (SHA or tag) by updating targetRevision and triggering a sync
gpu_inventoryGPU hardware on this cluster, read from the Kubernetes API: per-node model, count, allocated vs free, memory per GPU, driver version and MIG capability, plus which pods are holding GPUs. Works without Prometheus.
gpu_stack_checkWhether this cluster has GPU hardware and whether the NVIDIA GPU Operator is installed and working. Answers from the API server, so it is valid even when monitoring is broken.
gpu_overviewFull GPU fleet view: inventory from the Kubernetes API, enriched with live DCGM utilisation, memory, temperature, power and error counters when the exporter is being scraped.
helm_listList installed Helm releases by querying Helm's secret-based storage backend (secrets with label owner=helm)
helm_installInstall a Helm chart into a namespace. Since Helm chart rendering requires the Helm CLI, this tool records the intent and provides the equivalent CLI command or suggests an Ansible playbook.
helm_uninstallUninstall a Helm release by deleting its release secrets from the namespace
helm_statusGet the status of a Helm release including its current revision, status, and metadata
helm_historyGet the revision history of a Helm release showing all past and current versions
image_vuln_scanScan deployed container images for security vulnerabilities (CVEs, supply chain risks, image hygiene, compliance). Uses Quay CSO if available, otherwise static analysis. Reports CVSS scores, compliance badges, and image age.
image_vuln_reportGet detailed vulnerability report for a specific image or view scan history
image_compliance_checkCheck image supply chain compliance — signing, SBOM, digest pinning, registry trust, CIS benchmarks
predict_impactPredict the impact of a cluster change before executing it: resource pressure, quota usage, PDB violations, and dependency effects
kubevirt_list_vmsList KubeVirt virtual machines in a namespace (or all namespaces)
kubevirt_get_vmGet detailed information about a specific KubeVirt virtual machine
kubevirt_start_vmStart a KubeVirt virtual machine by creating a VirtualMachineInstance
kubevirt_stop_vmStop a running KubeVirt virtual machine
kubevirt_restart_vmRestart a running KubeVirt virtual machine
kubevirt_list_vmisList running KubeVirt VirtualMachineInstances (VMIs) in a namespace or cluster-wide
kubevirt_create_vmProvision an OpenShift Virtualization (KubeVirt) virtual machine with a PERSISTENT root disk and cloud-init access. Supports dry-run. Prefer a golden image (sourceDataSource) plus an instanceType/preference over raw cpu/memory.
kubevirt_lifecycle_reportReport on VMs this platform provisioned: fleet inventory with provenance, VMs past their decommission date, and VMs whose real usage no longer matches the size chosen for them. Read-only — every recommendation carries a change request for a human to approve.
kubevirt_vm_accessHow to connect to a virtual machine: the cloud-init user, reported IP addresses, guest agent state, and the exact virtctl/ssh commands to use.
kubevirt_list_templatesList what can be provisioned on this cluster: golden image DataSources, VirtualMachineClusterInstancetypes (sizes) and VirtualMachineClusterPreferences (guest OS tuning).
pods_topList resource consumption (CPU and memory) for Kubernetes Pods via metrics-server
nodes_topList resource consumption (CPU and memory) for Kubernetes Nodes via metrics-server
mustgather_cluster_snapshotCollect a diagnostic snapshot of the cluster (lightweight must-gather)
mustgather_namespace_dumpCollect diagnostic info for a specific namespace
mustgather_etcd_healthCheck etcd cluster health and performance
mustgather_certificate_checkCheck for expiring certificates in the cluster
mustgather_resource_quotasCheck resource quotas and limit ranges across namespaces
list_namespacesList all namespaces/projects in the OpenShift cluster with status and labels
get_namespace_detailsGet detailed information about a namespace including resource quotas, limit ranges, and workloads summary
net_check_endpointsCheck service endpoints and endpoint slices
net_get_routesList OpenShift routes
net_get_ingressesList Kubernetes ingresses
net_get_networkpoliciesList network policies in a namespace
net_get_coredns_configGet CoreDNS / DNS operator configuration
net_check_serviceCheck if a service is healthy (service + endpoints + pods)
net_get_route_detailGet detailed info about a specific OpenShift route
list_nodesList all OpenShift cluster nodes with status, roles, and resource capacity
get_node_detailsGet detailed information about a specific node including conditions, addresses, and resource usage
nodes_logGet logs from a Kubernetes node (kubelet, kube-proxy, or other system service logs)
check_kubelet_statusCheck kubelet health and recent logs across all cluster nodes. Reports service status and error/warning counts.
check_crio_statusCheck CRI-O container runtime health and recent logs across all cluster nodes.
nodes_stats_summaryGet detailed resource usage statistics from a node via kubelet's Summary API
notify_sendSend a custom notification to Slack, Teams, or PagerDuty
notify_alertsForward currently firing Alertmanager alerts to a notification channel
notify_health_reportSend the latest scheduled cluster health report to a notification channel
notify_testSend a test notification to verify a channel is correctly configured
notify_pagerduty_resolveResolve a PagerDuty incident by dedup key
notify_channels_statusShow which notification channels are configured (does not send anything)
operator_healthCheck health of all installed operators: CSV phase, subscription status, InstallPlan approval, and CatalogSource availability
operator_upgrade_checkCheck which operators have pending upgrades and their approval strategy
ossm_mesh_graphGet service mesh topology graph showing namespaces, health, and traffic flow
ossm_istio_config_readList or get Istio configuration objects (VirtualService, DestinationRule, Gateway, etc.)
ossm_istio_config_writeCreate, patch, or delete Istio configuration objects
ossm_get_resource_detailsGet details or list services/workloads within the service mesh
77 further tools are not listed here. The complete surface is in the source.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources
js-yaml: YAML merge-key chains can force quadratic CPU consumption
JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported
Undici: Malicious WebSocket 64-bit length overflows parser and crashes the client
Undici has Unhandled Exception in WebSocket Client Due to Invalid server_max_window_bits Validation
ACCESS_LEVELACTION_AUTO_APPROVEACTION_ROLLOUT_POLL_MSACTION_ROLLOUT_TIMEOUT_MSAGENT_CERT_DAYSAGENT_MAX_STEPSAGENT_MAX_TOOLS_PER_STEPAGENT_NAMESPACEALERTMANAGER_URLALLOWED_NAMESPACESALLOW_INSECURE_DOC_URLSAPP_CHANGE_SCAN_INTERVALAUTH_MODEPasswords are hashed with Node.js scryptSync (16-byte random salt, salt:hash format) and verified with timingSafeEqual. Auth mode is set via env var: password (default), token, or none.AZURE_CLIENT_IDAZURE_OPENAI_API_VERSIONAZURE_OPENAI_DEPLOYMENTAZURE_TENANT_IDAZURE_USE_MANAGED_IDENTITYBUILD_HASHCHANGE_LEDGER_RETENTION_DAYSCHAT_CACHE_TTLCLUSTER_NAMEUnique cluster name (hub-cluster on the management cluster; e.g. prod-east elsewhere)CLUSTER_PLATFORMopenshift, rancher, eks, aks, gke, or k8sCLUSTER_STORE_ENABLEDCONTEXT_CACHE_TTLDASHBOARD_DIRDASHBOARD_URLDEPLOYMENT_NAMEUsed by the dashboard's ⋮ → Redeploy actionENABLED_COMPONENTSFEDERATION_TLS_SKIP_VERIFYFLEET_MEMORY_ENABLEDFLEET_MEMORY_FILEFLEET_SCAN_ENABLEDHEALTH_CHECK_INTERVAL_MSHTTPS_PROXYHTTP_PROXYHUB_AGENT_CLUSTERHUB_API_TOKENHUB_CLUSTER_NAMEHUB_EXTERNAL_URLHUB_SERVER_URLHUB_TLS_SKIP_VERIFYHUB_URLManagement bundle URL (the dashboard route)IMAGE_VULN_SCAN_INTERVALINCIDENT_ATTACH_RCAINCIDENT_AUTO_ACTINCIDENT_AUTO_CLOSE_DUPLICATESINCIDENT_AUTO_DETECTINCIDENT_AUTO_SEVERITY_FLOORINCIDENT_CHRONIC_ACTIVITY_OVERRIDEINCIDENT_CHRONIC_HOURSINCIDENT_ESCALATE_AFTERINCIDENT_LLM_TIMEOUT_MSINCIDENT_MAX_ACTIVEINCIDENT_MAX_TICKETS_PER_HOURINCIDENT_POLL_INTERVAL_MSINCIDENT_RECURRENCE_GAP_MINUTESINCIDENT_RESTART_FUTILITYINCIDENT_RESTART_WINDOW_MINUTESINCIDENT_SELFHEAL_SCANSINCIDENT_SETTINGS_PATHINCIDENT_THRESHOLDSINCIDENT_VERIFY_ATTEMPTSINCIDENT_VERIFY_DELAY_MSK8S_API_URLK8S_FETCH_TIMEOUT_MSK8S_TOKENKUBECONFIGKUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORTLLM_API_KEYLLM_API_URLLLM_MODELLLM_PROVIDERLLM_SETTINGS_PATHMCP_ADMIN_PASSWORDMCP_API_TOKENMCP_DATA_DIRMCP_DISABLE_DESTRUCTIVEMCP_HUB_CONFIGMCP_IMAGEMCP_MODEStateful — all data on PersistentVolumeClaimsMCP_NAMESPACEUsed by the dashboard's ⋮ → Redeploy actionMCP_READ_ONLYMCP_REDACTION_ENABLEDMCP_SERVER_PORTMCP_TRANSPORTMIGRATION_HISTORY_RETENTION_DAYSMODEL_PRICINGMODEL_PRICING_AS_OFNAMESPACENLU_LLM_THRESHOLDNOTIF_SETTINGS_PATHOAUTH_CLIENT_IDOAUTH_CLIENT_SECRETOAUTH_REDIRECT_URIOPENSHIFT_API_URLOPENSHIFT_OAUTH_URLOPENSHIFT_TOKENORCHESTRATOR_MAX_STEPSORCHESTRATOR_MAX_TOOLS_PER_STEPOTEL_EXPORTER_OTLP_ENDPOINTPASSWORD_MAX_AGE_DAYSPLATFORMPREFLIGHT_TIMEOUT_MSPROACTIVE_SCAN_INTERVALPROMETHEUS_CA_FILEPROMETHEUS_CONNECT_TIMEOUT_MSPROMETHEUS_INSECUREPROMETHEUS_TOKENPROMETHEUS_URLRATE_LIMIT_BURSTRATE_LIMIT_REFILLRESOURCE_INDEX_TTL_MSSERVICENOW_ASSIGNMENT_GROUPSERVICENOW_CHANGE_REVIEW_STATESERVICENOW_INSTANCESERVICENOW_PASSWORDSERVICENOW_USERNAMESESSION_TTLSLACK_SIGNING_SECRETSNOW_SETTINGS_PATHSPOKE_DNS_SERVERSPOKE_EXTERNAL_URLSUMMARY_KEEP_RECENTSUMMARY_TRIGGER_ATTCS_AGENTIC_BEARERTCS_AGENTIC_URLTCS_AGENT_IDVM_APPROVAL_INTERVAL_SEChttp_proxyhttps_proxyFOUNDRY_PROJECT_ENDPOINTFOUNDRY_MODELPORTTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
177/177 tools missing one or more hints — list_managed_clusters (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_managed_cluster_details (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_acm_policies (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +174 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
161/177 tool handlers declare input schemas (91%)
Declare an inputSchema with zod/joi/yup on every tool definition.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tool test coverage
Only 16/177 tools referenced in tests (9%)
Write tests that reference each tool by name so every tool has at least one test.
Shell command execution
2 calls in production code run through a shell (src/platform/k8s-client.js:81, src/platform/k8s-client.js:82)
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
Secrets stay with their owner
3 secrets sent to a request target we could not resolve (OAUTH_CLIENT_SECRET → dynamic, SERVICENOW_PASSWORD → dynamic) — often a configured endpoint, not necessarily third-party
Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.
Production dependencies are patched
0 critical, 7 high severity in production deps — js-yaml@4.1.1 (high), js-yaml@4.1.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Dev dependencies
2 critical/high in dev-only deps (does not ship to users)
Upgrade dev dependencies when convenient.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/cskaruppu/openshift-mcp-server)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check