Hetzner云管理工具

一个为Claude Code提供40种工具来管理Hetzner云的MCP服务器,包括服务器、SSH密钥、云卷、存储盒和实时指标。

  • by jurislm
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jurislm/hetzner-mcp

使用说明

Hetzner MCP 服务器

一个MCP服务器,为Claude Code 40提供管理Hetzner Cloud的工具——服务器、SSH密钥、云卷、存储箱和实时指标。


快速开始

npm install -g @jurislm/hetzner-mcp

添加到您的Claude Code MCP配置中(通常 ~/.claude.json --奔跑 /mcp 确认位置):

{
  "mcpServers": {
    "hetzner": {
      "type": "stdio",
      "command": "npx",
      "args": ["@jurislm/hetzner-mcp"],
      "env": {
        "HETZNER_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

重新启动克劳德代码。完成。


环境变量

变量 必填 描述
HETZNER_API_TOKEN ✅ 云API令牌-读写。生成时间 console.hetzner.cloud → 项目→ 安全→ API令牌。
HETZNER_API_TOKEN_UNIFIED 仅限存储盒 用于存储盒工具的统一API令牌。生成时间 console.hetzner.com/account/security/api-tokens.回落到 HETZNER_API_TOKEN 如果未设置,但将返回云项目令牌 401.

为什么是两个代币?

储物箱工具调用 api.hetzner.com/v1 (统一的API),而所有其他工具调用 api.hetzner.cloud/v1 (云API)。这两个端点使用不同的令牌命名空间。如果您想要最简单的设置,请从以下位置生成一个统一的令牌 console.hetzner.com 并将其用于这两个变量。


可用工具(共40个)

⚠️ 标记破坏性或难以逆转的操作。

服务器(7)

工具 说明 ⚠️
hetzner_list_servers 列出所有服务器--状态、IP、规格、位置
hetzner_get_server 获取一台服务器的完整详细信息
hetzner_create_server 创建新服务器(立即计费)
hetzner_delete_server 永久删除服务器及其所有数据 ⚠️
hetzner_power_on_server 启动已停止的服务器
hetzner_power_off_server 硬关机(相当于拔下电源线) ⚠️
hetzner_reboot_server 硬重启(相当于按下重置按钮) ⚠️

SSH密钥(4)

工具 说明 ⚠️
hetzner_list_ssh_keys 列出项目中的所有SSH密钥
hetzner_get_ssh_key 获取一个SSH密钥的详细信息
hetzner_create_ssh_key 添加新的SSH公钥
hetzner_delete_ssh_key 删除SSH密钥 ⚠️

参考文献(3)

工具 说明
hetzner_list_server_types 可用的服务器大小,包括CPU、RAM、磁盘和定价
hetzner_list_images 可用操作系统映像
hetzner_list_locations 可用数据中心及其位置

云容量(4)

工具 说明 ⚠️
hetzner_list_volumes 列出所有卷--大小、装载路径、连接的服务器
hetzner_get_volume 获取一卷的详细信息
hetzner_attach_volume 将卷附加到服务器 ⚠️
hetzner_detach_volume 从服务器上分离卷 ⚠️

服务器指标(1)

工具 说明
hetzner_get_server_metrics CPU、磁盘I/O和网络指标——默认为最后5分钟

通过SSH连接的服务器RAM(1)

工具 说明
hetzner_get_server_ram SSH进入服务器并运行 free -m 获取RAM和交换使用情况(Hetzner Metrics API不公开内存指标)

先决条件 hetzner_get_server_ram: 服务器的公共IPv4必须可访问,SSH私钥必须在系统SSH代理中可用,或者 ~/.ssh/.

储物箱(20)-需要 HETZNER_API_TOKEN_UNIFIED

核心

工具 说明 ⚠️
hetzner_list_storage_boxes 列出所有存储箱(自动分页)
hetzner_get_storage_box 获取一个存储箱的详细信息
hetzner_create_storage_box 创建新的存储箱(立即计费)
hetzner_update_storage_box 更新名称或标签
hetzner_delete_storage_box 永久删除存储箱 ⚠️
hetzner_change_storage_box_type 升级或降级Storage Box计划 ⚠️
hetzner_change_storage_box_protection 启用或禁用删除保护
hetzner_reset_storage_box_password 重置存储箱密码 ⚠️
hetzner_update_storage_box_access_settings 配置SSH/Samba/WebDAV/ZFS/外部访问

文件夹

工具 说明
hetzner_list_storage_box_folders 列出存储箱内的文件夹

子账户

工具 说明 ⚠️
hetzner_list_storage_box_subaccounts 列出子帐户(自动分页)
hetzner_create_storage_box_subaccount 创建具有范围访问权限的子帐户
hetzner_update_storage_box_subaccount 更新子帐户设置
hetzner_delete_storage_box_subaccount 删除子帐户 ⚠️

快照

工具 说明 ⚠️
hetzner_list_storage_box_snapshots 列出快照(自动分页)
hetzner_create_storage_box_snapshot 触发按需快照
hetzner_delete_storage_box_snapshot 删除快照 ⚠️
hetzner_rollback_storage_box_snapshot 回滚到快照--覆盖当前数据 ⚠️
hetzner_enable_storage_box_snapshot_plan 启用自动定时快照
hetzner_disable_storage_box_snapshot_plan 禁用自动定时快照

能力和局限性

该MCP可以:

  • 创建、管理和监视服务器
  • 管理SSH密钥、云卷和存储箱
  • 报告CPU、磁盘I/O、网络和RAM使用情况

此MCP不能:

  • 创建Hetzner项目(在web控制台中执行)
  • 管理计费、防火墙、负载均衡器、浮动IP或网络
  • 查看您提供令牌的项目外部的资源

⚠️ 创建服务器需要真钱。 Hetzner按小时计费 cx22 运行约0.006欧元/小时(约4欧元/月),a cx52 运行约0.119欧元/小时(约86欧元/月)。始终删除不使用的服务器。


故障排除

HETZNER_API_TOKEN environment variable is required --MCP配置环境块中缺少令牌。添加Claude Code后重新启动它。

401 Unauthorized 存储盒工具 --您需要一个统一的令牌 console.hetzner.com/account/security/api-tokens,不是云项目令牌。设置为 HETZNER_API_TOKEN_UNIFIED.

hetzner_get_server_ram 连接错误 --检查服务器是否正在运行,端口22是否可访问,以及 ssh_user (默认值 root)通过代理中加载的密钥进行SSH访问。


发展

bun install
bun run build       # compile TypeScript to dist/
bun run dev         # watch mode
bun run test        # vitest
bun run typecheck   # tsc --noEmit
bun run lint        # eslint --max-warnings=0

要在不发布的情况下进行本地测试,请执行以下操作:

HETZNER_API_TOKEN="your-token" bun dist/index.js

许可证

麻省理工学院