MCP Hetzner云管理
一种模型上下文协议服务器,允许语言模型通过结构化函数管理Hetzner Cloud资源,包括服务器、卷、防火墙和SSH密钥。
服务介绍
Hetzner Cloud MCP 服务器
一个用于与 Hetzner Cloud API 交互的模型上下文协议 (MCP) 服务器。该服务器允许语言模型通过结构化函数管理 Hetzner Cloud 资源。

特性
- 列出、创建和管理 Hetzner Cloud 服务器
- 创建、挂载、卸载和调整卷大小
- 管理防火墙规则并将其应用于服务器
- 创建和管理 SSH 密钥以实现安全的服务器访问
- 查看可用镜像、服务器类型和位置
- 开机/关机和重启服务器
- 为语言模型交互提供简单、结构化的 API
- Claude Code 集成,直接从 Claude 管理 Hetzner 资源
要求
- Python 3.11+
- Hetzner Cloud API 令牌
安装
方法 1:直接安装
- 克隆此仓库:
git clone https://github.com/dkruyt/mcp-hetzner.git
cd mcp-hetzner
- 安装依赖项:
pip install -e .
- 创建一个
.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
在作为包安装之后,在工作目录中创建一个包含你的 Hetzner Cloud API 令牌的 .env 文件。
使用
启动服务器
选项 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
服务器支持两种传输模式:
stdio(默认):标准 I/O 传输,通常与 Claude Code 一起使用sse:服务器发送事件传输,适用于 HTTP 客户端
默认情况下,服务器在 localhost:8080 上运行。你可以通过以下方式自定义主机和端口:
- 在
.env文件中设置MCP_HOST和MCP_PORT环境变量 - 使用
--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: 列出可用的操作系统镜像list_server_types: 列出可用的服务器类型list_locations: 列出可用的数据中心位置
许可证
MIT