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

特徴
Hetzner Cloud サーバーの一覧表示、作成、管理
ボリュームの作成、接続、切断、サイズ変更
ファイアウォールルールを管理し、サーバーに適用する
安全なサーバーアクセスのための SSH キーの作成と管理
利用可能なイメージ、サーバーの種類、場所を表示します
サーバーの電源オン/オフと再起動
言語モデルのインタラクションのためのシンプルで構造化された API
Claude Code 統合により、Claude から直接 Hetzner リソースを管理できます。
Related MCP server: Linear MCP Server
要件
Python 3.11以上
Hetzner Cloud APIトークン
インストール
方法1:直接インストール
このリポジトリをクローンします:
git clone https://github.com/dkruyt/mcp-hetzner.git
cd mcp-hetzner依存関係をインストールします:
pip install -e ..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で実行されます。ホストとポートは次のようにカスタマイズできます。
.envファイルでMCP_HOSTおよびMCP_PORT環境変数を設定する--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:8080APIのテスト
サーバー機能を検証するためのテスト クライアントが含まれています。
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: 利用可能なデータセンターの場所を一覧表示する
ライセンス
マサチューセッツ工科大学