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

Code Verified⚡ Live Monitored: not connected

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

Is this your MCP?

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.

// key findings
🚨
Secret credentials may flow to a network call
6 flows detected: OPENSHIFT_TOKEN, PAGERDUTY_ROUTING_KEY, OAUTH_CLIENT_SECRET. We can’t prove the destination matches the brand the credential belongs to.
⚠️
Known vulnerabilities in dependencies: 9 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
🔐
You'll be asked for 11 credentials: HUB_API_TOKEN, K8S_TOKEN, LLM_API_KEY, MCP_ADMIN_PASSWORD, MCP_API_TOKEN, OAUTH_CLIENT_SECRET, OPENSHIFT_TOKEN, PROMETHEUS_TOKEN, SERVICENOW_PASSWORD, SLACK_SIGNING_SECRET, TCS_AGENTIC_BEARER
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes177 tools

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_clusters

List all clusters managed by Red Hat Advanced Cluster Management (ACM)

get_managed_cluster_details

Get detailed information about a specific ACM managed cluster

list_acm_policies

List governance policies across managed clusters (ACM)

search_across_clusters

Search for resources across all ACM managed clusters using the search API

list_ansible_job_templates

List available Ansible Automation Platform job templates for OpenShift remediation

launch_ansible_job

Launch an Ansible job template to remediate an OpenShift issue (use after ITSM approval)

check_ansible_job_status

Check the status of a running Ansible job

list_ansible_inventories

List available Ansible inventories

list_ansible_workflows

List Ansible workflow templates for multi-step remediation

launch_ansible_workflow

Launch an Ansible workflow template for complex multi-step remediation

app_watch_namespaces

Add or list namespaces being watched for application code/config changes at the pod level

app_change_scan

Scan watched namespaces for application changes (image updates, config changes, env var modifications, replica changes)

app_change_history

View the history of detected application changes across watched namespaces

app_change_rollback

Rollback a workload to its previous baseline state (reverts image, env, replicas to the snapshot before the change)

app_gitops_drift

Check ArgoCD/OpenShift GitOps applications for drift between live state and Git-desired state

run_kube_burner

Run kube-burner cluster density/stress tests. Creates a Job that runs kube-burner with the specified workload profile.

run_storage_benchmark

Run FIO storage performance benchmarks. Tests IOPS, throughput, and latency for a given storage class.

run_network_test

Test network throughput, latency, or packet loss between pods using iperf3.

run_cpu_stress_test

Run CPU and/or memory stress tests on worker nodes using stress-ng.

run_database_benchmark

Run database performance benchmarks using pgbench (PostgreSQL) or sysbench (MySQL).

get_cluster_info

Get OpenShift cluster version, status, and configuration details

get_cluster_events

Get recent cluster events, optionally filtered by namespace or type (Warning/Normal)

get_cluster_resource_usage

Get cluster-wide resource allocation and usage summary (CPU, memory) across all nodes

compliance_check

Run CIS Kubernetes Benchmark and OpenShift hardening checks against the cluster. Returns pass/fail with remediation commands for each control.

get_dashboard_summary

Get a comprehensive cluster summary suitable for the MCP AI Assistant dashboard — nodes, pods, deployments, health, alerts

deploy_from_document

Parse a document (Word or text) describing an application, extract deployment intent, generate Kubernetes/OpenShift manifests, and deploy

diagnose_pod_issues

Analyze a pod for common issues (CrashLoopBackOff, ImagePullBackOff, OOMKilled, pending scheduling) and suggest fixes

diagnose_namespace_health

Perform a health check on all workloads in a namespace — find failing pods, unhealthy deployments, quota issues

cluster_health_check

Perform a comprehensive cluster health check — nodes, operators, etcd, critical pods, certificate expiry

drift_detect

Compare two ACM-managed clusters and detect configuration drift: image version mismatches, resource differences, policy compliance gaps, and security posture differences

emergency_fix

Execute an emergency fix: creates an emergency change request in ServiceNow, performs the fix immediately, and sends notification. Use only for critical production issues.

approved_fix

Execute a fix after ITSM change request has been approved. Checks approval status before executing.

generic_get

Get any Kubernetes resource by apiVersion, kind, and name

generic_list

List any Kubernetes resources by apiVersion and kind, with optional selectors

generic_create

Create any Kubernetes resource from a JSON manifest

generic_delete

Delete any Kubernetes resource by apiVersion, kind, and name

generic_scale

Get or update the scale of any scalable Kubernetes resource (Deployment, StatefulSet, ReplicaSet, etc.)

generic_apply

Apply (server-side patch) a Kubernetes resource from a JSON manifest

gitops_list_applications

List all ArgoCD / OpenShift GitOps applications with sync and health status

gitops_get_application

Get detailed status of an ArgoCD application including sync, health, source, managed resources, conditions, and operation state

gitops_sync_application

Trigger a sync operation for an ArgoCD application to reconcile it with the desired state in Git

gitops_app_diff

Show resources that are out of sync in an ArgoCD application — what differs between the live state and Git

gitops_list_appprojects

List ArgoCD AppProjects with their allowed source repos, destinations, and roles

gitops_application_rollback

Rollback an ArgoCD application to a specific Git revision (SHA or tag) by updating targetRevision and triggering a sync

gpu_inventory

GPU 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_check

Whether 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_overview

Full 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_list

List installed Helm releases by querying Helm's secret-based storage backend (secrets with label owner=helm)

helm_install

Install 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_uninstall

Uninstall a Helm release by deleting its release secrets from the namespace

helm_status

Get the status of a Helm release including its current revision, status, and metadata

helm_history

Get the revision history of a Helm release showing all past and current versions

image_vuln_scan

Scan 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_report

Get detailed vulnerability report for a specific image or view scan history

image_compliance_check

Check image supply chain compliance — signing, SBOM, digest pinning, registry trust, CIS benchmarks

predict_impact

Predict the impact of a cluster change before executing it: resource pressure, quota usage, PDB violations, and dependency effects

kubevirt_list_vms

List KubeVirt virtual machines in a namespace (or all namespaces)

kubevirt_get_vm

Get detailed information about a specific KubeVirt virtual machine

kubevirt_start_vm

Start a KubeVirt virtual machine by creating a VirtualMachineInstance

kubevirt_stop_vm

Stop a running KubeVirt virtual machine

kubevirt_restart_vm

Restart a running KubeVirt virtual machine

kubevirt_list_vmis

List running KubeVirt VirtualMachineInstances (VMIs) in a namespace or cluster-wide

kubevirt_create_vm

Provision 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_report

Report 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_access

How 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_templates

List what can be provisioned on this cluster: golden image DataSources, VirtualMachineClusterInstancetypes (sizes) and VirtualMachineClusterPreferences (guest OS tuning).

pods_top

List resource consumption (CPU and memory) for Kubernetes Pods via metrics-server

nodes_top

List resource consumption (CPU and memory) for Kubernetes Nodes via metrics-server

mustgather_cluster_snapshot

Collect a diagnostic snapshot of the cluster (lightweight must-gather)

mustgather_namespace_dump

Collect diagnostic info for a specific namespace

mustgather_etcd_health

Check etcd cluster health and performance

mustgather_certificate_check

Check for expiring certificates in the cluster

mustgather_resource_quotas

Check resource quotas and limit ranges across namespaces

list_namespaces

List all namespaces/projects in the OpenShift cluster with status and labels

get_namespace_details

Get detailed information about a namespace including resource quotas, limit ranges, and workloads summary

net_check_endpoints

Check service endpoints and endpoint slices

net_get_routes

List OpenShift routes

net_get_ingresses

List Kubernetes ingresses

net_get_networkpolicies

List network policies in a namespace

net_get_coredns_config

Get CoreDNS / DNS operator configuration

net_check_service

Check if a service is healthy (service + endpoints + pods)

net_get_route_detail

Get detailed info about a specific OpenShift route

list_nodes

List all OpenShift cluster nodes with status, roles, and resource capacity

get_node_details

Get detailed information about a specific node including conditions, addresses, and resource usage

nodes_log

Get logs from a Kubernetes node (kubelet, kube-proxy, or other system service logs)

check_kubelet_status

Check kubelet health and recent logs across all cluster nodes. Reports service status and error/warning counts.

check_crio_status

Check CRI-O container runtime health and recent logs across all cluster nodes.

nodes_stats_summary

Get detailed resource usage statistics from a node via kubelet's Summary API

