Skip to main content
Glama
wbf-solutions

Hetzner Cloud MCP Server — Cloud API + SSH management (60 tools)

Hetzner Cloud MCP Server

SSHサーバー管理機能を備えた唯一のHetzner MCP。APIとSSHを1つのツールに統合。

PHP 8.1+ License: MIT MCP Protocol

Claude.ai、Claude Desktop、VS Code、Cursor、またはMCP互換クライアントからHetzner Cloudインフラを管理できます。2つの管理レイヤーにより、完全な制御が可能です:

  • レイヤー1 — Hetzner Cloud API: サーバーの電源、メトリクス、スナップショット、バックアップ、ファイアウォール、レスキューモード、サーバーの再構築とリサイズ。サーバーのOSが応答しない場合でも機能します。

  • レイヤー2 — SSH: サービス、ログ、Nginx、MySQL、supervisor、cron、UFW、ディスク/メモリ/CPU監視。単なるAPIラッパーではなく、本格的なシステム管理ツールです。

60ツール。動的なマルチサーバー構成。セルフホスト型でオープンソース。


なぜこのMCPなのか?

既存のHetzner MCPはすべてCloud APIをラップするだけですが、本ツールは完全なSSH管理レイヤーを追加しています。本番サーバーを管理する際に実際に必要なツールが揃っています。2つのレイヤー、60ツール、セルフホスト型。

機能

含まれるもの

Cloud API (サーバー電源、メトリクス、スナップショット、バックアップ、ファイアウォール、レスキュー、再構築)

はい

SSH管理 (サービス、ログ、Nginx、MySQL、システムヘルス)

はい

DNS管理 (ゾーン、レコード、CRUD)

はい

マルチサーバー (単一インスタンスからN台のサーバーを管理)

はい

破壊的操作の保護 (危険な操作には確認が必要)

はい

トランスポート

SSE + ストリーミング可能なHTTP

言語

PHP 8.1+


クイックスタート

前提条件

  • curl拡張機能を備えたPHP 8.1+

  • Composer

  • Hetzner Cloud APIトークン (Console > Security > API Tokens)

  • サーバーアクセス用のSSHキー (レイヤー2ツール用)

1. クローンとインストール

git clone https://github.com/wbf-solutions/hetzner-cloud-mcp.git
cd hetzner-cloud-mcp
composer install

2. 設定

cp .env.example .env

.envを編集して詳細を入力します:

HETZNER_API_TOKEN=your-cloud-api-token

SERVERS=web
SERVER_WEB_ID=12345678
SERVER_WEB_IP=1.2.3.4
SERVER_WEB_SSH_USER=root

SSH_KEY_PATH=/root/.ssh/id_ed25519

MCP_API_KEY=your-random-key    # generate with: openssl rand -hex 32

3. SSHキーのセットアップ

ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
ssh-copy-id -i /root/.ssh/id_ed25519.pub root@1.2.3.4

4. Nginxの設定

server {
    listen 443 ssl;
    server_name mcp.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/mcp.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mcp.yourdomain.com/privkey.pem;

    root /var/www/hetzner-cloud-mcp;
    index api.php;

    location / {
        try_files $uri /api.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffering off;
        fastcgi_read_timeout 600;
    }
}

5. Claude.aiへの接続

Settings > Connectors > Add custom connector:

  • Name: Hetzner Cloud MCP

  • URL: https://mcp.yourdomain.com/api.php

MCP_API_KEYを設定した場合は、URL経由で渡します:?mcp=sse&key=YOUR_MCP_API_KEY または、コネクタの「Advanced Settings」でBearerトークンとしてAPIキーを設定します。


利用可能なツール (60)

レイヤー1 — Hetzner Cloud API (25ツール)

ツール

説明

破壊的

server_info

サーバー詳細:ステータス、IP、タイプ、データセンター

server_metrics

CPU、ディスク、またはネットワークメトリクス

server_power_on

電源オン

server_power_off

強制電源オフ

確認

server_shutdown

ACPIによる正常なシャットダウン

server_reboot

ソフトリブート

server_reset

ハードリセット

確認

server_reset_password

rootパスワードのリセット

確認

server_rescue_enable

レスキューモードの有効化

server_rescue_disable

レスキューモードの無効化

server_rebuild

イメージからの再構築 (データは消去されます)

確認

server_change_type

サーバープランのリサイズ

確認

snapshot_create

スナップショットの作成

snapshot_list

スナップショットの一覧表示

snapshot_delete

スナップショットの削除

確認

backup_enable

バックアップの有効化 (+20%のコスト)

backup_disable

バックアップの無効化

確認

firewall_list

ファイアウォールの一覧表示

firewall_get

ファイアウォールルールの取得

firewall_set_rules

すべてのファイアウォールルールの置換

確認

firewall_apply_to_server

サーバーへのファイアウォール適用

firewall_remove_from_server

サーバーからのファイアウォール削除

project_servers_list

すべてのサーバーの一覧表示

ssh_keys_list

SSHキーの一覧表示

action_status

非同期アクションステータスの確認

DNS (8ツール、HETZNER_DNS_TOKENが必要)

ツール

説明

破壊的

dns_zones_list

DNSゾーンの一覧表示

