Hetzner Cloud MCP Server について
Hetzner Cloud MCP サーバーは、Hetzner Cloud API をラップした MCP サーバーで、LLM が構造化された関数を通じてクラウドリソースを管理できるようにします。AI アシスタントから Hetzner のインフラを操作したい利用者を対象とし、Claude Code との連携にも対応しています。
主な機能
- 01サーバーの一覧表示、作成、電源操作
- 02ボリュームの作成、アタッチ、デタッチ、リサイズ
- 03サーバーに適用するファイアウォールルールの管理
- 04SSH キーの作成と管理
- 05イメージ、サーバータイプ、ロケーションの参照
- 06stdio と SSE のトランスポート方式
活用シーン
- 01Claude Code から Hetzner サーバーを管理
- 02クラウドリソースの確認や設定変更を一括で実施
- 03Web サーバー向けのファイアウォールルールを設定
MCP 対応
本プロジェクトは MCP サーバーであり、サーバー、ボリューム、ファイアウォール、SSH キーの管理関数を MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Hetzner Cloud MCP サーバー
Hetzner Cloud API と連携するための Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、言語モデルから構造化された関数を通じて Hetzner Cloud のリソースを管理できます。

特長
- Hetzner Cloud サーバーの一覧表示、作成、管理
- ボリュームの作成、アタッチ、デタッチ、サイズ変更
- ファイアウォールルールの管理とサーバーへの適用
- サーバーへの安全なアクセスに使用する SSH キーの作成と管理
- 利用可能なイメージ、サーバータイプ、ロケーションの確認
- サーバーの電源オン/オフと再起動
- 言語モデルとの連携に使える、シンプルで構造化された API
- Claude から Hetzner リソースを直接管理するための Claude Code 連携
要件
- 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
パッケージとしてインストールした後、作業ディレクトリに .env ファイルを作成し、Hetzner Cloud API トークンを設定します。
使用方法
サーバーの起動
オプション 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(デフォルト):標準入出力トランスポート。通常は Claude Code と併用しますsse:Server-Sent Events トランスポート。HTTP クライアントに適しています
デフォルトでは、サーバーは 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: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:利用可能なデータセンターのロケーションを一覧表示します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。