Provision, secure, back up and manage self-hosted servers, with security auditing and hardening for SSH, firewall, Docker and TLS.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add kastell --env HETZNER_TOKEN='<HETZNER_TOKEN>' --env DIGITALOCEAN_TOKEN='<DIGITALOCEAN_TOKEN>' --env VULTR_TOKEN='<VULTR_TOKEN>' --env LINODE_TOKEN='<LINODE_TOKEN>' -- npx -y kastell~/.codex/config.toml
[mcp_servers.kastell]
command = "npx"
args = ["-y", "kastell"]
env = { HETZNER_TOKEN = "<HETZNER_TOKEN>", DIGITALOCEAN_TOKEN = "<DIGITALOCEAN_TOKEN>", VULTR_TOKEN = "<VULTR_TOKEN>", LINODE_TOKEN = "<LINODE_TOKEN>" }
# codex mcp add kastell --env HETZNER_TOKEN='<HETZNER_TOKEN>' --env DIGITALOCEAN_TOKEN='<DIGITALOCEAN_TOKEN>' --env VULTR_TOKEN='<VULTR_TOKEN>' --env LINODE_TOKEN='<LINODE_TOKEN>' -- npx -y kastell~/.cursor/mcp.json
{
"mcpServers": {
"kastell": {
"command": "npx",
"args": [
"-y",
"kastell"
],
"env": {
"HETZNER_TOKEN": "<HETZNER_TOKEN>",
"DIGITALOCEAN_TOKEN": "<DIGITALOCEAN_TOKEN>",
"VULTR_TOKEN": "<VULTR_TOKEN>",
"LINODE_TOKEN": "<LINODE_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"kastell": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"kastell"
],
"env": {
"HETZNER_TOKEN": "<HETZNER_TOKEN>",
"DIGITALOCEAN_TOKEN": "<DIGITALOCEAN_TOKEN>",
"VULTR_TOKEN": "<VULTR_TOKEN>",
"LINODE_TOKEN": "<LINODE_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"kastell": {
"command": "npx",
"args": [
"-y",
"kastell"
],
"env": {
"HETZNER_TOKEN": "<HETZNER_TOKEN>",
"DIGITALOCEAN_TOKEN": "<DIGITALOCEAN_TOKEN>",
"VULTR_TOKEN": "<VULTR_TOKEN>",
"LINODE_TOKEN": "<LINODE_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"kastell": {
"command": "npx",
"args": [
"-y",
"kastell"
],
"env": {
"HETZNER_TOKEN": "<HETZNER_TOKEN>",
"DIGITALOCEAN_TOKEN": "<DIGITALOCEAN_TOKEN>",
"VULTR_TOKEN": "<VULTR_TOKEN>",
"LINODE_TOKEN": "<LINODE_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"kastell": {
"command": "npx",
"args": [
"-y",
"kastell"
],
"env": {
"HETZNER_TOKEN": "<HETZNER_TOKEN>",
"DIGITALOCEAN_TOKEN": "<DIGITALOCEAN_TOKEN>",
"VULTR_TOKEN": "<VULTR_TOKEN>",
"LINODE_TOKEN": "<LINODE_TOKEN>"
}
}
}
}Environment variables
HETZNER_TOKENDIGITALOCEAN_TOKENVULTR_TOKENLINODE_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.