使用说明
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欧元/月),acx52运行约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
许可证
麻省理工学院
