Skip to main content
Glama
dkruyt

Hetzner Cloud MCP Server

by dkruyt

Hetzner 클라우드 MCP 서버

Hetzner Cloud API와 상호 작용하기 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 언어 모델은 구조화된 함수를 통해 Hetzner Cloud 리소스를 관리할 수 있습니다.

MCP Hetzner 데모

특징

  • Hetzner Cloud 서버를 나열, 생성 및 관리합니다.

  • 볼륨 생성, 연결, 분리 및 크기 조정

  • 방화벽 규칙을 관리하고 서버에 적용합니다.

  • 보안 서버 액세스를 위한 SSH 키 생성 및 관리

  • 사용 가능한 이미지, 서버 유형 및 위치 보기

  • 서버 전원 켜기/끄기 및 재부팅

  • 언어 모델 상호작용을 위한 간단하고 구조화된 API

  • Claude에서 Hetzner 리소스를 직접 관리하기 위한 Claude Code 통합

Related MCP server: Linear MCP Server

요구 사항

  • 파이썬 3.11+

  • Hetzner Cloud API 토큰

설치

방법 1: 직접 설치

  1. 이 저장소를 복제하세요:

지엑스피1

  1. 종속성 설치:

pip install -e .
  1. .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 클라이언트에 적합한 Server-Sent Events 전송

기본적으로 서버는 localhost:8080 에서 실행됩니다. 다음과 같이 호스트와 포트를 사용자 지정할 수 있습니다.

  1. .env 파일에서 MCP_HOSTMCP_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 : 사용 가능한 OS 이미지 나열

  • list_server_types : 사용 가능한 서버 유형 나열

  • list_locations : 사용 가능한 데이터 센터 위치 나열

특허

MIT

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/dkruyt/mcp-hetzner'

If you have feedback or need assistance with the MCP directory API, please join our Discord server