Veeam VBR v13 MCP Server
Veeam VBR v13 MCP-Server
Dies ist ein MCP-Server (Model Context Protocol), der die offizielle REST-API (1.3-rev1) von Veeam Backup & Replication v13 nutzt, damit KI-Agenten (Claude Desktop, Cursor usw.) die Veeam-Infrastruktur direkt steuern und überwachen können.
Basierend auf der swagger.json wurden 328 MCP-Tools aus insgesamt 39 Tags und 404 API-Operationen vollständig modular implementiert.
📋 Inhaltsverzeichnis
🌟 Hauptfunktionen
328 MCP-Tools: Deckt nahezu alle Funktionen der Veeam REST-API ab.
Dualer Übertragungsmodus:
stdio(Claude Desktop/Cursor) +streamable-http(Dify/Remote-Agenten).Einhaltung der neuesten MCP-Spezifikation (2025-03-26): Implementierung des Streamable HTTP-Übertragungsprotokolls (vollständig kompatibel mit Dify).
Smarte OAuth2-Authentifizierung: Automatische Token-Ausstellung, Erneuerung vor Ablauf und automatische Re-Authentifizierung bei 401-Fehlern.
Vollständig modular: Aufteilung in 13 Dateien für einfache Wartung und Erweiterbarkeit.
Stateful/Stateless-Option: Wahl zwischen Sitzungszustandserhaltung (Standard) oder zustandslosem Modus.
📦 Anforderungen
Element | Version | Hinweis |
Node.js | v18 oder höher | Überprüfung mit |
npm | v9 oder höher | In Node.js enthalten |
Veeam B&R | v13 | Zugriff auf REST-API-Port |
Netzwerk | - | TCP-Zugriff auf Port |
📚 Paketabhängigkeiten
Laufzeitabhängigkeiten (dependencies)
Paket | Version | Zweck |
| ^1.29.0 | MCP-Server-Framework (inkl. stdio/SSE-Übertragungsschicht) |
| ^1.15.1 | HTTP-Client für die Veeam REST-API |
| ^5.2.1 | Webserver für den SSE(HTTP)-Modus |
| ^17.4.2 | Laden von Umgebungsvariablen aus |
| ^4.3.6 | Validierung des MCP-Tool-Parameterschemas |
| ^2.2.2 | Parsen von Express-Anfrage-Bodys |
Entwicklungsabhängigkeiten (devDependencies)
Paket | Version | Zweck |
| ^6.0.3 | TypeScript-Compiler |
| ^4.21.0 | Direkte Ausführung von TypeScript (Entwicklungsmodus) |
| ^25.6.0 | Node.js-Typdefinitionen |
| ^5.0.6 | Express-Typdefinitionen |
| ^1.19.6 | body-parser-Typdefinitionen |
🚀 Installation und Build
# 1. 리포지토리 클론
git clone https://github.com/<your-username>/veeam-mcp-13.git
cd veeam-mcp-13
# 2. 의존성 설치
npm install
# 3. TypeScript 빌드 (build/ 디렉토리에 JS 출력)
npm run buildEntwicklungsmodus: Verwenden Sie
npm run dev, um TypeScript ohne Build-Schritt direkt auszuführen.
⚙️ Umgebungsvariablen
Erstellen Sie eine .env-Datei im Projektstammverzeichnis. Kopieren Sie .env.example und passen Sie diese an.
cp .env.example .env# ─── Veeam 서버 접속 정보 ─────────────────────────────────
VEEAM_SERVER=https://192.168.1.100
VEEAM_PORT=9419
VEEAM_USERNAME=Administrator
VEEAM_PASSWORD=YourPasswordHere
# ─── TLS 설정 ────────────────────────────────────────────
# Veeam 서버가 자체 서명 인증서를 사용하는 경우 0으로 설정
NODE_TLS_REJECT_UNAUTHORIZED=0
# ─── MCP 전송 모드 ───────────────────────────────────────
# stdio : Claude Desktop, Cursor 등 로컬 AI 클라이언트용
# streamable-http : Dify, 원격 AI 에이전트용 (MCP 2025-03-26 스펙)
MCP_TRANSPORT_MODE=stdio
# ─── HTTP 포트 (streamable-http 모드 전용) ───────────────
MCP_HTTP_PORT=3000
# ─── Stateless 모드 (streamable-http 전용) ───────────────
# true: 세션 없이 요청마다 독립 처리 (Dify 무상태 연동에 유리)
# false(기본): 세션 ID로 상태 유지
MCP_STATELESS=falseVariable | Erforderlich | Standardwert | Beschreibung |
| ✅ |
| Veeam-Server-Adresse (https erforderlich) |
| - |
| REST-API-Port |
| ✅ | - | Veeam-Administratorkonto |
| ✅ | - | Veeam-Administratorkennwort |
| - |
|
|
| - |
|
|
| - |
| Port für den HTTP-Modus |
| - |
|
|
🖥️ Ausführung - stdio-Modus
Der stdio-Modus ist die Methode, bei der der KI-Client (Claude Desktop, Cursor usw.) den MCP-Server-Prozess direkt als untergeordneten Prozess startet und JSON-RPC-Nachrichten über die Standard-Ein-/Ausgabe (stdin/stdout) austauscht.
Integration in Claude Desktop
Speicherort der claude_desktop_config.json:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"veeam-vbr": {
"command": "node",
"args": ["E:\\veeam-mcp-self\\build\\index.js"],
"env": {
"VEEAM_SERVER": "https://192.168.1.100",
"VEEAM_PORT": "9419",
"VEEAM_USERNAME": "Administrator",
"VEEAM_PASSWORD": "YourPassword",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}⚠️ Der Pfad in
argsmuss der absolute Pfad zur kompiliertenbuild/index.jssein.
Integration in den Cursor-Editor
.cursor/mcp.json Datei:
{
"mcpServers": {
"veeam-vbr": {
"command": "node",
"args": ["E:\\veeam-mcp-self\\build\\index.js"],
"env": {
"VEEAM_SERVER": "https://192.168.1.100",
"VEEAM_PORT": "9419",
"VEEAM_USERNAME": "Administrator",
"VEEAM_PASSWORD": "YourPassword",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}Manuelle Tests (Terminal)
Im stdio-Modus ist ein direkter Test schwierig, da der Prozess interaktiv stdin liest. Verwenden Sie den MCP Inspector:
# MCP Inspector 설치 및 실행
npx @modelcontextprotocol/inspector node build/index.jsWenn Sie im Browser auf http://localhost:5173 zugreifen, können Sie die registrierten 328 Tools einsehen und direkt aufrufen.
🌐 Ausführung - Streamable HTTP-Modus (Dify-Integration)
⚠️ Wichtig: Die alte
HTTP+SSE-Methode (getrennte Endpunkte/sse,/messages) ist seit MCP 2024-11-05 veraltet. Dify und moderne MCP-Clients verwenden die MCP 2025-03-26 Streamable HTTP-Spezifikation. Dieser Server bietet einen einzelnen/mcp-Endpunkt, der diese Spezifikation vollständig implementiert.
Server starten
# 방법 1: .env 파일에 MCP_TRANSPORT_MODE=streamable-http 설정 후
npm start
# 방법 2: 환경변수 인라인 지정 (Linux/Mac)
MCP_TRANSPORT_MODE=streamable-http MCP_HTTP_PORT=3000 npm start
# 방법 3: PowerShell (Windows)
$env:MCP_TRANSPORT_MODE="streamable-http"; $env:MCP_HTTP_PORT="3000"; npm start
# 방법 4: Stateless 모드로 실행 (Dify 권장)
$env:MCP_TRANSPORT_MODE="streamable-http"; $env:MCP_STATELESS="true"; npm start
# 방법 5: 개발 모드 (빌드 없이 직접 실행)
$env:MCP_TRANSPORT_MODE="streamable-http"; npm run devBeispielausgabe beim Serverstart
[MCP] Loaded 328 tools from 328 unique names.
[MCP] Starting Streamable HTTP mode on port 3000 (stateless=false)...
[MCP] Streamable HTTP server listening on http://0.0.0.0:3000
[MCP] MCP endpoint : POST http://localhost:3000/mcp
[MCP] SSE stream : GET http://localhost:3000/mcp (with Mcp-Session-Id)
[MCP] Session end : DELETE http://localhost:3000/mcp (with Mcp-Session-Id)
[MCP] Health : GET http://localhost:3000/health
[MCP] → Configure Dify with URL: http://<your-host>:3000/mcpHTTP-Endpunkte
Methode | Pfad | Header | Beschreibung |
|
|
| Haupt-JSON-RPC-Kanal (Initialisierung + Tool-Aufruf) |
|
|
| SSE-Benachrichtigungsstream vom Server zum Client |
|
|
| Explizite Beendigung der Sitzung |
|
| - | Überprüfung des Serverstatus und der aktiven Sitzungen |
Integration in Dify
Klicken Sie in Dify auf Tool-Verwaltung → MCP-Server hinzufügen.
Geben Sie die MCP-Server-URL ein:
http://<your-server-ip>:3000/mcpNach dem Speichern können Sie die Veeam-Tools in der Tool-Liste sehen.
Hinweis zur Docker-Umgebung: Wenn sowohl Dify als auch dieser Server in Docker laufen, verwenden Sie anstelle von
localhostdie Host-IP innerhalb des Docker-Netzwerks oder den Containernamen.
Integration des Streamable HTTP-Modus in Claude Desktop
{
"mcpServers": {
"veeam-vbr-remote": {
"url": "http://192.168.1.200:3000/mcp"
}
}
}Serverstatus prüfen
curl http://localhost:3000/healthAntwort:
{
"status": "ok",
"transport": "streamable-http",
"stateless": false,
"activeSessions": 1,
"server": "veeam-vbr-mcp v2.0.0",
"mcpEndpoint": "http://localhost:3000/mcp"
}🔧 Vergleich: stdio vs. Streamable HTTP
Element | stdio-Modus | Streamable HTTP-Modus |
Ausführung | KI-Client startet als Kindprozess | Läuft als eigenständiger Server |
Kommunikation | stdin/stdout (Standard-E/A) | HTTP POST/GET/DELETE |
MCP-Spezifikation | Aktuell (stdio ist spezifikationsunabhängig) | MCP 2025-03-26 Streamable HTTP |
Netzwerk | Nur lokal | Remote-Zugriff möglich |
Mehrere Clients | 1:1 (nur ein Client) | N:M (mehrere Clients gleichzeitig) |
Dify-Integration | ❌ Nicht möglich | ✅ Möglich (Eingabe der |
Einrichtung | Einfach (nur JSON-Konfiguration) | Serverstart + URL-Angabe |
Geeignet für | Persönlicher PC, Claude Desktop/Cursor | Dify, Team-Sharing, Remote-Deployment |
Umgebungsvariable |
|
|
🛠️ Unterstützte Tool-Kategorien (insgesamt 328 Tools)
# | Moduldatei | Hauptfunktionen | Anzahl Tools |
1 |
| Serverzeit, Zertifikate, Serverinfo, Dienstabfrage | 5 |
2 |
| Lizenzinstallation/-erneuerung, Socket/Instanz/Kapazitätsverwaltung | 16 |
3 |
| Standardkonten + Cloud-Konten (AWS/Azure/GCP) CRUD | 23 |
4 |
| Verschlüsselungskennwörter, KMS-Serververwaltung | 13 |
5 |
| E-Mail/Benachrichtigungen, Verkehrsregeln, Konfigurations-Backup, Deployment | 22 |
6 |
| Sicherheitsanalysator, Malware-Erkennung, Benutzer/Rollen, globale Ausschlüsse | 35 |
7 |
| VMware/HyperV-Inventar, Cloud/Entra ID-Browser | 23 |
8 |
| Verwaltungsserver, Speicher, SOBR, Proxy, Mount-Server, WAN | 46 |
9 |
| Backup/Replikation/Kopier-Jobs CRUD, Start/Stop/Retry | 15 |
10 |
| Backup-Datensätze, Backup-Objekte, Wiederherstellungspunkte | 17 |
11 |
| Sitzungs-/Aufgabensitzungsabfrage, Protokolle, Stopp | 8 |
12 |
| IR (VMware/HyperV/Azure), VM-Wiederherstellung, FLR, Entra ID | 46 |
13 |
| Failover/Failback, Replikate, Agenten, automatisierter Import/Export | 59 |
📁 Projektstruktur
veeam-mcp-self/
├── src/
│ ├── index.ts # 진입점 (stdio / Streamable HTTP 모드 분기)
│ ├── server.ts # McpServer 인스턴스 + 동적 Tool 등록
│ ├── veeamClient.ts # Axios 클라이언트 + OAuth2 자동 갱신
│ ├── types/
│ │ └── index.ts # 공통 타입 (ToolDefinition, ok/err 헬퍼)
│ └── tools/
│ ├── index.ts # 모든 모듈 통합 (328개 도구 배열)
│ ├── service.ts # Service & Services
│ ├── license.ts # License
│ ├── credentials.ts # Credentials & Cloud Credentials
│ ├── encryption.ts # Encryption & KMS
│ ├── generalOptions.ts # General Options, Traffic, Config Backup
│ ├── security.ts # Security, Malware, Users, Exclusions
│ ├── inventory.ts # Inventory Browser, Cloud Browser
│ ├── infrastructure.ts # Servers, Repos, Proxies, Mount, WAN
│ ├── jobs.ts # Jobs
│ ├── backups.ts # Backups, Objects, Restore Points
│ ├── sessions.ts # Sessions, Task Sessions
│ ├── restore.ts # All Restore Operations
│ └── operations.ts # Failover, Failback, Agents, Automation
├── build/ # TypeScript 컴파일 출력 (git 제외)
├── .env.example # 환경변수 템플릿
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md💬 Beispiele für die Verwendung von Prompts
Sie können dem KI-Assistenten, der mit diesem MCP verbunden ist, Anweisungen in natürlicher Sprache geben:
Überwachung
"최근 24시간 내 실패한 백업 작업이 있는지 알려줘"
"저장소의 남은 용량을 확인해줘"
"현재 실행 중인 작업 상태를 알려줘"Job-Steuerung
"DailyBackup 작업을 지금 즉시 실행해줘"
"Job ID xxxx-xxxx 를 비활성화해줘"Wiederherstellung
"VM 'WebServer01'의 최신 복원 포인트를 찾아줘"
"해당 복원 포인트로 Instant Recovery를 시작해줘"Sicherheit
"보안 준수 분석기를 실행해줘"
"멀웨어 감지 이벤트가 있는지 확인해줘"Infrastrukturverwaltung
"등록된 모든 관리 서버와 프록시 상태를 알려줘"
"새로운 VMware vCenter 서버를 추가해줘"📄 Lizenz
Dieses Projekt unterliegt der Apache License 2.0.
https://www.apache.org/licenses/LICENSE-2.0.txt
Veeam® und Veeam Backup & Replication® sind eingetragene Marken der Veeam Software Group GmbH. Dieses Projekt ist nicht offiziell mit Veeam verbunden oder von Veeam unterstützt.
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/juhyungrok4237-boop/veeam-mcp-13'
If you have feedback or need assistance with the MCP directory API, please join our Discord server