
ESXi Read-Only Diagnostics
io.github.nicolasboattini由 GitHub 账号 nicolasboattini 发布v0.1.1更新于 Oct 24, 2026
Read-only VMware ESXi diagnostics: CPU Ready, disk latency, snapshots, real space, hardware health.
概览
只读 MCP 服务器,让 AI 助手查询 VMware ESXi 主机或 vCenter 的性能、存储、快照与硬件诊断信息。
- 可以做什么
- 一次调用完成主机全面诊断,或分别查询主机型号、CPU、内存、ESXi 版本与存储控制器。读取硬件健康:传感器、内存、CPU,以及在厂商 CIM 提供程序存在时的 RAID/磁盘状态。查看数据存储(容量、精简置备超额分配、底层磁盘)与虚拟机(资源、气球、交换、Tools、磁盘、客户机剩余空间)。列出快照的年龄与大小,找出各数据存储中最大的文件及可能的孤立磁盘。读取性能指标(CPU Ready、Co-Stop、磁盘延迟、IOPS)的平均值、p95 与最大值,并用本地 SQLite 历史做数周视图。查看事件、告警与失败登录,检查超配比例,并确认账号权限。
- 适用场景
- 当你需要在独立 ESXi 主机或 vCenter 上找出真正的瓶颈时使用,例如某台 ERP 虚拟机变慢、快照泛滥、精简置备超额分配或硬件传感器告警。适合在不能接受任何写操作的生产基础设施上给助手只读访问权限。
- 运行要求
- 由 uv/uvx 管理的本地 Python 运行环境,可访问 ESXi API 端口(默认 443)的网络,以及专用的只读 ESXi 用户。ESXI_HOST 与 ESXI_USER 为必填;密码通过 --set-password 命令存入操作系统钥匙串,或由 ESXI_PASSWORD 提供。可选 ESXI_PORT、ESXI_VERIFY_SSL 与 ESXI_PERF_DB。需要 Claude Code 或 Claude Desktop 等 MCP 客户端。
安装
在 SourceWeft 中
- 打开 控制台中的 ESXi Read-Only Diagnostics,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
🔍 esxi-readonly-mcp
Diagnóstico completo de VMware ESXi desde tu asistente de IA, sin poder romper nada.
Un servidor MCP que le da a Claude (o a cualquier cliente MCP) visibilidad total sobre tu host ESXi — CPU Ready, latencia de disco, snapshots, espacio real, salud del hardware, eventos — sin una sola herramienta de escritura.
¿Por qué?
Tenés un ESXi standalone (sin vCenter), el ERP anda lento y alguien propone gastar miles de dólares en hardware. Antes de comprar, necesitás saber qué recurso es el cuello de botella de verdad. Eso implica mirar métricas que el Host Client esconde o no guarda (CPU Ready, Co-Stop, latencia por disco virtual), cruzar el espacio provisionado contra el real y revisar snapshots, logs y sensores.
Con este MCP le preguntás a Claude "¿por qué está lenta la VM del ERP?" y él mismo consulta el host, cruza los datos y te responde con números.
Y como vas a darle acceso a un asistente de IA a tu infraestructura de producción, el servidor no expone ninguna operación que modifique algo: no puede apagar, borrar, crear, consolidar ni reconfigurar nada. Combinado con un usuario de ESXi con rol de solo lectura, la garantía es doble.
✨ Qué podés preguntarle
"Hacé un diagnóstico completo del host y decime cuál es el cuello de botella."
"¿Qué VM tiene más CPU Ready en la última hora?"
"¿Cuánto ocupa realmente cada VM en cada datastore?"
"¿Hay snapshots de más de 3 días?"
"¿Qué archivos grandes hay en los datastores que no pertenecen a ninguna VM?"
"¿Algún sensor de hardware en amarillo o rojo? ¿Hubo errores de disco esta semana?"
"¿Tengo overcommit de CPU? ¿Cuántas vCPU tengo por core físico?"
"¿Conviene más comprar RAM o cambiar el procesador?"
🧰 Herramientas
Todas las respuestas vienen con valores de referencia (por ejemplo: CPU Ready > 10 % = contención) para que el asistente pueda interpretarlas sin adivinar.
🔒 Seguridad: cómo se garantiza que es solo lectura
1. En el código. El servidor solo lee propiedades y llama a estos métodos de la API de vSphere, todos de consulta:
No hay ninguna herramienta MCP para modificar nada, y el servidor le indica al asistente que no existen.
2. En ESXi. Usá un usuario dedicado con un rol de solo lectura (paso 1 de la instalación). Aunque algo
intentara escribir, ESXi lo rechazaría. verificar_permisos te confirma que quedó bien configurado:
3. Credenciales. La contraseña nunca va en archivos de configuración: se guarda en el almacén de credenciales
del sistema operativo (Administrador de credenciales de Windows, Keychain en macOS, Secret Service en Linux)
mediante keyring. Las claves de licencia se muestran enmascaradas.
🚀 Instalación
Requisitos
uv(se encarga de Python y de las dependencias)- Acceso por red al puerto 443 del ESXi
- Un cliente MCP: Claude Code, Claude Desktop u otro
1. Crear un usuario de solo lectura en ESXi
En el Host Client (https://<ip-esxi>/ui):
- Manage → Security & users → Roles → Add role — nombre
ReadOnly+Browse:- ✅ System (Anonymous, Read, View)
- ✅ Datastore → Browse datastore — solo ese; nada de Delete, FileManagement ni AllocateSpace
- Manage → Security & users → Users → Add user — por ejemplo
mcp-readonly. Dejá Enable shell access desmarcado. - Host → Actions → Permissions → Add user — elegí
mcp-readonly, el rolReadOnly+Browsey marcá Propagate to all children.
Sin Browse datastore el MCP funciona igual, pero
top_archivossolo ve archivos de VMs registradas (no ISOs ni huérfanos) y el espacio "usado" de discos thin es aproximado.
2. Guardar la contraseña en el almacén del sistema
Te pide el usuario de ESXi y la contraseña (sin mostrarla) y la guarda en el almacén de credenciales del sistema.
No hace falta clonar nada: uvx descarga el paquete de PyPI y lo ejecuta.
3. Registrar el servidor en tu cliente MCP
Claude Code
Claude Desktop u otro cliente (en claude_desktop_config.json o equivalente):
En Windows usá la ruta completa a
uvx.exesi el cliente no lo encuentra en elPATH(por ejemploC:\\Users\\<usuario>\\.local\\bin\\uvx.exe).
Reiniciá el cliente y pedile: "verificá los permisos del MCP de ESXi".
Desde el código fuente
Y en el cliente MCP usá uv run --directory /ruta/a/esxi-readonly-mcp esxi-readonly-mcp como comando.
Probar sin cliente MCP
(En PowerShell: $env:ESXI_HOST="192.0.2.10"; $env:ESXI_USER="mcp-readonly"; uv run python -c "...")
⚙️ Configuración
📈 Historial de performance
Un ESXi sin vCenter guarda solo la última hora de métricas (muestras cada 20 s). Para ver los picos reales de las últimas semanas en horario laboral, el servidor trae un modo recolector que guarda esa hora en una base SQLite local:
Programalo cada hora y después pedile a Claude, por ejemplo: "mostrame el historial de performance de las
últimas 4 semanas en horario laboral" (historial_perf(dias=28, solo_horario_laboral=True)).
Windows (Programador de tareas)
Linux / macOS (cron)
La base contiene nombres de VMs y métricas. Por defecto vive en tu carpeta de usuario, fuera de cualquier repo.
🧪 Compatibilidad
⚠️ Limitaciones conocidas
- Métricas históricas: sin vCenter,
performancesolo ve ~1 hora. Usá--collect+historial_perf. - Eventos: ESXi standalone guarda los últimos ~1000 eventos. Si un sistema de monitoreo abre sesiones constantemente (por ejemplo, Zabbix mal configurado), eso puede cubrir solo unas horas.
- RAID y discos físicos:
salud_hardwarelos muestra solo si ESXi tiene el proveedor CIM del fabricante (Dell, HPE, Lenovo). Si no, revisalos en iDRAC / iLO / XCC. - Lista de VIBs/drivers: requiere
Host.Config.Image, que también permite modificar la imagen; el MCP no lo pide. Alternativa:esxcli software vib listpor SSH. - Dentro del guest: el MCP ve lo que reporta VMware Tools (unidades, espacio libre, IP), pero no archivos ni procesos dentro de la VM.
🛠️ Solución de problemas
📁 Estructura
🤝 Contribuir
Issues y pull requests bienvenidos, sobre todo:
- Pruebas en ESXi 7/8 y vCenter
- Nuevas métricas o chequeos de solo lectura
La regla del proyecto es una sola: ninguna herramienta puede modificar el entorno. Un PR que agregue operaciones de escritura no se va a aceptar, aunque sea "opcional".
Publicar una versión (mantenedores)
- Actualizar la versión en
pyproject.tomly enserver.json(dos lugares:versionypackages[0].version). - Commit, push y tag:
- El workflow
release.ymlverifica que las versiones coincidan, compila, prueba el paquete, lo publica en PyPI y después en el registro oficial de MCP. Sin tokens: usa OIDC de GitHub.
📄 Licencia
来源:README.md,提交 6097a40
工具
0版本历史
1- v0.1.1最新Sep 30, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分