notify_send

Send a custom notification to Slack, Teams, or PagerDuty

notify_alerts

Forward currently firing Alertmanager alerts to a notification channel

notify_health_report

Send the latest scheduled cluster health report to a notification channel

notify_test

Send a test notification to verify a channel is correctly configured

notify_pagerduty_resolve

Resolve a PagerDuty incident by dedup key

notify_channels_status

Show which notification channels are configured (does not send anything)

operator_health

Check health of all installed operators: CSV phase, subscription status, InstallPlan approval, and CatalogSource availability

operator_upgrade_check

Check which operators have pending upgrades and their approval strategy

ossm_mesh_graph

Get service mesh topology graph showing namespaces, health, and traffic flow

ossm_istio_config_read

List or get Istio configuration objects (VirtualService, DestinationRule, Gateway, etc.)

ossm_istio_config_write

Create, patch, or delete Istio configuration objects

ossm_get_resource_details

Get details or list services/workloads within the service mesh

77 further tools are not listed here. The complete surface is in the source.

// known CVEs in dependencies9 high10 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highjs-yaml@4.1.1GHSA-2883-xcg3-v3hh

js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources

highjs-yaml@4.1.1GHSA-52cp-r559-cp3m

js-yaml: YAML merge-key chains can force quadratic CPU consumption

highjs-yaml@4.1.1GHSA-5p4m-2wfm-xmqj

JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported

highundici@6.21.2GHSA-f269-vfmq-vjvj

Undici: Malicious WebSocket 64-bit length overflows parser and crashes the client

highundici@6.21.2GHSA-v9p9-hfj2-hcw8

