Hetzner Cloud MCP Server

by dkruyt
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Hetzner クラウド MCP サーバー

Hetzner Cloud APIと連携するためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーにより、言語モデルは構造化された関数を通じてHetzner Cloudリソースを管理できるようになります。

特徴

  • Hetzner Cloud サーバーの一覧表示、作成、管理
  • ボリュームの作成、接続、切断、サイズ変更
  • ファイアウォールルールを管理し、サーバーに適用する
  • 安全なサーバーアクセスのための SSH キーの作成と管理
  • 利用可能なイメージ、サーバーの種類、場所を表示します
  • サーバーの電源オン/オフと再起動
  • 言語モデルのインタラクションのためのシンプルで構造化された API
  • Claude Code 統合により、Claude から直接 Hetzner リソースを管理できます。

要件

  • Python 3.11以上
  • Hetzner Cloud APIトークン

インストール

方法1:直接インストール

  1. このリポジトリをクローンします:
git clone https://github.com/dkruyt/mcp-hetzner.git cd mcp-hetzner
  1. 依存関係をインストールします:
pip install -e .
  1. .envファイルを作成し、Hetzner Cloud API トークンを追加します。
HCLOUD_TOKEN=your_hetzner_cloud_api_token_here

方法2: パッケージとしてインストールする

# Install directly from the repository pip install git+https://github.com/dkruyt/mcp-hetzner.git

パッケージとしてインストールした後、Hetzner Cloud API トークンを使用して作業ディレクトリに.envファイルを作成します。

使用法

サーバーの起動

オプション 1: インストールされたパッケージを実行します。

# Using default stdio transport mcp-hetzner # Using SSE transport mcp-hetzner --transport sse # Setting a custom port mcp-hetzner --transport sse --port 8000

オプション 2: モジュールとして実行:

python -m mcp_hetzner # or python -m mcp_hetzner.server

サーバーは 2 つのトランスポート モードをサポートしています。

  • stdio (デフォルト): 標準I/Oトランスポート。通常はClaude Codeで使用される。
  • sse : HTTPクライアントに適したServer-Sent Eventsトランスポート

デフォルトでは、サーバーはlocalhost:8080で実行されます。ホストとポートは次のようにカスタマイズできます。

  1. .envファイルでMCP_HOSTおよびMCP_PORT環境変数を設定する
  2. --portコマンドライン引数を使用する (環境変数を上書きします)

Claude Codeと併用

Claude Code で使用するには、SSE トランスポートを使用してサーバーを実行します。

# Start the server with SSE transport mcp-hetzner --transport sse --port 8080 # In another terminal, connect Claude Code to the server claude-code --mcp-server localhost:8080

APIのテスト

サーバー機能を検証するためのテスト クライアントが含まれています。

python -m mcp_hetzner.client

ワークフローの例

基本的なサーバー管理

# List all your servers list_servers # Create a new server create_server { "name": "web-server", "server_type": "cx11", "image": "ubuntu-22.04" } # Power operations power_off {"server_id": 12345} power_on {"server_id": 12345} reboot {"server_id": 12345} # Delete a server when no longer needed delete_server {"server_id": 12345}

ボリューム管理

# List all volumes list_volumes # Create a new volume create_volume { "name": "data-volume", "size": 10, "location": "nbg1", "format": "ext4" } # Attach volume to a server attach_volume { "volume_id": 12345, "server_id": 67890, "automount": true } # Detach volume from server detach_volume { "volume_id": 12345 } # Resize a volume (can only increase size) resize_volume { "volume_id": 12345, "size": 50 } # Delete a volume when no longer needed delete_volume { "volume_id": 12345 }

ファイアウォール管理

