Skip to main content
Glama
wbf-solutions

Hetzner Cloud MCP Server — Cloud API + SSH management (60 tools)

Hetzner Cloud MCP 서버

SSH 서버 관리를 지원하는 유일한 Hetzner MCP입니다. API와 SSH를 하나의 도구로 통합했습니다.

PHP 8.1+ License: MIT MCP Protocol

Claude.ai, Claude Desktop, VS Code, Cursor 또는 MCP 호환 클라이언트에서 Hetzner Cloud 인프라를 관리하세요. 두 가지 관리 계층을 통해 완벽한 제어가 가능합니다:

  • 계층 1 — Hetzner Cloud API: 서버 전원, 메트릭, 스냅샷, 백업, 방화벽, DNS 영역 및 레코드, 복구 모드, 서버 재구축 및 리스케일. 서버 OS가 응답하지 않을 때도 작동합니다.

  • 계층 2 — SSH: 서비스, 로그, Nginx, MySQL, supervisor, cron, UFW, 디스크/메모리/CPU 모니터링. 단순한 API 래퍼가 아닌 실제 시스템 관리 도구입니다.

60개의 도구. 동적 다중 서버 구성. 자체 호스팅 및 오픈 소스.


왜 이 MCP인가요?

기존의 모든 Hetzner MCP는 Cloud API만 래핑합니다. 이 도구는 완전한 SSH 관리 계층을 추가하여 프로덕션 서버를 관리할 때 실제로 필요한 도구들을 제공합니다. 두 개의 계층, 60개의 도구, 자체 호스팅 가능.

기능

포함 여부

Cloud API (서버 전원, 메트릭, 스냅샷, 백업, 방화벽, 복구, 재구축)

SSH 관리 (서비스, 로그, Nginx, MySQL, 시스템 상태)

DNS 관리 (영역, 레코드, CRUD)

다중 서버 (단일 인스턴스에서 1~N개 서버)

파괴적 작업 방지 (위험한 작업 시 확인 필요)

전송

SSE + 스트리밍 가능 HTTP

언어

PHP 8.1+


빠른 시작

사전 요구 사항

1. 복제 및 설치

git clone https://github.com/wbf-solutions/hetzner-cloud-mcp.git
cd hetzner-cloud-mcp
composer install

2. 구성

cp .env.example .env

.env 파일을 편집하여 세부 정보를 입력하세요:

HETZNER_API_TOKEN=your-cloud-api-token

SERVERS=web
SERVER_WEB_ID=12345678
SERVER_WEB_IP=1.2.3.4
SERVER_WEB_SSH_USER=root

SSH_KEY_PATH=/root/.ssh/id_ed25519

MCP_API_KEY=your-random-key    # generate with: openssl rand -hex 32

3. SSH 키 설정

ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""
ssh-copy-id -i /root/.ssh/id_ed25519.pub root@1.2.3.4

4. Nginx 구성

server {
    listen 443 ssl;
    server_name mcp.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/mcp.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mcp.yourdomain.com/privkey.pem;

    root /var/www/hetzner-cloud-mcp;
    index api.php;

    location / {
        try_files $uri /api.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_buffering off;
        fastcgi_read_timeout 600;
    }
}

5. Claude.ai에 연결

설정 > 커넥터 > 사용자 지정 커넥터 추가:

  • 이름: Hetzner Cloud MCP

  • URL: https://mcp.yourdomain.com/api.php

MCP_API_KEY를 설정한 경우 URL을 통해 전달하세요: ?mcp=sse&key=YOUR_MCP_API_KEY 또는 커넥터의 고급 설정에서 Bearer 토큰으로 API 키를 구성하세요.


사용 가능한 도구 (60개)

계층 1 — Hetzner Cloud API (25개 도구)

도구

설명

파괴적

server_info

서버 세부 정보: 상태, IP, 유형, 데이터센터

server_metrics

CPU, 디스크 또는 네트워크 메트릭

server_power_on

전원 켜기

server_power_off

강제 전원 끄기

확인

server_shutdown

정상적인 ACPI 종료

server_reboot

소프트 재부팅

server_reset

하드 리셋

확인

server_reset_password

루트 비밀번호 재설정

확인

server_rescue_enable

복구 모드 활성화

server_rescue_disable

복구 모드 비활성화

server_rebuild

이미지에서 재구축 (데이터 삭제)

확인

server_change_type

서버 플랜 리스케일

확인

snapshot_create

스냅샷 생성

snapshot_list

스냅샷 목록

snapshot_delete

스냅샷 삭제

확인

backup_enable

백업 활성화 (+20% 비용)

backup_disable

백업 비활성화

확인

firewall_list

방화벽 목록

firewall_get

방화벽 규칙 가져오기

firewall_set_rules

모든 방화벽 규칙 교체

확인

firewall_apply_to_server

서버에 방화벽 적용

firewall_remove_from_server

서버에서 방화벽 제거

project_servers_list

모든 서버 목록

ssh_keys_list

SSH 키 목록

action_status

비동기 작업 상태 확인

DNS (8개 도구, HETZNER_DNS_TOKEN 필요)

도구

설명

파괴적

dns_zones_list

DNS 영역 목록

dns_zone_get

영역 세부 정보 가져오기

dns_zone_create

DNS 영역 생성

dns_zone_delete

