mcp-hetzner-go

MahdadGhasemian/mcp-hetzner-go

3.1

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