Skip to main content
Glama
wbf-solutions

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

Hetzner Cloud MCP 服务器

唯一具备 SSH 服务器管理的 Hetzner MCP。API + SSH 集于一体。

PHP 8.1+ License: MIT MCP Protocol

Claude.ai、Claude Desktop、VS Code、Cursor 或任何兼容 MCP 的客户端管理您的 Hetzner Cloud 基础设施。两个管理层为您提供完全控制:

  • 第 1 层 — Hetzner Cloud API: 服务器电源、指标、快照、备份、防火墙、DNS 区域和记录、救援模式、服务器重建和调整大小。即使服务器操作系统无响应也能工作。

  • 第 2 层 — SSH: 服务、日志、Nginx、MySQL、supervisor、cron、UFW、磁盘/内存/CPU 监控。真正的系统管理员工具,而不仅仅是 API 包装器。

60 个工具。动态多服务器配置。自托管且开源。


为什么选择此 MCP?

现有的每个 Hetzner MCP 都只是包装了 Cloud API。此版本增加了一个完整的 SSH 管理层——这是您在管理生产服务器时真正需要的工具。两个层级,60 个工具,自托管。

功能

包含

Cloud API (服务器电源、指标、快照、备份、防火墙、救援、重建)

SSH 管理 (服务、日志、Nginx、MySQL、系统健康状况)

DNS 管理 (区域、记录、CRUD)

多服务器 (单个实例管理 1 到 N 台服务器)

破坏性防护 (危险操作需要确认)

传输

SSE + 可流式传输 HTTP

语言

PHP 8.1+


快速入门

先决条件

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

设置 > 连接器 > 添加自定义连接器:

  • 名称: Hetzner Cloud MCP

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

如果您设置了 MCP_API_KEY,请通过 URL 传递:?mcp=sse&key=YOUR_MCP_API_KEY 或者在连接器的高级设置中将 API 密钥配置为 Bearer 令牌。


可用工具 (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

内存使用情况 (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=XXXAuthorization: Bearer XXX 传递密钥。

OAuth 2.1 (可选)

对于高级部署或提交到 Anthropic 连接器目录,您可以添加 OAuth 2.1 令牌自省以及静态 API 密钥。这需要一个带有自省端点 (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

设置 > 连接器 > 添加带有 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 设置。需要 fastcgi_buffering off 以进行 SSE 流式传输。请参阅 快速入门 部分中的完整部署指南。


贡献

请参阅 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