Skip to main content
The OpenShift Python Wrapper MCP Server provides powerful tools to interact with OpenShift/Kubernetes clusters using the Model Context Protocol (MCP). Integrate cluster management directly into AI assistants like Claude Desktop and Cursor.

Quick Start

Prerequisites

Python 3.8+

Required runtime environment

Cluster Access

OpenShift or Kubernetes cluster

Kubeconfig

Valid kubeconfig file

Installation

Running the Server

For development or running from source:

Available Tools

The MCP server provides comprehensive tools for managing Kubernetes and OpenShift resources.

Resource Management

list_resources

List Kubernetes/OpenShift resources with filtering capabilities. Parameters:
  • resource_type (required): Type of resource (e.g., “pod”, “deployment”)
  • namespace (optional): Namespace to search in
  • label_selector (optional): Filter by labels (e.g., “app=nginx”)
  • field_selector (optional): Filter by fields
  • limit (optional): Maximum number of results

get_resource

Get detailed information about a specific resource. Parameters:
  • resource_type (required): Type of resource
  • name (required): Resource name
  • namespace (optional): Namespace (required for namespaced resources)
  • output_format (optional): Format - “info”, “yaml”, “json”, “wide” (default: “info”)

create_resource

Create a new resource from YAML or specifications. Parameters:
  • resource_type (required): Type of resource
  • name (required): Resource name
  • namespace (optional): Namespace for namespaced resources
  • yaml_content (optional): Complete YAML definition
  • spec (optional): Resource specification as dict
  • labels (optional): Labels to apply
  • annotations (optional): Annotations to apply
  • wait (optional): Wait for resource to be ready

update_resource

Update an existing resource using patch operations. Parameters:
  • resource_type (required): Type of resource
  • name (required): Resource name
  • namespace (optional): Namespace
  • patch (required): Patch data as dict
  • patch_type (optional): “merge”, “strategic”, “json” (default: “merge”)

delete_resource

Delete a resource. Parameters:
  • resource_type (required): Type of resource
  • name (required): Resource name
  • namespace (optional): Namespace
  • wait (optional): Wait for deletion to complete (default: true)
  • timeout (optional): Deletion timeout in seconds (default: 60)

apply_yaml

Apply YAML manifests containing one or more resources. Parameters:
  • yaml_content (required): YAML content with one or more resources
  • namespace (optional): Default namespace for resources without namespace

Pod Operations

get_pod_logs

Retrieve logs from pod containers. Parameters:
  • name (required): Pod name
  • namespace (required): Namespace
  • container (optional): Container name (for multi-container pods)
  • tail_lines (optional): Number of lines from end
  • since_seconds (optional): Logs since N seconds ago
  • previous (optional): Get logs from previous container instance

exec_in_pod

Execute commands inside pod containers. Parameters:
  • name (required): Pod name
  • namespace (required): Namespace
  • command (required): Command to execute as list
  • container (optional): Container name

Event and Discovery

get_resource_events

Get Kubernetes events related to a resource. Parameters:
  • resource_type (required): Type of resource
  • name (required): Resource name
  • namespace (optional): Namespace
  • limit (optional): Maximum events to return (default: 10)

get_resource_types

Get all available resource types in the cluster. Parameters:
  • random_string (required): Any string (required by MCP protocol)

AI Assistant Integration

Cursor Integration

Add to your Cursor settings (~/.cursor/mcp.json):
Then use in Cursor with @openshift-python-wrapper.

Claude Desktop Integration

Add to Claude Desktop config:

Common Use Cases

Troubleshooting a Failing Pod

1

Check pod status

2

Get recent events

3

Check logs

4

Execute diagnostic command

Deploying a Complete Application

Checking Cluster Health

1

List nodes

2

Check for pod issues

3

Review recent events

Managing OpenShift Virtualization

Supported Resource Types

The server dynamically discovers all available resource types from your cluster.
  • pod, service, deployment, replicaset, daemonset
  • configmap, secret, persistentvolume, persistentvolumeclaim
  • namespace, node, event, endpoint
  • serviceaccount, role, rolebinding, clusterrole, clusterrolebinding
  • route, project, imagestream, buildconfig, deploymentconfig
  • user, group, oauth, securitycontextconstraints
  • virtualmachine, virtualmachineinstance, datavolume
  • hyperconverged, kubevirt, cdi
  • clusterserviceversion, subscription, installplan, operatorgroup
  • catalogsource, packagemanifest

Security Best Practices

RBAC

Ensure your kubeconfig has appropriate permissions for operations

Namespaces

Use namespace isolation for multi-tenant environments

Resource Limits

Set appropriate limits when listing resources to avoid overload

Sensitive Data

Be careful with secrets and configmaps containing sensitive information

Troubleshooting

Test cluster connectivity:
Check your permissions:
Run in debug mode:

Next Steps

API Reference

Explore the complete API documentation

Examples

Check out practical examples and tutorials