Hetzner Cloud MCP Server
Provides tools to interact with Hetzner Cloud infrastructure, including listing and managing servers, inspecting firewalls and networks, managing snapshots and backups, and performing health checks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Hetzner Cloud MCP ServerRun a health check on my Hetzner servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hetzner Cloud MCP Server
A secure, local MCP server that gives your LLM access to your Hetzner Cloud infrastructure. Your API token stays on your machine and is never sent to any LLM provider.
Features
Server monitoring — list servers, check status, view CPU/disk/network metrics
Firewall inspection — view firewall rules and which servers they're applied to
Network overview — private networks, subnets, and routes
Snapshot & backup management — list and create snapshots
Health check — one-command overview with warnings for missing firewalls, stopped servers, etc.
Related MCP server: mcp-hetzner
Quick Start
1. Clone and install
git clone https://github.com/ivarwerner/hetzner-mcp.git
cd hetzner-mcp
chmod +x install.sh
./install.sh2. Get a Hetzner API token
Go to Hetzner Cloud Console → Security → API Tokens → Generate API Token.
Use Read permissions for a read-only setup, or Read & Write if you want to create snapshots.
3. Configure your editor
Add the MCP server to your editor's config. Replace /path/to/hetzner-mcp with the actual path where you cloned the repo.
Edit your config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"hetzner": {
"command": "/path/to/hetzner-mcp/.venv/bin/python",
"args": ["/path/to/hetzner-mcp/server.py"],
"env": {
"HETZNER_API_TOKEN": "your-token-here",
"PYTHONUNBUFFERED": "1"
}
}
}
}Restart Claude Desktop to load the server.
Add globally with one command:
claude mcp add hetzner \
-s user \
-e HETZNER_API_TOKEN=your-token-here \
-- /path/to/hetzner-mcp/.venv/bin/python /path/to/hetzner-mcp/server.pyOr add manually to ~/.claude.json:
{
"mcpServers": {
"hetzner": {
"command": "/path/to/hetzner-mcp/.venv/bin/python",
"args": ["/path/to/hetzner-mcp/server.py"],
"env": {
"HETZNER_API_TOKEN": "your-token-here"
}
}
}
}For project-scoped setup, add to .mcp.json in the project root instead.
Edit the config file:
Global:
~/.cursor/mcp.jsonProject:
.cursor/mcp.json(in repo root)
{
"mcpServers": {
"hetzner": {
"command": "/path/to/hetzner-mcp/.venv/bin/python",
"args": ["/path/to/hetzner-mcp/server.py"],
"env": {
"HETZNER_API_TOKEN": "your-token-here"
}
}
}
}Or go to Settings → MCP in Cursor to add it via the UI.
Add to your workspace at .vscode/mcp.json:
{
"mcpServers": {
"hetzner": {
"command": "/path/to/hetzner-mcp/.venv/bin/python",
"args": ["/path/to/hetzner-mcp/server.py"],
"env": {
"HETZNER_API_TOKEN": "your-token-here"
}
}
}
}Or add to your user settings.json:
{
"mcp.servers": {
"hetzner": {
"command": "/path/to/hetzner-mcp/.venv/bin/python",
"args": ["/path/to/hetzner-mcp/server.py"],
"env": {
"HETZNER_API_TOKEN": "your-token-here"
}
}
}
}Edit the config file:
macOS:
~/.codeium/windsurf/mcp_config.jsonWindows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
"mcpServers": {
"hetzner": {
"command": "/path/to/hetzner-mcp/.venv/bin/python",
"args": ["/path/to/hetzner-mcp/server.py"],
"env": {
"HETZNER_API_TOKEN": "your-token-here"
}
}
}
}Or go to Plugins → Manage plugins → View raw config.
4. Try it out
Restart your editor and try: "Run a health check on my Hetzner servers".
Available Tools
Tool | Description |
| List all servers with status, IPs, and resources |
| Detailed info for a specific server |
| CPU, disk, and network metrics (1h–30d) |
| List firewalls with rules and applied resources |
| Detailed view of a specific firewall |
| Private networks, subnets, and routes |
| List snapshots or backups |
| Create a snapshot of a server |
| Full health report with warnings |
Security
Your API token is stored in your local editor config file — it is never included in conversations or sent to any LLM provider. The MCP server runs locally on your machine and communicates with your editor via stdio.
For extra safety:
Use a read-only API token if you don't need write operations
Rotate your token regularly via Hetzner Cloud Console
The
.gitignoreensures.envfiles are never committed
Requirements
Python 3.10+
A Hetzner Cloud account with an API token
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/isyvertsen/hetzner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server