Hetzner Cloud MCP Server
Enables LLMs to manage and monitor Hetzner Cloud infrastructure, including servers, firewalls, networks, and snapshots, while keeping the API token local and secure.
README
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.
Quick Start
1. Clone and install
git clone https://github.com/ivarwerner/hetzner-mcp.git
cd hetzner-mcp
chmod +x install.sh
./install.sh
2. 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.
<details> <summary><strong>Claude Desktop</strong></summary>
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%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. </details>
<details> <summary><strong>Claude Code (CLI)</strong></summary>
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.py
Or 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.
</details>
<details> <summary><strong>Cursor</strong></summary>
Edit the config file:
- Global:
~/.cursor/mcp.json - Project:
.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. </details>
<details> <summary><strong>VS Code (Copilot)</strong></summary>
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"
}
}
}
}
</details>
<details> <summary><strong>Windsurf</strong></summary>
Edit the config file:
- macOS:
~/.codeium/windsurf/mcp_config.json - Windows:
%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. </details>
4. Try it out
Restart your editor and try: "Run a health check on my Hetzner servers".
Available Tools
| Tool | Description |
|---|---|
list_servers |
List all servers with status, IPs, and resources |
get_server |
Detailed info for a specific server |
get_server_metrics |
CPU, disk, and network metrics (1h–30d) |
list_firewalls |
List firewalls with rules and applied resources |
get_firewall |
Detailed view of a specific firewall |
list_networks |
Private networks, subnets, and routes |
list_images |
List snapshots or backups |
create_snapshot |
Create a snapshot of a server |
health_check |
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.