dns_zone_get

ゾーン詳細の取得

dns_zone_create

DNSゾーンの作成

dns_zone_delete

DNSゾーンの削除

確認

dns_records_list

ゾーン内のレコード一覧表示

dns_record_add

DNSレコードの追加

dns_record_update

DNSレコードの更新

dns_record_delete

DNSレコードの削除

確認

レイヤー2 — SSH (27ツール)

ツール

説明

ssh_service_status

systemdサービスステータスの確認

ssh_service_start

サービスの開始

ssh_service_stop

サービスの停止

ssh_service_restart

サービスの再起動

ssh_services_list

実行中のサービス一覧表示

ssh_disk_usage

ディスク使用量 (df -h)

ssh_memory_usage

RAM使用量 (free -h)

ssh_cpu_load

CPU負荷 + 上位プロセス

ssh_process_list

メモリ/CPU別の上位プロセス

ssh_uptime

サーバーの稼働時間

ssh_nginx_test

Nginx設定構文のテスト

ssh_nginx_reload

Nginxのリロード (先にテストを実行)

ssh_nginx_sites_list

有効なサイトの一覧表示

ssh_nginx_site_config

サイトのNginx設定を表示

ssh_logs_nginx_error

Nginxエラーログの末尾を表示

ssh_logs_nginx_access

Nginxアクセスログの末尾を表示

ssh_logs_syslog

システムログの末尾を表示

ssh_logs_journal

systemdジャーナルの表示

ssh_logs_supervisor

supervisorログの表示

ssh_mysql_databases

MySQLデータベースの一覧表示

ssh_mysql_processlist

MySQLプロセスの表示

ssh_mysql_query

読み取り専用SQLクエリ

ssh_cron_list

crontabエントリの一覧表示

ssh_supervisor_status

Supervisorプログラムのステータス

ssh_supervisor_restart

Supervisorプログラムの再起動

ssh_ufw_status

UFWファイアウォールの確認

ssh_exec

コマンドの実行 (危険なコマンドはブロックされます)


認証

デプロイ環境に適したモードを選択してください:

モード

設定

最適な用途

認証なし

MCP_API_KEY= (空)、OAUTH_*なし

VPN/ファイアウォール内、ローカル開発

APIキー

MCP_API_KEY=your-key

セルフホスト、個人/チーム利用

APIキー + OAuth

MCP_API_KEY + OAUTH_*変数を設定

マルチユーザー、コネクタディレクトリ

APIキー (セルフホストに推奨)

キーを生成し、.envに設定します:

openssl rand -hex 32

クライアントは?key=XXXまたはAuthorization: Bearer XXXとしてキーを渡します。

OAuth 2.1 (オプション)

高度なデプロイやAnthropic Connectors Directoryへの提出用として、静的APIキーに加えてOAuth 2.1トークンのイントロスペクションを追加できます。これには、イントロスペクションエンドポイント (RFC 7662) を持つ外部OAuth認可サーバーが必要です。OAUTH_*変数については.env.exampleを参照してください。


セキュリティ

  • 認証: クエリパラメータまたはAuthorization: BearerヘッダーによるAPIキー認証。オプションでOAuth 2.1イントロスペクション。タイミング攻撃耐性のある検証。

  • 破壊的操作の保護: すべての危険な操作にはconfirm=trueが必要です。

  • ツールアノテーション: すべてのツールはMCP仕様に従い、readOnlyHintdestructiveHintを含みます。

  • SSHの安全性: 29個のブロックされたコマンドパターン (rm -rf, dd, mkfs, curl|sh, passwd, fdiskなど)。

  • 読み取り専用SQL: SELECT、SHOW、DESCRIBE、EXPLAINのみ許可。

  • レート制限: flock()によるIPごとのアトミックな制限。


設定

.envで任意の数のサーバーを定義します:

SERVERS=web,staging
SERVER_WEB_ID=12345678
SERVER_WEB_IP=1.2.3.4
SERVER_WEB_SSH_USER=root
SERVER_WEB_ALIASES=production,prod
SERVER_STAGING_ID=87654321
SERVER_STAGING_IP=5.6.7.8
DEFAULT_SERVER=web

SSHとDNSはオプションです。設定されていない場合、ツールは自動的に無効化されます。

完全なリファレンスについては.env.exampleを参照してください。


クライアント設定

クライアント

接続

Claude.ai

Settings > Connectors > SSE URLを指定してカスタムコネクタを追加

Claude Desktop

claude_desktop_config.jsonに追加

Claude Code

claude mcp add --transport http hetzner URL --header "Authorization: Bearer KEY"

VS Code / Cursor

VS Code拡張機能 — 近日公開


デプロイ

VitoDeployまたは手動のNginx + PHP-FPMセットアップで動作します。SSEストリーミングにはfastcgi_buffering offが必要です。クイックスタートセクションの完全なデプロイガイドを参照してください。


貢献

CONTRIBUTING.mdを参照してください。セキュリティの脆弱性については labs@wbf.solutions までご連絡ください。

リンク

ライセンス

MIT — WBF Solutions | labs@wbf.solutions

-
security - not tested
-
license - not tested
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/wbf-solutions/hetzner-cloud-mcp'

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