Skip to main content
Glama

vcf-ops-mpb-mcp

vcf-ops-mpb-mcp

npm Node.js License: MIT VCF Operations

An MCP server for the VCF Operations Management Pack Builder (MPB). Any MCP client (Claude, Cursor, VS Code, a local model) can design, test, verify, install and export REST management packs, without the built-in AI Assistant and with any LLM you choose.

Unsupported API. MPB is driven through /suite-api/internal/mpbuilder/*, an internal VCF Operations API that is undocumented and can change between releases. Broadcom support does not cover MPB. Use in labs and for community packs; pin to a tested VCF Operations build.

Why

  • No lock-in. VCF 9.1.1's AI Assistant only works with Gemini or VCF Private AI. This server works with whatever agent you run.

  • Designs as code. Export each pack as JSON into git and re-import it anywhere. After an upgrade that breaks MPB-built packs (9.1.1 did), re-run one pipeline to rebuild them.

  • The full loop, headless. Source test → collection preview → verify → install, including the steps the MPB UI hides (persisting the test response, collector UUIDs, two-step session auth).

Related MCP server: MCP REST API Tester

Tools

Group

Tool

What it does

Discover

mpb_connection_status

Checks auth and MPB reachability

mpb_list_designs

Designs with status and install state

mpb_get_design

Info, validation errors, source, sections

mpb_get_design_status

VALID / INVALID / VERIFIED and every error

mpb_get_item

One request/object/relationship/event, or a default template

mpb_list_existing_object_types / mpb_get_existing_object_type

Built-in object types to extend or relate to

mpb_list_collectors

Collector uuIds for source tests

mpb_test_regex

MPB's own regex check

Author

mpb_create_design, mpb_update_design_info

Create, rename, bump version

mpb_set_source, mpb_set_source_configuration

Data source, auth, account fields

mpb_upsert_item, mpb_delete_items

Requests, objects, relationships, events

mpb_import_design

Import a JSON envelope, fixing known import quirks

mpb_delete_designs

Delete designs

Test

mpb_test_source

Source test on a collector, saved into the design

mpb_run_request

Run one request through MPB

mpb_collection_preview, mpb_verify_design

Preview and verify

Ship

mpb_install, mpb_install_status

Build and install the pack

mpb_ship

Test → preview → verify → install in one call

mpb_export_design

Write the design to a JSON file, credential values removed

Raw

mpb_api_call

Any /internal/mpbuilder/* or /api/* call

Resource mpb://guide explains the pipeline and the API's quirks to the agent.

Safety: MPB_READ_ONLY=true removes every tool that changes VCF Operations from the tool list. Deletes and installs return a dry run unless called with confirm: true. Install refuses designs that are not VALID, because MPB otherwise reports success and does nothing. Credentials passed to mpb_test_source are sent to VCF Operations for the test and are never written to disk.

Setup

Requires Node.js 18.17 or later, and a VCF Operations 9.x account with the Developer Center / Management Pack Builder privilege.

npx -y vcf-ops-mpb-mcp          # run without installing
npm install -g vcf-ops-mpb-mcp  # or install the vcf-ops-mpb-mcp command

From source: git clone https://github.com/imtrinity94/vcf-ops-mpb-mcp.git && cd vcf-ops-mpb-mcp && npm install.

Claude Desktop / Claude Code

{
  "mcpServers": {
    "vcf-ops-mpb": {
      "command": "npx",
      "args": ["-y", "vcf-ops-mpb-mcp"],
      "env": {
        "VCFOPS_HOST": "ops.vmw.lab",
        "VCFOPS_USER": "admin",
        "VCFOPS_PASSWORD": "********",
        "VCFOPS_INSECURE_TLS": "true",
        "MPB_DESIGNS_DIR": "/path/to/mpb-designs"
      }
    }
  }
}

Environment

Variable

Default

Purpose

VCFOPS_HOST

–

VCF Operations FQDN (scheme and /suite-api are stripped)

VCFOPS_USER / VCFOPS_PASSWORD

–

Account with MPB privilege

VCFOPS_AUTH_SOURCE

(local)

Auth source name for non-local accounts

VCFOPS_INSECURE_TLS

false

Accept self-signed lab certificates

VCFOPS_CA_FILE

–

PEM file to trust instead

MPB_READ_ONLY

false

Hide every write tool

MPB_DESIGNS_DIR

./mpb-designs

Where exports go and relative imports resolve

VCFOPS_TIMEOUT_MS

120000

Per-request timeout

MPB_MAX_OUTPUT_CHARS

60000

Truncate large tool results

Claude Code, one line:

claude mcp add vcf-ops-mpb -e VCFOPS_HOST=ops.vmw.lab -e VCFOPS_USER=admin -e VCFOPS_PASSWORD='********' -e VCFOPS_INSECURE_TLS=true -- npx -y vcf-ops-mpb-mcp

How it works

AI agent (any LLM) ──MCP/stdio──▶ vcf-ops-mpb-mcp ──HTTPS + vRealizeOpsToken──▶ VCF Operations
                                                    X-Ops-API-use-unsupported   /suite-api/internal/mpbuilder/*
                                                                                    │
                                     design JSON in git ◀── export / import ──────┘

Pipeline: create or import design → set source → add requests, objects, relationships, events → source test (saved into the design) → collection preview → verify → install → export.

Development

npm test   # runs the MCP server against an in-memory VCF Operations mock

Changes are listed in CHANGELOG.md.

Typical prompts

  • "List my MPB designs and tell me why Synology is INVALID."

  • "Import synology.json, test it with password X on the first collector, preview, verify, and install it."

  • "Create a pack for the Veeam REST API: source https://veeam.vmw.lab:9419/api, a jobs request, a Backup Job object with duration and status."

  • "Export every VALID design into the designs folder."

Status

v1.0.0 is tested against an in-memory mock that follows the documented MPB behaviour (npm test). Still to check on a live VCF Operations 9.1.1 lab: the exact response shapes of preview jobs and the per-section POST bodies. Use mpb_api_call to look at raw responses if a tool's summary looks wrong.

Credits

The MPB API mapping (endpoints, wire format, import quirks, the import → test → preview → verify → install recipe) comes from the research in sentania-labs/vcf-content-factory (MIT). See NOTICE.md. This server is a new implementation and shares no code with it.

License

MIT

Available Tools

26 tools
mpb_api_callRaw MPB / Suite API callA
Read-only

Calls any /internal/mpbuilder/* or /api/* path (relative to /suite-api) for cases the other tools do not cover. Non-GET methods are not available in read-only mode.

Inputs: path (required), method (required), body, query.

mpb_collection_previewRun a collection previewA
Read-only

Runs a full collection preview of the design (objects, metrics, properties, relationships) and returns the job id needed by mpb_verify_design.

Inputs: designId (required), wait, logLevel.

mpb_connection_statusCheck VCF Operations connectionA
Read-only

Checks the configured VCF Operations connection (token acquire + MPB design list) and reports host, read-only mode and design count.

Inputs: no named parameters.

mpb_create_designCreate MPB designA

Creates an empty HTTP design. The name becomes the adapter kind once installed, so pick a stable one: renaming later creates a second adapter kind.

Inputs: name (required), version, description.

mpb_delete_designsDelete designsA
Destructive

Deletes MPB designs (not installed management packs). Requires confirm: true.

Inputs: designIds (required), confirm.

mpb_delete_itemsDelete design itemsA
Destructive

Deletes one or more requests, objects, relationships or events from a design. Requires confirm: true.

Inputs: ids (required), section (required), designId (required), confirm.

mpb_export_designExport design to a JSON fileA
Read-only

Exports a VALID design in MPB exchange format, removes credential values, and writes it to a file (design as code, git-friendly). Relative paths resolve under MPB_DESIGNS_DIR.

Inputs: designId (required), outputPath.

mpb_get_designGet MPB design detailA
Read-only

Returns a design: info, validation status (with per-section errors) and, if requested, the source, source configuration and the request/object/relationship/event lists.

Inputs: designId (required), include.

mpb_get_design_statusGet MPB design validation statusB
Read-only

Returns VALID/INVALID/VERIFIED, install status (DRAFT/INSTALLED/OUT_OF_DATE) and every per-section validation error with its refId.

Inputs: designId (required).

mpb_get_existing_object_typeGet existing object type detailA
Read-only

Returns MPB's view of one existing object type, including its metric set, e.g. adapterKindKey VMWARE + resourceKindKey VirtualMachine.

Inputs: adapterKindKey (required), resourceKindKey (required).

mpb_get_itemGet one design itemA
Read-only

Returns the full form for one request, object, relationship or event (the item plus what it can reference). Use itemId "default" for a blank, defaults-filled form to base a new item on.

Inputs: itemId (required), section (required), designId (required).

mpb_import_designImport design from JSONA

Imports a design envelope (MPB export format) from a file or inline JSON, first fixing known import quirks (unwrapped list items, flat-format fields). The server assigns a new design id. Credentials must be re-entered (mpb_test_source credentials) before a source test passes.

Inputs: version, envelope, filePath, sanitize.

mpb_installBuild and install the management packA

Builds the pack from the design and installs it on this VCF Operations instance, waiting for the deployment. Refuses a design that is not VALID/VERIFIED, because MPB then silently does nothing. Requires confirm: true.

Inputs: designId (required), wait, confirm.

mpb_install_statusGet install deployment statusB
Read-only

Polls one install deployment started by mpb_install.

Inputs: designId (required), deploymentId (required).

mpb_list_collectorsList collectorsA
Read-only

Lists VCF Operations collectors / cloud proxies with their uuId, which source tests need as collectorId.

Inputs: no named parameters.

mpb_list_designsList MPB designsB
Read-only

Lists Management Pack Builder designs with id, name, version, validation status and install status. Optional name filter.

Inputs: nameContains.

mpb_list_existing_object_typesList existing object typesA
Read-only

Lists object types already declared by installed adapters (e.g. VMWARE VirtualMachine, HostSystem). Use these to extend built-in objects or relate new objects to them.

Inputs: limit, filter.

mpb_run_requestRun one HTTP requestA
Read-only

Runs one design request against the target through MPB (REQUEST job) and returns the response and attributes MPB found. Pass the request object from mpb_get_item.

Inputs: request (required), designId (required).

mpb_set_sourceSet the design sourceB

Creates or replaces the HTTP source (configuration with baseApiPath and collectorId, authentication with creds and optional sessionSettings, globalHeaders, testRequest). Pass the live GET /source shape, not the export envelope's source.source shape.

Inputs: source (required), designId (required).

mpb_set_source_configurationSet source configuration fieldsC

Writes the adapter-instance configuration fields and credential definitions (ConfigurationPayload) users fill in when adding an account.

Inputs: payload (required), designId (required).

mpb_shipTest, preview, verify and installA

Runs the full MPB pipeline for a design and stops at the first failing step: source test (+ persist), collection preview, verify, install. Requires confirm: true to install; without it, it stops after verify.

Inputs: designId (required), confirm, logLevel, collectorId, +2 more.

mpb_test_regexTest an MPB regexB
Read-only

Runs a regular expression against a sample string with MPB's own regex engine, the same check the MPB UI uses for metric/property extraction.

Inputs: regex (required), sample (required).

mpb_test_sourceTest the design source connectionA

Runs the MPB source test on a collector (GET_SESSION when session auth is configured, then TEST_CONNECTION) and, by default, saves the test response into the source, which MPB requires before the design can become VALID.

Inputs: designId (required), persist, collectorId, credentials, +1 more.

mpb_update_design_infoUpdate design name/description/versionB

Updates design info. Bump version before every reinstall: it flows to the adapter and drives the OUT_OF_DATE install status.

Inputs: designId (required), name, version, description.

mpb_upsert_itemCreate or update a design itemA

Creates (POST) or updates (PUT, payload carries its id) a request, object, relationship or event. Body shapes: requests = HttpRequest; objects = ObjectDefinition; relationships = {existingObjectTypeReferences:[], relationship:{...}}; events = {existingObjectTypeReferences:[], event:{...}}. Start from mpb_get_item itemId:"default" (new) or an existing item, then edit. Note: per-object PUT is known to answer 500 on some builds; if so, re-import the design instead.

Inputs: mode (required), payload (required), section (required), designId (required).

mpb_verify_designVerify design from previewA

Marks the design verified using a collection preview job (default: the latest one). Required before install.

Inputs: designId (required), jobId.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 26 tools

    Disambiguation4/5

    Most tools target a distinct resource+action (designs, items, source, install), and the pipeline tools (test_source, collection_preview, verify_design, install) are clearly sequenced. The main overlap is mpb_get_design vs mpb_get_design_status (both surface validation/install status) and mpb_ship, which is a composite of the other pipeline steps; descriptions mitigate but do not eliminate this.

    Naming Consistency4/5

    Nearly every tool follows a predictable mpb_verb_noun snake_case pattern (mpb_list_designs, mpb_upsert_item, mpb_delete_designs). A few deviate to bare verbs (mpb_install, mpb_ship) or noun phrases (mpb_connection_status, mpb_api_call), but the shared mpb_ prefix keeps the set readable.

    Tool Count3/5

    At 26 tools the surface sits at the heavy end, driven by real domain breadth (design lifecycle, item CRUD, source config, test/verify/install pipeline). Several tools are conveniences layered over others (mpb_ship wraps the pipeline, mpb_install_status polls one job, mpb_api_call is an escape hatch), so some consolidation is possible.

    Completeness4/5

    The design lifecycle is well covered end-to-end: create/import/export/list/get/delete designs, upsert/delete items, configure and test the source, preview, verify, install and poll status. Gaps are modest — no uninstall/rollback or listing of installed packs, no standalone item listing beyond design fetch — and mpb_api_call provides a workaround.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables users to test and interact with REST API endpoints directly from MCP clients, with support for GET, POST, PUT, DELETE, and PATCH requests, authentication, custom headers, SSL verification, and response-size limits.
      5 npm
      ISC
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables testing and interacting with any REST API endpoints directly from development environments through MCP clients, including support for multiple HTTP methods, authentication methods, custom headers, SSL verification control, and response size limiting.
      5 npm
      ISC
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables testing and interacting with REST API endpoints through MCP clients, with support for multiple HTTP methods, authentication, custom headers, SSL verification settings, and response size limits.
      5 npm
      ISC
    • A
      license
      Not graded
      quality
      A
      maintenance
      Enables testing and interacting with REST API endpoints through MCP clients, with support for multiple HTTP methods, authentication, custom headers, SSL verification, and response size limits.
      5 npm
      ISC