Token导航 LogoToken导航TokenDH.com
Vsphere MCP Pro logo
运维云端stdio官方级别未说明来源级核验

Vsphere MCP Pro

MCP Server

vSphere-MCP-Pro是一个为VMware vCenter 8.0+环境设计的MCP服务器,提供安全的虚拟机生命周期管理、快照操作、数据存储/主机发现等功能,支持RBAC授权、审计日志和速率限制。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
Python审计日志云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Warezloder

提供方

Warezloder

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

vSphere MCP Pro

适用于VMware vCenter 8.0+的安全、功能丰富的模型上下文协议(MCP)服务器。

通过MCP工具公开受控的vCenter操作,包括VM生命周期管理、快照操作、数据存储/主机发现等,以及审计日志、RBAC授权、会话池和速率限制。

______________________________________________________________________

目录

______________________________________________________________________

概述

vsphere-mcp-pro 是专为VMware vCenter 8.0+环境设计的MCP服务器。

它提供:

  • 安全、结构化地访问vCenter操作
  • 通过角色进行严格授权→ 允许的工具
  • 快照+虚拟机生命周期操作
  • 安全多租户使用的审计和速率限制
  • 对两者的支持 /api (首选)和 /rest vCenter端点
  • 可选主机允许列表,以防止意外的跨集群操作
  • 连接池可防止vCenter会话耗尽

服务器运行时使用 FastMCP 并自动将每个工具操作包装为:

  • 基于令牌的RBAC(Authorizer)
  • 令牌桶速率限制
  • JSONL审计日志记录
  • 破坏性操作的确认要求
  • 使用详细的vCenter错误上下文进行正确的错误处理

______________________________________________________________________

主要特点

✔ 设计安全

  • 默认情况下启用SSL验证
  • 可选CA捆绑包支持
  • 允许的主机实施可防止未经授权的vCenter目标

✔ 强授权模型

  • 代币→ 角色映射
  • Role → 允许的工具映射
  • 除非明确禁用,否则强制执行
  • 破坏性操作需要 confirm=True

✔ 操作稳健

  • vCenter API调用的自动重试逻辑(Retry + HTTPAdapter)
  • 401会话自动续订
  • 具有自动清理功能的连接池
  • 关机时正确注销会话
  • 用于审计和可观察性的广泛日志记录
  • 具有vCenter错误上下文的丰富错误消息

✔ 高性能

  • 线程安全vCenter会话池(每台主机一个会话)
  • 消除了每次请求的身份验证开销
  • MCP服务器内置 uvicorn

______________________________________________________________________

建筑

关键模块:

  • server.py

构建MCP服务器,注册所有工具,注入授权、速率限制、会话池和审计包装器。

  • vsphere_client.py

处理VMware vCenter的重试、身份验证、会话池和REST/API模式切换。包括:

- VsphereClient -威胁安全的vCenter REST API客户端 - VsphereClientPool -具有自动清理功能的连接池 - VsphereApiError -API错误的丰富异常类

  • authz.py

实施:

- 代币→ 角色解析 - Role → 刀具浇口 - 令牌桶速率限制

  • audit.py

为每个操作写入JSON行日志。

  • config.py

将环境变量加载到类型化 AppConfig 使用 pydantic.

______________________________________________________________________

目录结构

/
├── vsphere_mcp_pro/          # Python package
│   ├── __init__.py
│   ├── server.py             # MCP server and tool definitions
│   ├── vsphere_client.py     # vCenter client, pool, and exceptions
│   ├── authz.py              # Authorization and rate limiting
│   ├── audit.py              # Audit logging
│   └── config.py             # Configuration loading
├── pyproject.toml            # Project metadata and dependencies
├── README.md
├── CHANGELOG.md
├── LICENSE
├── env.example               # Example environment configuration
└── Dockerfile

______________________________________________________________________

安装

先决条件

  • python 3.10+
  • VMware vCenter 8.0+
  • 有效的API证书

从源代码安装

git clone https://github.com/Warezloder/vSphere-MCP-Pro
cd vSphere-MCP-Pro
pip install -e .

______________________________________________________________________

配置

配置是由环境驱动的。复制示例文件:

cp env.example .env

所需的环境变量

变量描述
VCENTER_HOSTvCenter主机名/IP
VCENTER_USERvCenter用户名
VCENTER_PASSWORDvCenter密码
ROLES_TO_TOOLSJSON角色映射→ 允许的工具
TOKENS_TO_ROLES令牌的JSON映射→ 角色
ALLOWED_VCENTER_HOSTS多主机部署的可选分配列表

可选环境变量

变量默认值描述
VSPHERE_API_MODEapiAPI模式: apirest
INSECUREfalse禁用SSL验证
VCENTER_CA_BUNDLE自定义CA捆绑包的路径
VCENTER_TIMEOUT_S20请求超时(秒)
VCENTER_RETRIES3重试次数
VCENTER_BACKOFF0.5重试回退系数
SERVER_HOST0.0.0.0服务器绑定地址
SERVER_PORT8000服务器端口
MCP_PATH/mcpMCP端点路径
AUDIT_LOG_PATH审核日志文件(空白=stdout)
AUTH_ENFORCEtrue强制RBAC
RATE_LIMITtrue启用速率限制
RATE_LIMIT_RPS5每秒请求数
RATE_LIMIT_BURST10爆裂余量

配置示例

VCENTER_HOST=vcenter.example.com
VCENTER_USER=administrator@vsphere.local
VCENTER_PASSWORD=s3cret
TOKENS_TO_ROLES={"token1": "read", "token2": "ops", "token3": "admin"}
ROLES_TO_TOOLS={"read":["list_vms","get_vm_details"],"ops":["power_on_vm","power_off_vm"],"admin":["delete_vm"]}

______________________________________________________________________

运行服务器

本地执行

python -m vsphere_mcp_pro.server

服务器默认值(通过环境变量覆盖):

  • 主持人: 0.0.0.0
  • 端口: 8000
  • MCP路径: /mcp

______________________________________________________________________

可用工具/API

下面是服务器公开的可用MCP工具的分类摘要。

VM发现

工具说明
list_vms列出所有虚拟机
get_vm_details按ID获取VM详细信息

库存发现

工具说明
list_hosts列出ESXi主机
list_datastores列出数据存储
list_networks列出网络
list_datacenters列出数据中心
get_datastore_usage获取数据存储容量/使用情况
get_resource_utilization_summary所有资源汇总

动力操作

工具说明
power_on_vm打开虚拟机电源
power_off_vm关闭虚拟机电源
restart_vm重新启动虚拟机

快照操作

工具说明
list_vm_snapshots列出VM的快照
create_vm_snapshot创建快照
delete_vm_snapshot删除快照(需要确认)

破坏性操作(要求 confirm=True)

工具说明
delete_vm永久删除虚拟机
delete_vm_snapshot删除快照
modify_vm_resources修改CPU/内存(需要关闭电源)

______________________________________________________________________

错误处理

服务器通过提供丰富的错误上下文 VsphereApiError 例外情况:

VsphereApiError: Failed to get VM 'vm-999': HTTP 404 on /api/vcenter/vm/vm-999 [NOT_FOUND]: The VM was not found.

错误响应包括:

  • HTTP状态代码
  • API路径
  • vCenter错误类型(例如。, NOT_FOUND, ALREADY_EXISTS)
  • 来自vCenter的人类可读错误消息

例外提供了便利属性:

  • is_not_found -404或NOT_FOUND错误
  • is_unauthorized -401错误
  • is_forbidden -403错误
  • is_conflict -409错误

______________________________________________________________________

审计日志

每个MCP工具调用都记录为JSON行,其中包含:

  • 工具名称
  • 执行状态(正常/错误)
  • 持续时间(ms)
  • 山宁泰参数(密码和令牌被屏蔽)
  • 错误信息(如有)
  • 角色+主机上下文

默认情况下,日志写入stdout,或写入 AUDIT_LOG_PATH 如果已配置。

______________________________________________________________________

速率限制

使用令牌桶策略:

  • 可配置的 RATE_LIMIT_RPSRATE_LIMIT_BURST
  • 每个令牌有单独的桶
  • 通过设置禁用 RATE_LIMIT=false

______________________________________________________________________

安全模型

机制目的
SSL验证防止MITM攻击
允许的主机列表防止未经授权的目标选择
角色→ 工具映射强制最小特权原则
令牌身份验证多租户安全访问
所需确认防止意外破坏性操作
速率限制保护vCenter和MCP服务器
会话池防止vCenter会话耗尽

______________________________________________________________________

发展

安装dev-deps

pip install -e .[dev]

使用自动回放运行

uvicorn vsphere_mcp_pro.server:main --reload

______________________________________________________________________

Docker使用

构建

docker build -t vsphere-mcp-pro .

docker run \
  --rm \
  -p 8000:8000 \
  --env-file .env \
  vsphere-mcp-pro

______________________________________________________________________

故障排除

“登录失败:HTTP 401”

  • 验证vCenter用户名/密码
  • 确保API模式正确(VSPHERE_API_MODE=api|rest)

“主机名不在允许的集合中”

  • 将主机名添加到 ALLOWED_VCENTER_HOSTS

速率限制错误

  • 增加 RATE_LIMIT_BURST
  • 调整每个令牌的使用情况

SSL证书问题

  • VCENTER_CA_BUNDLE 到您的CA捆绑包路径
  • 或禁用SSL验证(不推荐): INSECURE=true

VsphereApiError异常

  • 检查错误消息以了解vCenter特定的详细信息
  • 使用 error.is_not_found, error.is_forbidden等,用于程序化处理
  • 验证VM/资源ID是否存在

______________________________________________________________________

更新日志

更改日志.md 查看版本历史和更改。

______________________________________________________________________

许可证

该项目根据MIT许可证获得许可。看 许可证 了解详情。

目录标签

目录标签

Python审计日志云端部署虚拟机管理本地部署快照操作RBAC授权速率限制

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP