Lets language models manage Hetzner Cloud resources through the Hetzner Cloud API.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add hetzner-cloud --env HCLOUD_TOKEN='<HCLOUD_TOKEN>' -- python -m mcp_hetzner~/.codex/config.toml
[mcp_servers.hetzner-cloud]
command = "python"
args = ["-m", "mcp_hetzner"]
env = { HCLOUD_TOKEN = "<HCLOUD_TOKEN>" }
# codex mcp add hetzner-cloud --env HCLOUD_TOKEN='<HCLOUD_TOKEN>' -- python -m mcp_hetzner~/.cursor/mcp.json
{
"mcpServers": {
"hetzner-cloud": {
"command": "python",
"args": [
"-m",
"mcp_hetzner"
],
"env": {
"HCLOUD_TOKEN": "<HCLOUD_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"hetzner-cloud": {
"type": "stdio",
"command": "python",
"args": [
"-m",
"mcp_hetzner"
],
"env": {
"HCLOUD_TOKEN": "<HCLOUD_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"hetzner-cloud": {
"command": "python",
"args": [
"-m",
"mcp_hetzner"
],
"env": {
"HCLOUD_TOKEN": "<HCLOUD_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"hetzner-cloud": {
"command": "python",
"args": [
"-m",
"mcp_hetzner"
],
"env": {
"HCLOUD_TOKEN": "<HCLOUD_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"hetzner-cloud": {
"command": "python",
"args": [
"-m",
"mcp_hetzner"
],
"env": {
"HCLOUD_TOKEN": "<HCLOUD_TOKEN>"
}
}
}
}Environment variables
HCLOUD_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.