Skip to main content
Glama
Rancher MCP Server

Rancher MCP Server

Rancher MCP Server

A Model Context Protocol (MCP) server that exposes the Rancher Manager v2.x API to LLM clients. Built on the official mcp Python SDK (FastMCP) with async HTTP via httpx and settings management via pydantic-settings.

Features

  • Bearer-token authentication using a Rancher API key (token-xxx:yyy...).

  • Cluster, project, and node discovery against the /v3 management API.

  • Kubernetes resource queries (namespaces, pods, deployments, pod logs) through Rancher's /k8s/clusters/{cluster_id} proxy.

  • Deployment scaling via strategic-merge PATCH on the /scale subresource.

  • Catalog app listing and on-demand kubeconfig generation.

Related MCP server: MCP Server Sample

Requirements

  • Python 3.10+

  • A Rancher Manager instance reachable over HTTPS.

  • An API token generated from the Rancher UI (Account -> API & Keys). The token must be passed in the full token-xxx:yyy... form.

Installation

pip install -e ".[dev]"

Configuration

Configure the server through environment variables (prefix RANCHER_) or a .env file in the working directory:

Variable

Description

Default

RANCHER_BASE_URL

Rancher Manager base URL (no trailing slash).

https://localhost

RANCHER_API_TOKEN

API token in token-xxx:yyy... format.

(required)

RANCHER_VERIFY_SSL

Verify TLS certificates.

true

RANCHER_TIMEOUT

HTTP timeout in seconds.

60

Running

rancher-mcp

The server speaks MCP over stdio and can be wired into any MCP-capable client (Claude Desktop, Cursor, custom agents, and so on).

Tools

Tool

Description

list_clusters

List all managed clusters.

get_cluster

Fetch one cluster by ID.

list_projects

List projects, optionally scoped to a cluster.

list_nodes

List nodes in a cluster.

list_namespaces

List Kubernetes namespaces via the Rancher proxy.

list_pods

List pods (optionally namespace-scoped).

list_deployments

List Deployments (optionally namespace-scoped).

get_pod_logs

Tail pod logs.

scale_deployment

Scale a Deployment via the /scale subresource.

list_catalog_apps

List catalog apps installed in a cluster.

create_kubeconfig

Generate a kubeconfig for a cluster.

Development

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest -x --tb=short
ruff check src tests

License

MIT License - see LICENSE file for details.

Available Tools

11 tools
create_kubeconfigA

Generate a kubeconfig document for the given cluster.

Args: cluster_id: Rancher-assigned cluster identifier.

Inputs: cluster_id (required). Returns: result

get_clusterA

Get detailed information about a specific Rancher cluster.

Args: cluster_id: Rancher-assigned cluster identifier (e.g. c-abcde).

Inputs: cluster_id (required). Returns: result

get_pod_logsA

Fetch logs from a pod via the Rancher Kubernetes proxy.

Args: cluster_id: Rancher-assigned cluster identifier. namespace: Namespace the pod lives in. pod_name: Name of the pod whose logs should be returned. tail_lines: Number of trailing lines to return (default 100).

Inputs: pod_name (required), namespace (required), cluster_id (required), tail_lines. Returns: result

list_catalog_appsB

List catalog applications installed in a Rancher cluster.

Args: cluster_id: Rancher-assigned cluster identifier.

Inputs: cluster_id (required). Returns: result

list_clustersA

List all clusters managed by this Rancher server.

Inputs: no named parameters. Returns: result

list_deploymentsB

List Deployments in a cluster, optionally scoped to a namespace.

Args: cluster_id: Rancher-assigned cluster identifier. namespace: Optional namespace to filter deployments.

Inputs: cluster_id (required), namespace. Returns: result

list_namespacesB

List namespaces in the Kubernetes cluster via the Rancher proxy.

Args: cluster_id: Rancher-assigned cluster identifier.

Inputs: cluster_id (required). Returns: result

list_nodesB

List nodes belonging to a Rancher-managed cluster.

Args: cluster_id: Rancher-assigned cluster identifier.

Inputs: cluster_id (required). Returns: result

list_podsA

List pods in a cluster, optionally scoped to a namespace.

Args: cluster_id: Rancher-assigned cluster identifier. namespace: Optional namespace to filter pods.

Inputs: cluster_id (required), namespace. Returns: result

list_projectsA

List Rancher projects, optionally filtered by cluster.

Args: cluster_id: Optional cluster ID used to scope the result.

Inputs: cluster_id. Returns: result

scale_deploymentB

Scale a Kubernetes Deployment to the given replica count.

Args: cluster_id: Rancher-assigned cluster identifier. namespace: Namespace containing the deployment. name: Deployment name. replicas: Desired replica count.

Inputs: name (required), replicas (required), namespace (required), cluster_id (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 11 tools

    Disambiguation5/5

    Each tool targets a distinct resource or action (clusters, kubeconfig, pods, deployments, namespaces, nodes, projects, catalog apps). There is no overlap; even related tools like 'list_clusters' and 'get_cluster' are clearly different operations.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (create_, get_, list_, scale_). The naming style is uniform and predictable, making it easy for an agent to infer the function of each tool.

    Tool Count5/5

    With 11 tools, the server is well-scoped for a Rancher management interface. It covers a variety of essential operations without being bloated or too sparse.

    Completeness2/5

    The tool set is heavily read-oriented (list, get) with only two write operations (create_kubeconfig, scale_deployment). Missing critical CRUD operations for clusters, deployments, and other resources, which limits agent capabilities for full lifecycle management.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers