mcpField
H
Hetzner Cloud MCP Server

Hetzner Cloud MCP Server

本地服务
github.com/dkruyt云与基础设施14981 周前更新

关于 Hetzner Cloud MCP Server

Hetzner Cloud MCP 服务是一个用于调用 Hetzner Cloud API 的 MCP 服务,使语言模型能够通过结构化函数管理 Hetzner Cloud 资源。它面向需要通过 AI 管理云基础设施的用户,并提供 Claude Code 集成。

主要功能

  1. 01服务器的列出、创建与电源控制
  2. 02卷的创建、挂载、卸载与扩容
  3. 03防火墙规则管理并应用于服务器
  4. 04SSH 密钥的创建与管理
  5. 05查询镜像、服务器类型与机房位置
  6. 06支持 stdio 与 SSE 传输方式

适用场景

  1. 01通过 Claude Code 管理 Hetzner 服务器
  2. 02批量查看或调整云资源配置
  3. 03为 Web 服务器配置防火墙规则

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露服务器、卷、防火墙、SSH 密钥等管理函数。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Hetzner Cloud MCP 服务

一个用于与 Hetzner Cloud API 交互的模型上下文协议(MCP)服务。该服务支持大模型通过结构化函数管理 Hetzner Cloud 资源。

MCP Hetzner 演示

功能

  • 列出、创建和管理 Hetzner Cloud 服务器
  • 创建、挂载、卸载和调整卷的大小
  • 管理防火墙规则并将其应用于服务器
  • 创建和管理 SSH 密钥,以安全访问服务器
  • 查看可用的映像、服务器类型和位置
  • 启动、关闭和重启服务器
  • 用于大模型交互的简单、结构化 API
  • Claude Code 集成,可直接通过 Claude 管理 Hetzner 资源

要求

  • Python 3.11+
  • Hetzner Cloud API token

安装

方法 1:直接安装
  1. 克隆此仓库:
git clone https://github.com/dkruyt/mcp-hetzner.git
cd mcp-hetzner
  1. 安装依赖项:
pip install -e .
  1. 创建 .env 文件并添加 Hetzner Cloud API token:
HCLOUD_TOKEN=your_hetzner_cloud_api_token_here
方法 2:作为软件包安装
# Install directly from the repository
pip install git+https://github.com/dkruyt/mcp-hetzner.git

作为软件包安装后,在工作目录中创建 .env 文件,并添加 Hetzner Cloud API token。

使用方法

启动服务

选项 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(默认):标准输入/输出传输,通常与 Claude Code 搭配使用
  • sse:服务器发送事件传输,适用于 HTTP 客户端

默认情况下,服务运行于 localhost:8080。你可以通过以下方式自定义主机和端口:

  1. 在 .env 文件中设置 MCP_HOST 和 MCP_PORT 环境变量
  2. 使用 --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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。