Undici has Unhandled Exception in WebSocket Client Due to Invalid server_max_window_bits Validation

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configACCESS_LEVEL
configACTION_AUTO_APPROVE
configACTION_ROLLOUT_POLL_MS
configACTION_ROLLOUT_TIMEOUT_MS
configAGENT_CERT_DAYS
configAGENT_MAX_STEPS
configAGENT_MAX_TOOLS_PER_STEP
configAGENT_NAMESPACE
configALERTMANAGER_URL
configALLOWED_NAMESPACES
configALLOW_INSECURE_DOC_URLS
configAPP_CHANGE_SCAN_INTERVAL
configAUTH_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.
configAZURE_CLIENT_ID
configAZURE_OPENAI_API_VERSION
configAZURE_OPENAI_DEPLOYMENT
configAZURE_TENANT_ID
configAZURE_USE_MANAGED_IDENTITY
configBUILD_HASH
configCHANGE_LEDGER_RETENTION_DAYS
configCHAT_CACHE_TTL
configCLUSTER_NAMEUnique cluster name (hub-cluster on the management cluster; e.g. prod-east elsewhere)
configCLUSTER_PLATFORMopenshift, rancher, eks, aks, gke, or k8s
configCLUSTER_STORE_ENABLED
configCONTEXT_CACHE_TTL
configDASHBOARD_DIR
configDASHBOARD_URL
configDEPLOYMENT_NAMEUsed by the dashboard's ⋮ → Redeploy action
configENABLED_COMPONENTS
configFEDERATION_TLS_SKIP_VERIFY
configFLEET_MEMORY_ENABLED
configFLEET_MEMORY_FILE
configFLEET_SCAN_ENABLED
configHEALTH_CHECK_INTERVAL_MS
configHTTPS_PROXY
configHTTP_PROXY
configHUB_AGENT_CLUSTER
🔐 secretHUB_API_TOKEN
configHUB_CLUSTER_NAME
configHUB_EXTERNAL_URL
configHUB_SERVER_URL
configHUB_TLS_SKIP_VERIFY
configHUB_URLManagement bundle URL (the dashboard route)
configIMAGE_VULN_SCAN_INTERVAL
configINCIDENT_ATTACH_RCA
configINCIDENT_AUTO_ACT
configINCIDENT_AUTO_CLOSE_DUPLICATES
configINCIDENT_AUTO_DETECT
configINCIDENT_AUTO_SEVERITY_FLOOR
configINCIDENT_CHRONIC_ACTIVITY_OVERRIDE
configINCIDENT_CHRONIC_HOURS
configINCIDENT_ESCALATE_AFTER
configINCIDENT_LLM_TIMEOUT_MS
configINCIDENT_MAX_ACTIVE
configINCIDENT_MAX_TICKETS_PER_HOUR
configINCIDENT_POLL_INTERVAL_MS
configINCIDENT_RECURRENCE_GAP_MINUTES
configINCIDENT_RESTART_FUTILITY
configINCIDENT_RESTART_WINDOW_MINUTES
configINCIDENT_SELFHEAL_SCANS
configINCIDENT_SETTINGS_PATH
configINCIDENT_THRESHOLDS
configINCIDENT_VERIFY_ATTEMPTS
configINCIDENT_VERIFY_DELAY_MS
configK8S_API_URL
configK8S_FETCH_TIMEOUT_MS
🔐 secretK8S_TOKEN
configKUBECONFIG
configKUBERNETES_SERVICE_HOST
configKUBERNETES_SERVICE_PORT
🔐 secretLLM_API_KEY
configLLM_API_URL
configLLM_MODEL
configLLM_PROVIDER
configLLM_SETTINGS_PATH
🔐 secretMCP_ADMIN_PASSWORD
🔐 secretMCP_API_TOKEN
configMCP_DATA_DIR
configMCP_DISABLE_DESTRUCTIVE
configMCP_HUB_CONFIG
configMCP_IMAGE
configMCP_MODEStateful — all data on PersistentVolumeClaims
configMCP_NAMESPACEUsed by the dashboard's ⋮ → Redeploy action
configMCP_READ_ONLY
configMCP_REDACTION_ENABLED
configMCP_SERVER_PORT
configMCP_TRANSPORT
configMIGRATION_HISTORY_RETENTION_DAYS
configMODEL_PRICING
configMODEL_PRICING_AS_OF
configNAMESPACE
configNLU_LLM_THRESHOLD
configNOTIF_SETTINGS_PATH
configOAUTH_CLIENT_ID
🔐 secretOAUTH_CLIENT_SECRET
configOAUTH_REDIRECT_URI
configOPENSHIFT_API_URL
configOPENSHIFT_OAUTH_URL
🔐 secretOPENSHIFT_TOKEN
configORCHESTRATOR_MAX_STEPS
configORCHESTRATOR_MAX_TOOLS_PER_STEP
configOTEL_EXPORTER_OTLP_ENDPOINT
configPASSWORD_MAX_AGE_DAYS
configPLATFORM
configPREFLIGHT_TIMEOUT_MS
configPROACTIVE_SCAN_INTERVAL
configPROMETHEUS_CA_FILE
configPROMETHEUS_CONNECT_TIMEOUT_MS
configPROMETHEUS_INSECURE
🔐 secretPROMETHEUS_TOKEN
configPROMETHEUS_URL
configRATE_LIMIT_BURST
configRATE_LIMIT_REFILL
configRESOURCE_INDEX_TTL_MS
configSERVICENOW_ASSIGNMENT_GROUP
configSERVICENOW_CHANGE_REVIEW_STATE
configSERVICENOW_INSTANCE
🔐 secretSERVICENOW_PASSWORD
configSERVICENOW_USERNAME
configSESSION_TTL
🔐 secretSLACK_SIGNING_SECRET
configSNOW_SETTINGS_PATH
configSPOKE_DNS_SERVER
configSPOKE_EXTERNAL_URL
configSUMMARY_KEEP_RECENT
configSUMMARY_TRIGGER_AT
🔐 secretTCS_AGENTIC_BEARER
configTCS_AGENTIC_URL
configTCS_AGENT_ID
configVM_APPROVAL_INTERVAL_SEC
confighttp_proxy
confighttps_proxy
configFOUNDRY_PROJECT_ENDPOINT
configFOUNDRY_MODEL
Deployment configuration, supplied by whoever hosts the server. Users are not asked for these.
deployPORT
// quality suggestions

Tool 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.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 9 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/cskaruppu/openshift-mcp-server?variant=verified)](https://m8ven.ai/mcp/cskaruppu/openshift-mcp-server)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: fa47819bb59c3330bbb2ab720f4fe739699a9f47
code hash: ebcf79754c1f67c468369be6b3b23e752b9a0f2098c0ab092d1df763717bea7b
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

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
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client