mcpField
H
Hetzner Cloud MCP Server

Hetzner Cloud MCP Server

ローカル
github.com/dkruytクラウド・インフラ14981 週間前に更新

Hetzner Cloud MCP Server について

Hetzner Cloud MCP サーバーは、Hetzner Cloud API をラップした MCP サーバーで、LLM が構造化された関数を通じてクラウドリソースを管理できるようにします。AI アシスタントから Hetzner のインフラを操作したい利用者を対象とし、Claude Code との連携にも対応しています。

主な機能

  1. 01サーバーの一覧表示、作成、電源操作
  2. 02ボリュームの作成、アタッチ、デタッチ、リサイズ
  3. 03サーバーに適用するファイアウォールルールの管理
  4. 04SSH キーの作成と管理
  5. 05イメージ、サーバータイプ、ロケーションの参照
  6. 06stdio と SSE のトランスポート方式

活用シーン

  1. 01Claude Code から Hetzner サーバーを管理
  2. 02クラウドリソースの確認や設定変更を一括で実施
  3. 03Web サーバー向けのファイアウォールルールを設定

MCP 対応

本プロジェクトは MCP サーバーであり、サーバー、ボリューム、ファイアウォール、SSH キーの管理関数を MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Hetzner Cloud MCP サーバー

Hetzner Cloud API と連携するための Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、言語モデルから構造化された関数を通じて Hetzner Cloud のリソースを管理できます。

MCP Hetzner デモ

特長

  • Hetzner Cloud サーバーの一覧表示、作成、管理
  • ボリュームの作成、アタッチ、デタッチ、サイズ変更
  • ファイアウォールルールの管理とサーバーへの適用
  • サーバーへの安全なアクセスに使用する SSH キーの作成と管理
  • 利用可能なイメージ、サーバータイプ、ロケーションの確認
  • サーバーの電源オン/オフと再起動
  • 言語モデルとの連携に使える、シンプルで構造化された API
  • Claude から Hetzner リソースを直接管理するための Claude Code 連携

要件

  • 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

パッケージとしてインストールした後、作業ディレクトリに .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 で実行されます。次の方法でホストとポートを変更できます:

  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:利用可能なデータセンターのロケーションを一覧表示します

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。