DNS 영역 삭제

확인

dns_records_list

영역 내 레코드 목록

dns_record_add

DNS 레코드 추가

dns_record_update

DNS 레코드 업데이트

dns_record_delete

DNS 레코드 삭제

확인

계층 2 — SSH (27개 도구)

도구

설명

ssh_service_status

systemd 서비스 상태 확인

ssh_service_start

서비스 시작

ssh_service_stop

서비스 중지

ssh_service_restart

서비스 재시작

ssh_services_list

실행 중인 서비스 목록

ssh_disk_usage

디스크 공간 (df -h)

ssh_memory_usage

RAM 사용량 (free -h)

ssh_cpu_load

CPU 부하 + 상위 프로세스

ssh_process_list

메모리/CPU 기준 상위 프로세스

ssh_uptime

서버 가동 시간

ssh_nginx_test

Nginx 설정 구문 테스트

ssh_nginx_reload

Nginx 리로드 (테스트 후)

ssh_nginx_sites_list

활성화된 사이트 목록

ssh_nginx_site_config

사이트 Nginx 설정 보기

ssh_logs_nginx_error

Nginx 에러 로그 테일

ssh_logs_nginx_access

Nginx 액세스 로그 테일

ssh_logs_syslog

시스템 로그 테일

ssh_logs_journal

systemd 저널 보기

ssh_logs_supervisor

supervisor 로그 보기

ssh_mysql_databases

MySQL 데이터베이스 목록

ssh_mysql_processlist

MySQL 프로세스 보기

ssh_mysql_query

읽기 전용 SQL 쿼리

ssh_cron_list

crontab 항목 목록

ssh_supervisor_status

Supervisor 프로그램 상태

ssh_supervisor_restart

Supervisor 프로그램 재시작

ssh_ufw_status

UFW 방화벽 확인

ssh_exec

명령 실행 (위험한 명령 차단됨)


인증

배포 환경에 맞는 모드를 선택하세요:

모드

구성

권장 대상

인증 없음

MCP_API_KEY= (비어 있음), OAUTH_* 없음

VPN/방화벽 내부, 로컬 개발

API 키

MCP_API_KEY=your-key

자체 호스팅, 단일 사용자/팀

API 키 + OAuth

MCP_API_KEY + OAUTH_* 변수 설정

다중 사용자, 커넥터 디렉토리

API 키 (자체 호스팅 권장)

키를 생성하고 .env에 설정하세요:

openssl rand -hex 32

클라이언트는 ?key=XXX 또는 Authorization: Bearer XXX로 키를 전달합니다.

OAuth 2.1 (선택 사항)

고급 배포 또는 Anthropic 커넥터 디렉토리 제출을 위해 정적 API 키와 함께 OAuth 2.1 토큰 인트로스펙션을 추가할 수 있습니다. 이를 위해서는 인트로스펙션 엔드포인트(RFC 7662)가 있는 외부 OAuth 인증 서버가 필요합니다. OAUTH_* 변수는 .env.example을 참조하세요.


보안

  • 인증: 쿼리 매개변수 또는 Authorization: Bearer 헤더를 통한 API 키. 선택적 OAuth 2.1 인트로스펙션. 타이밍 안전 검증.

  • 파괴적 작업 방지: 모든 위험한 작업은 confirm=true가 필요합니다.

  • 도구 주석: 모든 도구는 MCP 사양에 따라 readOnlyHintdestructiveHint를 포함합니다.

  • SSH 안전: 29개의 차단된 명령 패턴 (rm -rf, dd, mkfs, curl|sh, passwd, fdisk 등).

  • 읽기 전용 SQL: SELECT, SHOW, DESCRIBE, EXPLAIN만 허용됩니다.

  • 속도 제한: 원자적 flock()을 사용한 IP별 제한.


구성

.env에 원하는 만큼 서버를 정의하세요:

SERVERS=web,staging
SERVER_WEB_ID=12345678
SERVER_WEB_IP=1.2.3.4
SERVER_WEB_SSH_USER=root
SERVER_WEB_ALIASES=production,prod
SERVER_STAGING_ID=87654321
SERVER_STAGING_IP=5.6.7.8
DEFAULT_SERVER=web

SSH와 DNS는 선택 사항입니다. 구성되지 않으면 도구가 자동으로 비활성화됩니다.

전체 참조는 .env.example을 확인하세요.


클라이언트 구성

클라이언트

연결

Claude.ai

설정 > 커넥터 > SSE URL로 사용자 지정 커넥터 추가

Claude Desktop

claude_desktop_config.json에 추가

Claude Code

claude mcp add --transport http hetzner URL --header "Authorization: Bearer KEY"

VS Code / Cursor

VS Code 확장 프로그램 — 곧 출시 예정


배포

VitoDeploy 또는 수동 Nginx + PHP-FPM 설정에서 작동합니다. SSE 스트리밍을 위해 fastcgi_buffering off가 필요합니다. 빠른 시작 섹션의 전체 배포 가이드를 참조하세요.


기여

CONTRIBUTING.md를 참조하세요. 보안 취약점 보고: labs@wbf.solutions.

링크

라이선스

MIT — WBF Solutions | labs@wbf.solutions

-
security - not tested
-
license - not tested
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/wbf-solutions/hetzner-cloud-mcp'

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