fleet_bundle_list
List Fleet Bundles (deployment units from GitRepos)
Read a whole Rancher estate through one connection: downstream cluster health, Kubernetes objects and their events, Fleet GitOps drift, and Harvester virtual machines, volumes and networks.
LABSCO SUMMARY
The default launch writes nothing: --read-only is on unless you pass --read-only=false, and deletes also need --disable-destructive=false, so until you add those flags what you hand an agent is limited to what it can read. The audit log and legacy catalog calls degrade rather than fail, returning JSON that carries _source unavailable and a note when a Rancher build does not expose them. The cluster argument on the Kubernetes tools is a Rancher cluster ID.
A server over Rancher that starts read-only, reaching its Norman v3 API, the Kubernetes resources of the clusters it manages, Fleet GitOps state and Harvester virtualisation; the write and delete tools come on only with launch flags.
A reachable Rancher server and an API token for it. The KubeOVN subnet and VPC tools need the kubeovn-operator addon enabled, and token and cloud credential values come back redacted unless show-sensitive-data is turned on.
One command plus a key — npm install -g rancher-mcp-server, then supply credentials
USE CASES
List the resource, read its recent events in describe form, widen to the namespace's events, then tail the container log.
The drift report names the BundleDeployments changed outside GitOps; the GitRepo, bundle and cluster lists say which source and which cluster they came from.
Allocatable resources from the Nodes, set against the cluster's own health and node count and the estate-wide totals.
List the VMs with their status and placement, open the one in question in full, then check the volumes under it and the hosts they sit on.
Users, the global role bindings that grant them scope, the auth providers they arrive through, and the API tokens standing open.
VLAN networks link to KubeOVN subnets through their provider, and the subnets in turn belong to a VPC. The subnet and VPC calls need the kubeovn-operator addon.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
fleet_bundle_listList Fleet Bundles (deployment units from GitRepos)
fleet_cluster_listList Fleet clusters (downstream clusters registered with Fleet)
fleet_drift_detectReport Fleet drift: BundleDeployments with Modified state (resources changed outside GitOps)
fleet_gitrepo_getGet detailed info for one Fleet GitRepo
fleet_gitrepo_listList Fleet GitRepos (GitOps sources)
harvester_addon_listList Harvester addons with their enabled/disabled state
harvester_host_listList Harvester hosts (nodes) with maintenance mode and disk status
harvester_image_listList Harvester VM images (VirtualMachineImage) with download progress
harvester_network_listList Harvester VLAN networks (NetworkAttachmentDefinition)
harvester_settingsList or get Harvester cluster settings (backup-target, auto-disk-provision-paths, etc.)
harvester_subnet_listList KubeOVN Subnets (requires kubeovn-operator addon). Subnets define VM network CIDRs and are linked to Networks via provider.
harvester_vm_getGet a single virtual machine with full spec and status (metrics, disks, networks)
harvester_vm_listList virtual machines across Harvester clusters with status, IP, node, CPU/memory
harvester_volume_listList PersistentVolumeClaims (Longhorn-backed volumes) with size and health
harvester_vpc_listList KubeOVN VPCs (requires kubeovn-operator addon enabled)
kubernetes_capacitySummarize cluster capacity and allocatable resources from Nodes
kubernetes_describeGet a Kubernetes resource and its recent events (describe-style output)
kubernetes_eventsList Kubernetes events in a namespace (optionally filtered by involvedObject)
kubernetes_getGet a single Kubernetes resource by apiVersion, kind, namespace, name
kubernetes_listList Kubernetes resources by apiVersion and kind (e.g. v1 Pod, apps/v1 Deployment)
kubernetes_logsGet recent logs from a pod's container (tail only; no follow). Use for debugging. Cluster is Rancher cluster ID.
rancher_audit_log_listAttempts GET /v3/auditlogs (Norman). Many Rancher builds return 404 (not exposed) or 405 (GET not supported); in those cases the tool returns JSON with _source unavailable, _http_status, and an explanatory _note (e.g. GET not supported for 405) instead of failing.
rancher_auth_config_getGet an auth config by id (/v3/authconfigs/{id})
rancher_auth_config_listList auth configs (/v3/authconfigs)
rancher_catalog_getGet a catalog by id (/v3/catalogs/{id})
rancher_catalog_listList legacy catalogs (Norman /v3/catalogs). On any non-success (including transport errors), returns JSON with _source unavailable instead of a hard tool error.
rancher_cloud_credential_getGet a cloud credential by id
rancher_cloud_credential_listList cloud credentials (/v3/cloudcredentials). Secrets redacted unless show-sensitive-data.
rancher_cluster_getGet detailed info for one Rancher cluster (health, version, node count)
rancher_cluster_listList all Rancher clusters with health, K8s version, provider, node count
rancher_cluster_registration_token_getGet a cluster registration token by id
rancher_cluster_registration_token_listList cluster registration tokens (/v3/clusterregistrationtokens). Optional cluster_id filters by cluster.
rancher_cluster_repo_getGet a cluster repo by id. Tries Norman /v3/clusterrepos/{id} first; on 404, reads catalog.cattle.io/v1 ClusterRepo from the local cluster. Use id "namespace/name" or "name" (defaults to namespace cattle-global-data).
rancher_cluster_repo_listList app catalog cluster repos. Tries Norman /v3/clusterrepos; on failure or non-success, lists catalog.cattle.io/v1 ClusterRepo on local via Steve/Kubernetes, trying namespaces cattle-global-data, fleet-default, fleet-local, cattle-fleet-system. Returns either _source kubernetes_api_fallback with data or _source unavailable with attempt_errors (no hard tool error). Pagination marker applies only to the first successful namespace (usually cattle-global-data).
rancher_feature_flag_getGet a feature flag by id (/v3/features/{id})
rancher_feature_flag_listList feature flags (/v3/features)
rancher_global_role_binding_getGet a global role binding by id (/v3/globalrolebindings/{id})
rancher_global_role_binding_listList global role bindings (/v3/globalrolebindings)
rancher_node_driver_listList node drivers (/v3/nodedrivers)
rancher_norman_schema_getGet a single Norman schema by id (e.g. user, token, cluster) from /v3/schemas/{id}
rancher_norman_schema_listList Norman /v3 API schemas (discover types, collection links, and actions for this Rancher)
rancher_overviewCross-cluster summary: total cluster count and total project count
rancher_project_listList Rancher projects across clusters
rancher_setting_getGet a setting by id (/v3/settings/{id})
rancher_setting_listList global Rancher settings (/v3/settings)
rancher_token_getGet a Norman token by id (/v3/tokens/{id}). Token value redacted unless show-sensitive-data is enabled.
rancher_token_listList Norman API tokens (/v3/tokens). Sensitive token values are redacted unless show-sensitive-data is enabled.
rancher_user_getGet a user by id (/v3/users/{id})
rancher_user_listList Rancher users (/v3/users)
BEFORE YOU INSTALL
49 tools when we connected; the project documents 98. --read-only defaults to true and --toolsets to harvester only. Add --read-only=false for writes, --disable-destructive=false for deletes, and --toolsets harvester,rancher,kubernetes,helm,fleet for the rest.
INSTALLATION
npm install -g rancher-mcp-server{
"mcpServers": {
"rancher": {
"command": "npx",
"args": [
"-y",
"rancher-mcp-server",
"--rancher-server-url",
"<YOUR_RANCHER_MCP_RANCHER_SERVER_URL>",
"--rancher-token",
"<YOUR_TOKEN>:yyyy",
"--toolsets",
"harvester,rancher,kubernetes,fleet"
]
}
}
}Run the server and expose the port
docker run -d -p 8080:8080 \
-e RANCHER_MCP_RANCHER_SERVER_URL=<YOUR_RANCHER_MCP_RANCHER_SERVER_URL> \
-e RANCHER_MCP_RANCHER_TOKEN="<YOUR_TOKEN>:yyyy" \
-e RANCHER_MCP_TRANSPORT=http \
-e RANCHER_MCP_PORT=8080 \
ghcr.io/mrostamii/rancher-mcp-server:latestConnect Claude Code to the MCP endpoint
The server answers at http://localhost:8080/mcp (Streamable HTTP; the default path is /mcp).
claude mcp add -t http rancher http://localhost:8080/mcp