Hetzner Cloud MCP Server

by dkruyt
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Hetzner 클라우드 MCP 서버

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

특징

  • Hetzner Cloud 서버를 나열, 생성 및 관리합니다.
  • 볼륨 생성, 연결, 분리 및 크기 조정
  • 방화벽 규칙을 관리하고 서버에 적용합니다.
  • 보안 서버 액세스를 위한 SSH 키 생성 및 관리
  • 사용 가능한 이미지, 서버 유형 및 위치 보기
  • 서버 전원 켜기/끄기 및 재부팅
  • 언어 모델 상호작용을 위한 간단하고 구조화된 API
  • Claude에서 Hetzner 리소스를 직접 관리하기 위한 Claude Code 통합

요구 사항

  • 파이썬 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

-
security - not tested
A
license - permissive license
-
quality - not tested

서버, 볼륨, 방화벽, SSH 키 등의 구조화된 기능을 통해 언어 모델이 Hetzner Cloud 리소스를 관리할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.

  1. Features
    1. Requirements
      1. Installation
        1. Method 1: Direct Installation
        2. Method 2: Install as a Package
      2. Usage
        1. Starting the Server
        2. Using with Claude Code
        3. Testing the API
      3. Example Workflows
        1. Basic Server Management
        2. Volume Management
        3. Firewall Management
        4. SSH Key Management
        5. Infrastructure Planning
      4. Available Functions
        1. Server Management
        2. Volume Management
        3. Firewall Management
        4. SSH Key Management
        5. Information
      5. License
        ID: n13pxof5ni