mcpField
M
mcp-hetzner

mcp-hetzner

Local
github.com/MahdadGhasemianCloud & Infra5Updated 61w ago

About mcp-hetzner

mcp-hetzner is a Go MCP server for querying and managing Hetzner Cloud resources. It defaults to read-only access, with write operations enabled explicitly through configuration.

Key features

  1. 01GET and LIST cloud resources
  2. 02Optional create, update, and delete operations
  3. 03Read-only mode by default
  4. 04Go-based server

Use cases

  1. 01Inspect Hetzner Cloud resource details
  2. 02List servers, networks, or volumes
  3. 03Enable configured write access for resource changes

MCP support

Exposes Hetzner Cloud API operations to MCP clients. The server supports read-only and read-write modes; read-write must be explicitly enabled.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Hetzner Go

A Go Model Context Protocol (MCP) server for interacting with the Hetzner Cloud API.

🌟 Featured

🎉 Now part of the official Awesome HCloud list!

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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.