Veeam VBR v13 MCP Server
Servidor MCP Veeam VBR v13
Este es un servidor MCP (Model Context Protocol) que utiliza la API REST oficial (1.3-rev1) de Veeam Backup & Replication v13 para permitir que los agentes de IA (Claude Desktop, Cursor, etc.) controlen y supervisen directamente la infraestructura de Veeam.
Se han implementado de forma totalmente modular 328 herramientas MCP significativas, seleccionadas de entre 39 etiquetas y 404 operaciones de API según el archivo swagger.json.
📋 Índice
🌟 Funciones principales
328 herramientas MCP: Cubre casi todas las funciones de la API REST de Veeam.
Modo de transporte dual:
stdio(Claude Desktop/Cursor) +streamable-http(Dify/agentes remotos).Cumplimiento con la especificación MCP 2025-03-26: Implementación del modo de transporte HTTP transmitible (totalmente compatible con Dify).
Autenticación OAuth2 inteligente: Emisión automática de tokens, renovación antes de la expiración y reautenticación automática ante errores 401.
Totalmente modular: Funciones separadas en 13 archivos para facilitar el mantenimiento y la expansión.
Selección Stateful/Stateless: Posibilidad de mantener el estado de la sesión (predeterminado) o elegir el modo sin estado.
📦 Requisitos
Elemento | Versión | Notas |
Node.js | v18 o superior | Verificar con |
npm | v9 o superior | Incluido en Node.js |
Veeam B&R | v13 | Requiere acceso al puerto REST API |
Red | - | Debe tener acceso TCP al puerto |
📚 Dependencias del paquete
Dependencias de tiempo de ejecución (dependencies)
Paquete | Versión | Propósito |
| ^1.29.0 | Framework del servidor MCP (incluye capas de transporte stdio/SSE) |
| ^1.15.1 | Cliente HTTP para la API REST de Veeam |
| ^5.2.1 | Servidor web para el modo SSE (HTTP) |
| ^17.4.2 | Carga de variables de entorno desde |
| ^4.3.6 | Validación de esquemas de parámetros de herramientas MCP |
| ^2.2.2 | Análisis del cuerpo de las solicitudes Express |
Dependencias de desarrollo (devDependencies)
Paquete | Versión | Propósito |
| ^6.0.3 | Compilador de TypeScript |
| ^4.21.0 | Ejecución directa de TypeScript (modo desarrollo) |
| ^25.6.0 | Definiciones de tipos de Node.js |
| ^5.0.6 | Definiciones de tipos de Express |
| ^1.19.6 | Definiciones de tipos de body-parser |
🚀 Instalación y compilación
# 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 buildModo desarrollo: Para ejecutar TypeScript directamente sin compilar, utilice
npm run dev.
⚙️ Configuración de variables de entorno
Cree un archivo .env en la raíz del proyecto. Copie y modifique .env.example.
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 | Obligatorio | Predeterminado | Descripción |
| ✅ |
| Dirección del servidor Veeam (https obligatorio) |
| - |
| Puerto de la API REST |
| ✅ | - | Cuenta de administrador de Veeam |
| ✅ | - | Contraseña de administrador de Veeam |
| - |
|
|
| - |
|
|
| - |
| Puerto para el modo HTTP |
| - |
|
|
🖥️ Método de ejecución - modo stdio
El modo stdio es aquel en el que el cliente de IA (Claude Desktop, Cursor, etc.) ejecuta el proceso del servidor MCP directamente como un proceso hijo e intercambia mensajes JSON-RPC a través de la entrada/salida estándar (stdin/stdout).
Integración con Claude Desktop
Ubicación del archivo 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"
}
}
}
}⚠️ La ruta en
argsdebe ser la ruta absoluta al archivobuild/index.jscompilado.
Integración con el editor Cursor
Archivo .cursor/mcp.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"
}
}
}
}Prueba manual (terminal)
En el modo stdio, el proceso lee stdin de forma interactiva, por lo que es difícil probarlo directamente. Utilice el Inspector MCP:
# MCP Inspector 설치 및 실행
npx @modelcontextprotocol/inspector node build/index.jsAl acceder a http://localhost:5173 desde el navegador, podrá ver las 328 herramientas registradas e invocarlas directamente.
🌐 Método de ejecución - modo HTTP transmitible (integración con Dify)
⚠️ Importante: El método antiguo
HTTP+SSE(endpoints separados/sse,/messages) ha quedado obsoleto desde MCP 2024-11-05. Dify y los clientes MCP modernos utilizan la especificación MCP 2025-03-26 Streamable HTTP. Este servidor proporciona un endpoint único/mcpque implementa completamente la especificación más reciente.
Ejecución del servidor
# 방법 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 devEjemplo de salida al ejecutar el servidor
[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/mcpEndpoints HTTP
Método | Ruta | Cabecera | Descripción |
|
|
| Canal JSON-RPC principal (inicialización + llamada a herramientas) |
|
|
| Flujo de notificaciones SSE del servidor al cliente |
|
|
| Cierre explícito de sesión |
|
| - | Verificación del estado del servidor y número de sesiones activas |
Integración en Dify
En Dify, vaya a Gestión de herramientas → haga clic en Añadir servidor MCP.
Introduzca la URL del servidor MCP:
http://<your-server-ip>:3000/mcpTras guardar, verifique las herramientas de Veeam en la lista de herramientas.
Nota sobre el entorno Docker: Si tanto Dify como este servidor se ejecutan en Docker, utilice la IP del host dentro de la red Docker o el nombre del contenedor en lugar de
localhost.
Integración del modo HTTP transmitible en Claude Desktop
{
"mcpServers": {
"veeam-vbr-remote": {
"url": "http://192.168.1.200:3000/mcp"
}
}
}Verificación del estado del servidor
curl http://localhost:3000/healthRespuesta:
{
"status": "ok",
"transport": "streamable-http",
"stateless": false,
"activeSessions": 1,
"server": "veeam-vbr-mcp v2.0.0",
"mcpEndpoint": "http://localhost:3000/mcp"
}🔧 Comparación: stdio vs HTTP transmitible
Elemento | Modo stdio | Modo HTTP transmitible |
Ejecutor | El cliente de IA lo ejecuta como proceso hijo | Se ejecuta previamente como servidor independiente |
Comunicación | stdin/stdout (E/S estándar) | HTTP POST/GET/DELETE |
Especificación MCP | Reciente (stdio es independiente de la especificación) | MCP 2025-03-26 Streamable HTTP |
Red | Solo local | Acceso remoto posible |
Multicliente | 1:1 (solo un cliente) | N:M (varios clientes simultáneos) |
Integración Dify | ❌ No posible | ✅ Posible (introduciendo URL |
Dificultad de configuración | Fácil (solo configuración JSON) | Ejecución del servidor + especificación de URL |
Situación adecuada | PC personal, Claude Desktop/Cursor | Dify, uso compartido en equipo, despliegue remoto |
Variables de entorno |
|
|
🛠️ Categorías de herramientas compatibles (Total 328 herramientas)
# | Archivo de módulo | Funciones principales | Cantidad de herramientas |
1 |
| Hora del servidor, certificados, información del servidor, consulta de servicios | 5 |
2 |
| Instalación/renovación de licencias, gestión de sockets/instancias/capacidad | 16 |
3 |
| CRUD de cuentas estándar + cuentas en la nube (AWS/Azure/GCP) | 23 |
4 |
| Contraseñas de cifrado, gestión de servidores KMS | 13 |
5 |
| Configuración de correo/notificaciones, reglas de tráfico, copia de seguridad de configuración, despliegue | 22 |
6 |
| Analizador de seguridad, detección de malware, usuarios/roles, exclusiones globales | 35 |
7 |
| Inventario VMware/HyperV, navegador de nube/Entra ID | 23 |
8 |
| Servidores de gestión, repositorios, SOBR, proxies, servidores de montaje, WAN | 46 |
9 |
| CRUD de trabajos de backup/replicación/copia, Start/Stop/Retry | 15 |
10 |
| Conjuntos de datos de backup, objetos de backup, puntos de restauración | 17 |
11 |
| Consulta de sesiones/sesiones de tareas, registros, detención | 8 |
12 |
| IR (VMware/HyperV/Azure), restauración de VM, FLR, Entra ID | 46 |
13 |
| Failover/Failback, réplicas, agentes, importación/exportación automatizada | 59 |
📁 Estructura del proyecto
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💬 Ejemplos de uso de prompts
Puede dar instrucciones en lenguaje natural a su asistente de IA conectado a este MCP:
Supervisión
"최근 24시간 내 실패한 백업 작업이 있는지 알려줘"
"저장소의 남은 용량을 확인해줘"
"현재 실행 중인 작업 상태를 알려줘"Control de trabajos
"DailyBackup 작업을 지금 즉시 실행해줘"
"Job ID xxxx-xxxx 를 비활성화해줘"Restauración
"VM 'WebServer01'의 최신 복원 포인트를 찾아줘"
"해당 복원 포인트로 Instant Recovery를 시작해줘"Seguridad
"보안 준수 분석기를 실행해줘"
"멀웨어 감지 이벤트가 있는지 확인해줘"Gestión de infraestructura
"등록된 모든 관리 서버와 프록시 상태를 알려줘"
"새로운 VMware vCenter 서버를 추가해줘"📄 Licencia
Este proyecto sigue la Apache License 2.0
https://www.apache.org/licenses/LICENSE-2.0.txt
Veeam® y Veeam Backup & Replication® son marcas registradas de Veeam Software Group GmbH. Este proyecto no está afiliado ni respaldado oficialmente por Veeam.
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