MahdadGhasemian/mcp-hetzner-go
If you are the rightful owner of mcp-hetzner-go and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Go Model Context Protocol (MCP) server for interacting with the Hetzner Cloud API.
MCP Hetzner Go
A Go Model Context Protocol (MCP) server for interacting with the Hetzner Cloud API.
Using with Claude Desktop
Create a file in ~/Library/Application Support/Claude/claude_desktop_config.json with the following contents:
{
"mcpServers": {
"hetzner": {
"command": "<your path to golang MCP server go executable>",
"env": {
"HCLOUD_TOKEN": "YOUR-HCLOUD-TOKEN"
}
}
}
}
🛠 Build Client
npm --prefix ./client i
npm --prefix ./client run build
🖥 Build Server
go mod init github.com/MahdadGhasemian/mcp-hetzner-go
go mod tidy
go build -o mcphetzner
# go run .
🚀 Run Client
node ./client/build/index.js ./mcphetzner
⚠️ Usage Restrictions
The server supports two operation modes, controlled by the configuration:
- Read-Only mode: Only allows GET and LIST operations.
- Read-Write mode: Allows GET, LIST, and CREATE/UPDATE/DELETE operations.
By default, the server starts in read-only mode.
To enable write operations (such as creating, updating, or deleting resources), you must explicitly set the configuration flag to enable read-write mode.
Warning: Enabling write mode allows the client to make changes to your Hetzner Cloud resources.
Ensure you understand the implications and have proper access controls in place.
Switching Modes
Edit your configuration or pass the relevant environment variable/flag at launch:
- For read-only (default; safe for inspection and monitoring):
./mcphetzner --restriction=read_only
- For read-write (use with caution!):
./mcphetzner --restriction=read_write
✅ Lint
# install golangci-lint and then run:
golangci-lint run
🔍 Inspector
npx @modelcontextprotocol/inspector
🗺 Roadmap
-
Implement all GET and LIST operations for:
- Certificates
- SSH Keys
- Locations
- Datacenters
- Firewall
- Floating IPs
- Servers
- Images
- ISOs
- Placement Groups
- Primary IPs
- Server Types
- Load Balancers
- Load Balancer Types
- Networks
- Volumes
- Pricing
-
Add a configuration flag or setting to:
- Enable read_only mode (GET/LIST only)
- Enable read_write mode (GET/LIST + CREATE/UPDATE/DELETE)
-
Implement write operations (create/update):
- Certificates
- SSH Keys
- Firewall
- Floating IPs
- Servers
- Images
- Placement Groups
- Primary IPs
- Load Balancers
- Networks
- Volumes
-
Add delete capabilities for supported resources