master_set_sshLABSCO SUMMARY
The join token is the part it actually saves you.
The tedious step in a manual kubeadm build is not the install, it is copying the join command off the master and onto every node without mistyping it. This server captures that command to a file on the master and replays it on each client, so adding a node is one instruction rather than a shell round trip. The scope is narrow and honest about it: Rocky Linux, one documented kubernetes version, and an exec tool for everything else.
What it is
An MCP server that automates a Kubernetes install on Rocky Linux hosts. You give it SSH details for a master and for each client node; it prepares the environment, runs the install, and carries the kubeadm join command from the master over to the nodes. Written against Rocky-8.10 minimal in VirtualBox with kubernetes 1.29.
What you get
- SSH details registered for the master and for each client node, with a connectivity check before anything runs —
master_set_ssh,client_set_ssh,connect_test - The host prepared for a cluster install: package updates and the environment settings kubeadm expects —
update,setting_env - A master node installed, and the resulting
kubeadm joincommand captured totoken.txtin the home directory so it can be replayed —k8s_master_install,master_token - A worker node installed and joined to the master using that stored command —
k8s_client_install,k8s_client_token - An escape hatch for anything the flow does not cover: run a command on the connected host —
exec
Requirements
SSH access to each host and a user with passwordless sudo — the README's setup step adds a NOPASSWD: ALL line at the end of the sudoers file, and says to put it last so it is not overridden by an earlier rule. Run dnf update -y first: the install is long enough that a pending update can push a call past its timeout, which is why the sample config sets a very large requestTimeout. The package is k8s-install-mcp (version 0.1.3) and launches through uvx, through uv run against a clone, or from a virtualenv's Python.
Setup effort
One command — uvx k8s-install-mcp
USE CASES
Bringing up a control-plane node
Register the master's host, port and credentials, confirm SSH works, then run the install and let it record the join command.
Adding a worker to the cluster
Register the node with a name, install on it, then replay the master's stored join command against it.
Getting a fresh VM ready before you start
Run the package update and environment setup on the host first, which is what keeps the install itself from timing out.
Checking on a host mid-build
Run a command on the connected machine to see what state it is actually in, without leaving the conversation for a terminal.
10 tools
Listed in project docs. Your client may show a different list.
client_set_sshmaster_tokenconnect_testexecupdatesetting_envk8s_master_installk8s_client_installk8s_client_tokenBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
- uv on PATH
- kubernetes 1.29
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
{
"mcpServers": {
"k8s": {
"requestTimeout": 12000000000,
"command": "uvx",
"args": [
"k8s-install-mcp"
]
}
}
}uvx
uvx k8s-install-mcp