# List all firewalls list_firewalls # Create a firewall for web servers create_firewall { "name": "web-firewall", "rules": [ { "direction": "in", "protocol": "tcp", "port": "80", "source_ips": ["0.0.0.0/0", "::/0"] }, { "direction": "in", "protocol": "tcp", "port": "443", "source_ips": ["0.0.0.0/0", "::/0"] } ] } # Apply firewall to a server apply_firewall_to_resources { "firewall_id": 12345, "resources": [ { "type": "server", "server_id": 67890 } ] }

SSHキー管理

# List all SSH keys list_ssh_keys # Create a new SSH key create_ssh_key { "name": "my-laptop", "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAA... user@laptop" } # Use the SSH key when creating a server create_server { "name": "secure-server", "server_type": "cx11", "image": "ubuntu-22.04", "ssh_keys": [12345] } # Update an SSH key's name update_ssh_key { "ssh_key_id": 12345, "name": "work-laptop" } # Delete an SSH key delete_ssh_key { "ssh_key_id": 12345 }

インフラ計画

# Explore available resources list_server_types list_images list_locations # Get specific server information get_server {"server_id": 12345}

利用可能な機能

MCP サーバーは次の機能を提供します。

サーバー管理

  • list_servers : Hetzner Cloud アカウント内のすべてのサーバーを一覧表示します
  • get_server : 特定のサーバーの詳細を取得する
  • create_server : 新しいサーバーを作成する
  • delete_server : サーバーを削除する
  • power_on : サーバーの電源をオンにする
  • power_off : サーバーの電源をオフにする
  • reboot : サーバーを再起動する

ボリューム管理

  • list_volumes : Hetzner Cloud アカウント内のすべてのボリュームを一覧表示します
  • get_volume : 特定のボリュームの詳細を取得する
  • create_volume : 新しいボリュームを作成する
  • delete_volume : ボリュームを削除する
  • attach_volume : ボリュームをサーバーに接続する
  • detach_volume : サーバーからボリュームを切り離す
  • resize_volume : ボリュームのサイズを増やす

ファイアウォール管理

  • list_firewalls : Hetzner Cloud アカウント内のすべてのファイアウォールを一覧表示します
  • get_firewall : 特定のファイアウォールの詳細を取得する
  • create_firewall : 新しいファイアウォールを作成する
  • update_firewall : ファイアウォールの名前またはラベルを更新する
  • delete_firewall : ファイアウォールを削除する
  • set_firewall_rules : ファイアウォールルールを設定または更新する
  • apply_firewall_to_resources : サーバーまたはサーバーグループにファイアウォールを適用する
  • remove_firewall_from_resources : サーバーまたはサーバーグループからファイアウォールを削除します

SSHキー管理

  • list_ssh_keys : Hetzner Cloud アカウント内のすべての SSH キーを一覧表示します
  • get_ssh_key : 特定のSSHキーの詳細を取得する
  • create_ssh_key : 新しいSSHキーを作成する
  • update_ssh_key : SSHキー名またはラベルを更新する
  • delete_ssh_key : SSHキーを削除する

情報

  • list_images : 利用可能な OS イメージを一覧表示する
  • list_server_types : 利用可能なサーバーの種類を一覧表示する
  • list_locations : 利用可能なデータセンターの場所を一覧表示する

ライセンス

マサチューセッツ工科大学

-
security - not tested
A
license - permissive license
-
quality - not tested

言語モデルがサーバー、ボリューム、ファイアウォール、SSH キーなどの構造化関数を通じて Hetzner Cloud リソースを管理できるようにするモデル コンテキスト プロトコル サーバー。

  1. Features
    1. Requirements
      1. Installation
        1. Method 1: Direct Installation
        2. Method 2: Install as a Package
      2. Usage
        1. Starting the Server
        2. Using with Claude Code
        3. Testing the API
      3. Example Workflows
        1. Basic Server Management
        2. Volume Management
        3. Firewall Management
        4. SSH Key Management
        5. Infrastructure Planning
      4. Available Functions
        1. Server Management
        2. Volume Management
        3. Firewall Management
        4. SSH Key Management
        5. Information
      5. License
        ID: n13pxof5ni