Skip to main content
Glama
dkruyt

Hetzner Cloud MCP Server

by dkruyt

Hetzner クラウド MCP サーバー

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

MCP ヘッツナー デモ

特徴

  • Hetzner Cloud サーバーの一覧表示、作成、管理

  • ボリュームの作成、接続、切断、サイズ変更

  • ファイアウォールルールを管理し、サーバーに適用する

  • 安全なサーバーアクセスのための SSH キーの作成と管理

  • 利用可能なイメージ、サーバーの種類、場所を表示します

  • サーバーの電源オン/オフと再起動

  • 言語モデルのインタラクションのためのシンプルで構造化された API

  • Claude Code 統合により、Claude から直接 Hetzner リソースを管理できます。

Related MCP server: Linear MCP Server

要件

  • 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 : 利用可能なデータセンターの場所を一覧表示する

ライセンス

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dkruyt/mcp-hetzner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server