Veeam VBR v13 MCP Server
Provides 328 MCP tools for managing Veeam Backup & Replication v13 infrastructure, enabling AI agents to control backup jobs, restore operations, monitor sessions, manage licenses, credentials, encryption, and infrastructure components through the official REST API.
Enables AI agents to manage VMware infrastructure within Veeam Backup & Replication, including inventory browsing, backup operations, and instant VM recovery for VMware environments.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Veeam VBR v13 MCP Servershow me the status of my backup jobs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Veeam VBR v13 MCP Server
Veeam Backup & Replication v13의 공식 REST API(1.3-rev1)를 활용하여 AI 에이전트(Claude Desktop, Cursor 등)가 Veeam 인프라를 직접 제어하고 모니터링할 수 있도록 해주는 MCP(Model Context Protocol) 서버입니다.
swagger.json 기준 39개 태그, 404개 API Operations 중 의미 있는 328개의 MCP Tools를 완전 모듈화하여 구현하였습니다.
📋 목차
🌟 주요 기능
328개 MCP Tools: Veeam REST API의 거의 모든 기능 포괄
듀얼 전송 모드:
stdio(Claude Desktop/Cursor) +streamable-http(Dify/원격 에이전트)MCP 2025-03-26 최신 스펙 준수: Streamable HTTP 전송 방식 구현 (Dify 완전 호환)
스마트 OAuth2 인증: 자동 토큰 발급, 만료 전 갱신, 401 시 자동 재인증
완전 모듈화: 13개 파일로 기능별 분리 → 유지보수 및 확장 용이
Stateful/Stateless 선택: 세션 상태 유지(기본) 또는 상태 비저장 모드 선택 가능
📦 요구사항
항목 | 버전 | 비고 |
Node.js | v18 이상 |
|
npm | v9 이상 | Node.js에 포함 |
Veeam B&R | v13 | REST API 포트 |
네트워크 | - | Veeam 서버의 |
📚 패키지 의존성
런타임 의존성 (dependencies)
패키지 | 버전 | 용도 |
| ^1.29.0 | MCP 서버 프레임워크 (stdio/SSE 전송 계층 포함) |
| ^1.15.1 | Veeam REST API HTTP 클라이언트 |
| ^5.2.1 | SSE(HTTP) 모드 웹서버 |
| ^17.4.2 |
|
| ^4.3.6 | MCP Tool 파라미터 스키마 검증 |
| ^2.2.2 | Express 요청 본문 파싱 |
개발 의존성 (devDependencies)
패키지 | 버전 | 용도 |
| ^6.0.3 | TypeScript 컴파일러 |
| ^4.21.0 | TypeScript 직접 실행 (개발 모드) |
| ^25.6.0 | Node.js 타입 정의 |
| ^5.0.6 | Express 타입 정의 |
| ^1.19.6 | body-parser 타입 정의 |
🚀 설치 및 빌드
# 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 build개발 모드: 빌드 없이 TypeScript를 직접 실행하려면
npm run dev를 사용하세요.
⚙️ 환경 변수 설정
프로젝트 루트에 .env 파일을 생성합니다. .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=false변수 | 필수 | 기본값 | 설명 |
| ✅ |
| Veeam 서버 주소 (https 필수) |
| - |
| REST API 포트 |
| ✅ | - | Veeam 관리자 계정 |
| ✅ | - | Veeam 관리자 비밀번호 |
| - |
|
|
| - |
|
|
| - |
| HTTP 모드 포트 |
| - |
|
|
🖥️ 실행 방법 - stdio 모드
stdio 모드는 AI 클라이언트(Claude Desktop, Cursor 등)가 MCP 서버 프로세스를 직접 자식 프로세스로 실행하고, **표준 입출력(stdin/stdout)**을 통해 JSON-RPC 메시지를 주고받는 방식입니다.
Claude Desktop 연동
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"
}
}
}
}⚠️
args의 경로는 빌드된build/index.js의 절대 경로로 지정해야 합니다.
Cursor 에디터 연동
.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"
}
}
}
}수동 테스트 (터미널)
stdio 모드에서는 프로세스가 대화형으로 stdin을 읽기 때문에 직접 테스트하기 어렵습니다. MCP Inspector를 사용하세요:
# MCP Inspector 설치 및 실행
npx @modelcontextprotocol/inspector node build/index.js브라우저에서 http://localhost:5173으로 접속하면 등록된 328개의 도구를 확인하고 직접 호출할 수 있습니다.
🌐 실행 방법 - Streamable HTTP 모드 (Dify 연동)
⚠️ 중요: 기존 구버전
HTTP+SSE방식(/sse,/messages분리 엔드포인트)은 MCP 2024-11-05 기준 Deprecated되었습니다.
Dify 및 최신 MCP 클라이언트는 MCP 2025-03-26 Streamable HTTP 스펙을 사용합니다.
이 서버는 최신 스펙을 완전히 구현한 단일/mcp엔드포인트를 제공합니다.
서버 실행
# 방법 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 dev서버 실행 시 출력 예시
[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 엔드포인트
Method | Path | 헤더 | 설명 |
|
|
| 메인 JSON-RPC 채널 (초기화 + 도구 호출) |
|
|
| 서버 → 클라이언트 SSE 알림 스트림 |
|
|
| 세션 명시적 종료 |
|
| - | 서버 상태 및 활성 세션 수 확인 |
Dify에서 연동하기
Dify 도구 관리 → MCP 서버 추가 클릭
MCP 서버 URL 입력:
http://<your-server-ip>:3000/mcp저장 후 도구 목록에서 Veeam 도구 확인
Docker 환경 주의사항: Dify와 이 서버가 모두 Docker로 실행 중이라면,
localhost대신 Docker 네트워크 내 호스트 IP 또는 컨테이너 이름을 사용하세요.
Claude Desktop에서 Streamable HTTP 모드 연동
{
"mcpServers": {
"veeam-vbr-remote": {
"url": "http://192.168.1.200:3000/mcp"
}
}
}서버 상태 확인
curl http://localhost:3000/health응답:
{
"status": "ok",
"transport": "streamable-http",
"stateless": false,
"activeSessions": 1,
"server": "veeam-vbr-mcp v2.0.0",
"mcpEndpoint": "http://localhost:3000/mcp"
}🔧 stdio vs Streamable HTTP 비교
항목 | stdio 모드 | Streamable HTTP 모드 |
실행 주체 | AI 클라이언트가 자식 프로세스로 실행 | 독립 서버로 미리 실행 |
통신 방식 | stdin/stdout (표준 입출력) | HTTP POST/GET/DELETE |
MCP 스펙 | 최신 (stdio는 스펙 무관) | MCP 2025-03-26 Streamable HTTP |
네트워크 | 로컬 전용 | 원격 접속 가능 |
다중 클라이언트 | 1:1 (한 클라이언트만) | N:M (여러 클라이언트 동시) |
Dify 연동 | ❌ 불가 | ✅ 가능 ( |
설정 난이도 | 쉬움 (JSON 설정만) | 서버 실행 + URL 지정 |
적합한 상황 | 개인 PC Claude Desktop/Cursor | Dify, 팀 공유, 원격 배포 |
환경변수 |
|
|
🛠️ 지원되는 도구 카테고리 (총 328 Tools)
# | 모듈 파일 | 주요 기능 | 도구 수 |
1 |
| 서버 시간, 인증서, 서버 정보, 서비스 조회 | 5 |
2 |
| 라이선스 설치/갱신, 소켓/인스턴스/용량 관리 | 16 |
3 |
| 표준 계정 + 클라우드(AWS/Azure/GCP) 계정 CRUD | 23 |
4 |
| 암호화 비밀번호, KMS 서버 관리 | 13 |
5 |
| 이메일/알림 설정, 트래픽 규칙, 구성 백업, 배포 | 22 |
6 |
| 보안 분석기, 멀웨어 감지, 사용자/역할, 전역 제외 | 35 |
7 |
| VMware/HyperV 인벤토리, 클라우드/Entra ID 브라우저 | 23 |
8 |
| 관리 서버, 저장소, SOBR, 프록시, 마운트 서버, WAN | 46 |
9 |
| 백업/복제/복사 작업 CRUD, Start/Stop/Retry | 15 |
10 |
| 백업 데이터셋, 백업 개체, 복원 포인트 | 17 |
11 |
| 세션/태스크 세션 조회, 로그, 중지 | 8 |
12 |
| IR(VMware/HyperV/Azure), VM 복원, FLR, Entra ID | 46 |
13 |
| 장애조치/원복, 복제본, 에이전트, 자동화 Import/Export | 59 |
📁 프로젝트 구조
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💬 프롬프트 활용 예시
이 MCP를 연결한 AI 비서에게 자연어로 명령할 수 있습니다:
모니터링
"최근 24시간 내 실패한 백업 작업이 있는지 알려줘"
"저장소의 남은 용량을 확인해줘"
"현재 실행 중인 작업 상태를 알려줘"작업 제어
"DailyBackup 작업을 지금 즉시 실행해줘"
"Job ID xxxx-xxxx 를 비활성화해줘"복원
"VM 'WebServer01'의 최신 복원 포인트를 찾아줘"
"해당 복원 포인트로 Instant Recovery를 시작해줘"보안
"보안 준수 분석기를 실행해줘"
"멀웨어 감지 이벤트가 있는지 확인해줘"인프라 관리
"등록된 모든 관리 서버와 프록시 상태를 알려줘"
"새로운 VMware vCenter 서버를 추가해줘"📄 라이선스
이 프로젝트는 Apache License 2.0를 따릅니다
https://www.apache.org/licenses/LICENSE-2.0.txt
Veeam® 및 Veeam Backup & Replication®은 Veeam Software Group GmbH의 등록 상표입니다. 이 프로젝트는 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