Skip to main content
Glama
vcf-ops-mcp

vcf-ops-mcp

Sentania VCF Ops MCP(非官方)

vcf-ops-mcp 是一个容器化的、默认只读的 MCP 服务器,带有用于 VCF Operations 的小型管理界面。当前 MVP 通过经过身份验证的 Streamable HTTP 公开已实现的清单、指标、告警、报告定义、目标和技能读取。每个 MCP 工具调用都经过持久化审计调度器。

这是一个非官方的个人实验室项目。它不是 Broadcom 或 VMware 的产品。

运行测试套件

需要 Python 3.12 或更高版本。

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip hatchling
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/pytest tests/
./tools/generate_agents_md.sh --check
./tools/consensus-check.py --self-test

除非提供了明确的保护变量,否则实时设备层会被跳过。常规测试仅使用合成的 VCF Ops 响应。

Related MCP server: afc-mcp

在本地构建并启动容器

服务在首次启动时会在 /keys 卷上创建其会话签名密钥和凭据密钥环。无需手动编写 SESSION_SECRET。

docker build -t vcf-ops-mcp:local .
docker volume create vcf-ops-mcp-data
docker volume create vcf-ops-mcp-keys
docker volume create vcf-ops-mcp-audit
docker run --name vcf-ops-mcp --rm \
  --read-only \
  --user 10001:10001 \
  --security-opt no-new-privileges \
  --cap-drop ALL \
  -p 8000:8000 \
  -e PUBLIC_BASE_URL=http://localhost:8000 \
  -v vcf-ops-mcp-data:/data \
  -v vcf-ops-mcp-keys:/keys \
  -v vcf-ops-mcp-audit:/audit \
  vcf-ops-mcp:local

在另一个终端中:

curl --fail http://localhost:8000/healthz

就绪响应为 HTTP 200,并报告所有四个依赖项均为 true:audit_writable、configuration_ready、session_secret_persistent 和 mcp_ready。如果审计、配置、密钥或 MCP 依赖项不可用,进程仍可诊断,但返回 HTTP 503。

实验室部署拥有自己的镜像固定和滚动更新。参考 deploy/compose.yml 保留了外部 docker-slots 网络和相同的三个持久卷,但此仓库不部署它。运行时密钥永远不会通过 CI 或 compose 环境传递。

首次管理员登录

批准的引导路径使用操作员提供的密码文件。服务在没有该文件的情况下也能健康启动,但管理平面在文件存在之前保持不可访问。密码必须至少包含 16 个字节。它通过 scrypt 哈希到运行时数据库中,当首次登录初始化账户时,引导文件会被删除。如果删除失败,后续登录会重试清理,而不会更改已存储的管理员密码。

对于本地容器,创建文件时不要将密码放入 shell 历史记录或进程参数中:

docker exec -it vcf-ops-mcp sh
umask 077
python -c 'import getpass,pathlib; pathlib.Path("/keys/admin_bootstrap_password").write_text(getpass.getpass("New admin password: "))'
exit

对于 docker.int 槽位,lab-admin 通过运行中的 vcf-ops-mcp-web 容器内主机的正常管理通道执行相同的单次操作。部署密钥不能也不得执行此操作,因为其强制命令允许列表有意排除了 exec。文件路径和模式相同。CI 永远不会收到引导密码。

打开 http://localhost:8000/admin/login,以 admin 身份登录,然后:

  1. 注册一个 VCF Ops 目标。新目标始终为 read_only。生产 FQDN 在服务端被识别,并且在此 MVP 中永远无法切换为操作模式。

  2. 选择所需的已实现读取范围和一个或多个已注册目标,然后生成 MCP API 密钥。明文密钥仅显示一次。仅存储其 SHA-256 摘要。

  3. 使用 Streamable HTTP URL http://localhost:8000/mcp/ 和标头 Authorization: Bearer <显示的密钥> 配置 MCP 客户端。

  4. 使用 list_targets 发现允许的目标 ID,然后调用读取工具。VCF 适配器参数在该工具的 arguments 对象中传递。

  5. 检查 /admin/audit 以查看仅追加的尝试记录和终态记录。

生产环境使用 https://vcf-ops-mcp.int.sentania.net,该地址保持管理会话 cookie 为 Secure。仅当 PUBLIC_BASE_URL 明确使用 http:// 时,本地 HTTP 才被启用。

持久化数据和恢复

三个卷根目录有各自的职责:

卷路径

内容

/data

运行时 SQLite 数据库,包含管理员哈希、目标元数据、加密凭据信封和 API 密钥摘要

/keys

生成的会话密钥、审计参数摘要密钥、带版本控制的 AES-256-GCM 凭据密钥环,以及一次性管理员引导文件

/audit

仅追加的 SQLite 审计账本

将 /data、/keys 和 /audit 作为单独的保护工件进行备份。在加密目标记录仍然存在时丢失 /keys 是有意不可恢复的。服务器拒绝在现有密文上重新生成凭据密钥环。对于已建立的部署,不要使用 docker compose down -v。

如果进程在提交审计尝试记录之后但在终态记录之前死亡,下次启动时会追加 outcome_unknown。它永远不会重写尝试记录或虚构成功结果。

MVP 边界

已交付:

  • 自动持久化 SESSION_SECRET 生成,保留显式环境变量覆盖以支持直接进程操作。

  • 持久化加密目标配置、引导管理员登录、作用域 API 密钥生成和撤销、目标注册和审计查看。

  • 经过身份验证的 Streamable HTTP,包含已实现的读取适配器、目标发现,以及技能工具和技能资源/提示。通过资源和提示获取技能内容需要与技能工具相同的 read:skills 能力;没有该能力时仅可进行具体资源发现。

  • 只读目标姿态、API 密钥目标允许列表、默认拒绝的已实现范围、生产目标硬阻止、响应投影和上限,以及持久化的每工具审计。

有意推迟:

  • 所有操作执行、可操作密钥、报告运行、计划/应用和异步任务轮询。这些仍处于 Phase 2 人工门禁之后。

  • UI 中的目标编辑和凭据轮换。

  • 已完成报告下载,因为开发设备在未先运行报告变更的情况下没有已完成报告。

  • 外部暴露、NSX、VCFA 自动化、直接 vCenter 工具和 PII 清洗。

  • 非 LOCAL 认证源发现。之前的任意 FQDN 获取已被移除,因为它是 SSRF 边界,而不是安全的发现机制。

有关完整契约和实测的 VCF Ops 行为,请参阅 docs/SPEC.md、docs/decisions 中已接受的记录,以及 docs/read-plane.md。

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Read-only MCP server for searching and aggregating logs from VMware Aria Operations for Logs (formerly vRealize Log Insight). Enables querying log events, aggregating with spike detection, and retrieving alert information.
      7
      179 PyPI
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Provides read-only access to Aruba Fabric Composer inventory, network state, and VMware vCenter/vSphere visibility through MCP tools over streamable HTTP.
      -
    • A
      license
      A
      quality
      B
      maintenance
      Provides read-only, governance-audited operations for OLVM and oVirt 4.5 engines, enabling inventory, health, capacity, and diagnosis queries over MCP and CLI with audit logging and budget guards.
      18
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables read-only querying and server-side reduction of VMware Aria Operations for Logs (vRealize Log Insight) 8.18.x data, including event aggregation with spike detection, message signature grouping, and capped raw log search.
      MIT