Skip to main content
Glama
juhyungrok4237-boop

Veeam VBR v13 MCP Server

Veeam VBR v13 MCP 服务器

Veeam MCP TypeScript Node.js

这是一个 MCP (Model Context Protocol) 服务器,利用 Veeam Backup & Replication v13 的官方 REST API (1.3-rev1),使 AI 代理(如 Claude Desktop、Cursor 等)能够直接控制和监控 Veeam 基础设施。

基于 swagger.json,我们完全模块化地实现了 328 个 MCP 工具,涵盖了 39 个标签和 404 个 API 操作中的核心功能。


📋 目录


🌟 主要功能

  • 328 个 MCP 工具:涵盖 Veeam REST API 的几乎所有功能

  • 双传输模式stdio (Claude Desktop/Cursor) + streamable-http (Dify/远程代理)

  • 遵循 MCP 2025-03-26 最新规范:实现流式 HTTP 传输方式(与 Dify 完全兼容)

  • 智能 OAuth2 认证:自动获取令牌、过期前刷新、401 时自动重新认证

  • 完全模块化:按功能拆分为 13 个文件,易于维护和扩展

  • Stateful/Stateless 选择:支持会话状态保持(默认)或无状态模式


📦 要求

项目

版本

备注

Node.js

v18 或更高

通过 node -v 确认

npm

v9 或更高

包含在 Node.js 中

Veeam B&R

v13

需要访问 REST API 端口 9419

网络

-

必须能够通过 TCP 访问 Veeam 服务器的 9419 端口


📚 包依赖

运行时依赖 (dependencies)

版本

用途

@modelcontextprotocol/sdk

^1.29.0

MCP 服务器框架(包含 stdio/SSE 传输层)

axios

^1.15.1

Veeam REST API HTTP 客户端

express

^5.2.1

SSE (HTTP) 模式 Web 服务器

dotenv

^17.4.2

.env 文件加载环境变量

zod

^4.3.6

MCP 工具参数模式验证

body-parser

^2.2.2

Express 请求体解析

开发依赖 (devDependencies)

版本

用途

typescript

^6.0.3

TypeScript 编译器

tsx

^4.21.0

直接运行 TypeScript(开发模式)

@types/node

^25.6.0

Node.js 类型定义

@types/express

^5.0.6

Express 类型定义

@types/body-parser

^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_SERVER

https://localhost

Veeam 服务器地址(必须为 https)

VEEAM_PORT

-

9419

REST API 端口

VEEAM_USERNAME

-

Veeam 管理员账号

VEEAM_PASSWORD

-

Veeam 管理员密码

NODE_TLS_REJECT_UNAUTHORIZED

-

1

0=允许自签名证书

MCP_TRANSPORT_MODE

-

stdio

stdiostreamable-http

MCP_HTTP_PORT

-

3000

HTTP 模式端口

MCP_STATELESS

-

false

true=无状态模式(无会话)


🖥️ 运行方法 - stdio 模式

stdio 模式是指 AI 客户端(Claude Desktop、Cursor 等)直接将 MCP 服务器进程作为子进程运行,并通过 标准输入输出 (stdin/stdout) 交换 JSON-RPC 消息的方式。

Claude Desktop 集成

claude_desktop_config.json 文件位置:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/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 规范中已被弃用。 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/mcp

HTTP 端点

方法

路径

请求头

说明

POST

/mcp

Content-Type: application/json

主 JSON-RPC 通道(初始化 + 工具调用)

GET

/mcp

Mcp-Session-Id: <id>

服务器 → 客户端 SSE 通知流

DELETE

/mcp

Mcp-Session-Id: <id>

显式终止会话

GET

/health

-

检查服务器状态及活跃会话数

在 Dify 中集成

  1. 点击 Dify 工具管理添加 MCP 服务器

  2. 输入 MCP 服务器 URL:

    http://<your-server-ip>:3000/mcp
  3. 保存后,在工具列表中确认 Veeam 工具

Docker 环境注意事项:如果 Dify 和本服务器都在 Docker 中运行,请使用 Docker 网络内的宿主机 IP 或容器名称,而不是 localhost

在 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 与 Streamable HTTP 对比

项目

stdio 模式

Streamable HTTP 模式

执行主体

AI 客户端作为子进程运行

作为独立服务器预先运行

通信方式

stdin/stdout (标准输入输出)

HTTP POST/GET/DELETE /mcp

MCP 规范

最新 (stdio 与规范无关)

MCP 2025-03-26 Streamable HTTP

网络

仅限本地

支持远程访问

多客户端

1:1 (仅限一个客户端)

N:M (多个客户端同时连接)

Dify 集成

❌ 不支持

✅ 支持 (输入 /mcp URL)

配置难度

简单 (仅需 JSON 配置)

服务器运行 + 指定 URL

适用场景

个人 PC Claude Desktop/Cursor

Dify、团队共享、远程部署

环境变量

MCP_TRANSPORT_MODE=stdio (默认)

MCP_TRANSPORT_MODE=streamable-http


🛠️ 支持的工具类别 (共 328 个工具)

#

模块文件

主要功能

工具数

1

service.ts

服务器时间、证书、服务器信息、服务查询

5

2

license.ts

许可证安装/更新、套接字/实例/容量管理

16

3

credentials.ts

标准账号 + 云 (AWS/Azure/GCP) 账号 CRUD

23

4

encryption.ts

加密密码、KMS 服务器管理

13

5

generalOptions.ts

邮件/通知设置、流量规则、配置备份、部署

22

6

security.ts

安全分析器、恶意软件检测、用户/角色、全局排除

35

7

inventory.ts

VMware/HyperV 清单、云/Entra ID 浏览器

23

8

infrastructure.ts

管理服务器、存储、SOBR、代理、挂载服务器、WAN

46

9

jobs.ts

备份/复制/拷贝作业 CRUD,启动/停止/重试

15

10

backups.ts

备份数据集、备份对象、恢复点

17

11

sessions.ts

会话/任务会话查询、日志、停止

8

12

restore.ts

IR (VMware/HyperV/Azure)、VM 恢复、FLR、Entra ID

46

13

operations.ts

故障转移/恢复、副本、代理、自动化导入/导出

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 官方建立关联或获得其认可。

Install Server
A
security – no known vulnerabilities
F
license - not found
C
quality - C tier

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