Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

VMware NSX Security

PYPI · VMWARE-NSX-SECURITY · SCANNED SEP 21

VMware NSX security: DFW policies and exclusions, groups, tags, Traceflow, IDPS — 22 MCP tools.

+3 this week 78 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 3 of 40 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • License check failed: the license (MIT License) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 5066 tokens (~230/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the VMware NSX Security MCP server?

VMware NSX Security runs locally as a PyPI package, launched with uvx vmware-nsx-security. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · vmware-nsx-security

# add to Claude Code
claude mcp add vmware-skills-vmware-nsx-security -- uvx vmware-nsx-security
// .cursor/mcp.json
{
  "mcpServers": {
    "vmware-skills-vmware-nsx-security": {
      "command": "uvx",
      "args": [
        "vmware-nsx-security"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "vmware-skills-vmware-nsx-security": {
      "command": "uvx",
      "args": [
        "vmware-nsx-security"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add vmware-skills-vmware-nsx-security -- uvx vmware-nsx-security
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vmware-skills-vmware-nsx-security": {
      "type": "local",
      "command": [
        "uvx",
        "vmware-nsx-security"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add vmware-skills-vmware-nsx-security --command uvx --arg vmware-nsx-security
# ~/.hermes/config.yaml
mcp_servers:
  vmware-skills-vmware-nsx-security:
    command: "uvx"
    args: ["vmware-nsx-security"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "vmware-skills-vmware-nsx-security": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "vmware-nsx-security"
      ]
    }
  }
}
# add to Vellum
assistant mcp add vmware-skills-vmware-nsx-security -t stdio -c uvx -a vmware-nsx-security
// mcp.json
{
  "mcpServers": {
    "vmware-skills-vmware-nsx-security": {
      "command": "uvx",
      "args": [
        "vmware-nsx-security"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Sept 26 +15
    • Tool safety: pass → unverified security
    • Stability: 0.67 → unverified security
    • Malware scan: unverified → pass security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Package version: 1.12.0 → 1.13.0 functional
  • 19 Sept 26 +1
    • Package version: 1.11.1 → 1.12.0 functional
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 −15
    • Malware scan: pass → unverified security
    • Package version: 1.11.0 → 1.11.1 functional
  • 14 Sept 26 +16
    • Malware scan: unverified → pass security
  • 12 Sept 26 +1
    • Package version: 1.10.0 → 1.11.0 functional
  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/vmware-nsx-security@1.13.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 40 packages
Packages resolved 40
Stale 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 22 exposed · ~4,870 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
apply_vm_tag ~171

[WRITE] Apply an NSX tag to a virtual machine. Returns {"status": "applied", "vm_id", "scope", "tag"} — not the VM's tag list. Use list_vm_tags first for the vm_id, and again after to see the result. Additive, so existing tags survive, but note that tag-based group membership shifts as NSX re-evaluates: check with get_group.

NameTypeReqDescription
tag_scopestringyesTag scope (e.g. 'env', 'tier', 'owner').
tag_valuestringyesTag value (e.g. 'production', 'web').
targetOptional NSX Manager target from config.
vm_idstringyesVM external ID (fabric UUID, from list_vm_tags).

No output schema declared.

No examples provided.

create_dfw_policy ~180

[WRITE] Create a new DFW security policy. Returns the created policy dict (id, path, category, ...), else {"error", "hint"}. The policy is an empty container — rules must be added afterwards with create_dfw_rule.

NameTypeReqDescription
categorystringEthernet, Emergency, Infrastructure, Environment or Application (default Application); sets DFW evaluation order, Ethernet first, Application last.
descriptionstringOptional description.
display_namestringyesHuman-readable name.
policy_idstringyesUnique policy id (alphanumerics, hyphens, underscores).
sequence_numberintegerPriority; lower = higher priority (default 10).
statefulbooleanTrack connection state (default True).
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

create_dfw_rule ~356

[WRITE] Create a firewall rule under an existing DFW security policy. Returns the created rule dict (id, path, action, ...), else {"error", "hint"}; a bad action/direction/ip_protocol lists the valid values. PUT semantics: reusing a rule_id overwrites that rule, enforced immediately unless disabled=True. Pick policy_id with list_dfw_policies first; prefer update_dfw_rule to edit one and delete_dfw_rule to remove one.

NameTypeReqDescription
actionstringALLOW, DROP, REJECT or JUMP_TO_APPLICATION (default ALLOW); JUMP_TO_APPLICATION needs an Environment policy.
descriptionstringOptional free text.
destinationsDestination group paths; omit for any.
directionstringIN, OUT or IN_OUT (default IN_OUT).
disabledbooleanCreate the rule unenforced (default False).
display_namestringyesHuman-readable name.
ip_protocolstringIPV4, IPV6 or IPV4_IPV6 (default IPV4_IPV6).
loggedbooleanLog matched traffic (default False).
policy_idstringyesParent policy id, from list_dfw_policies.
rule_idstringyesUnique rule id within that policy.
scopeApplied-to group/segment paths; omit for the whole DFW.
sequence_numberintegerPriority; lower matches first (default 10).
servicesService paths; omit for all.
sourcesSource group paths like ['/infra/domains/default/groups/web']; omit for any.
targetTarget name from config; default if omitted.

No output schema declared.

No examples provided.

create_group ~230

[WRITE] Create an NSX security group with optional membership criteria. Returns the created group dict (id, path, expression, ...). Criteria are ORed — NSX only permits AND between same-member-type Conditions: tag_scope/tag_value matches VMs carrying that tag, ip_addresses matches IPs or CIDRs, segment_paths every VM on those segments. Use it before create_dfw_rule, which references the group path; confirm members with get_group.

NameTypeReqDescription
descriptionstringOptional description.
display_namestringyesHuman-readable name.
group_idstringyesUnique id (alphanumerics, hyphens, underscores).
ip_addressesIP addresses or CIDRs (e.g. ['10.0.1.0/24']).
segment_pathsNSX segment policy paths.
tag_scopeNSX tag scope for membership (e.g. 'env').
tag_valueNSX tag value for membership (e.g. 'production').
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

delete_dfw_policy ~223

[WRITE] Delete a DFW security policy; refuses while it still holds rules. Without confirm=True this only previews: it returns blast_radius (the policy's name, category, sequence_number, rule_count and rule_ids, blockers, unmeasured) and deletes nothing. Show that to the user and get their decision. Do not set confirm=True on your own because the user asked to delete earlier: they have not seen the blast radius yet. confirm=True refuses, deleting nothing, while the policy still holds rules — list them with list_dfw_rules and clear each with delete_dfw_rule first — or when its rules could not be read. Returns {"action": "preview" | "deleted", "blast_radius": ...}, else {"error", "hint", "blast_radius"?}.

NameTypeReqDescription
confirmbooleanFalse (default) returns the blast radius and changes nothing. True applies it.
policy_idstringyesID of the policy to delete.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

delete_dfw_rule ~305

[WRITE] Permanently delete one DFW rule from its parent security policy. Irreversible and immediate: traffic it matched falls through to lower-priority rules or the policy default. Without confirm=True this only previews: it returns blast_radius (the parent policy, the rule's action, sources, destinations, services, scope, direction, disabled flag, blockers, unmeasured) and deletes nothing. Show that to the user and get their decision. Do not set confirm=True on your own because the user asked to delete earlier: they have not seen the blast radius yet. Check recent hits with get_dfw_rule_stats first; prefer update_dfw_rule with disabled=True when you may need the rule back. A rule_id not in the policy is an error, and confirm=True refuses when the rules could not be read. To remove a whole policy use delete_dfw_policy — it refuses while rules remain. Returns {"action": "preview" | "deleted", "blast_radius": ...}, else {"error", "hint", "blast_radius"?}.

NameTypeReqDescription
confirmbooleanFalse (default) returns the blast radius and changes nothing. True applies it.
policy_idstringyesParent policy id, from list_dfw_policies.
rule_idstringyesRule id within that policy, from list_dfw_rules.
targetTarget name from config; default if omitted.

No output schema declared.

No examples provided.

delete_group ~266

[WRITE] Delete an NSX security group; refuses while anything references it. Use it once get_group shows the group is unwanted. Without confirm=True this only previews: it returns blast_radius (the group's name, path, expression_count, reference_count and references, blockers, unmeasured) and deletes nothing. Show that to the user and get their decision. Do not set confirm=True on your own because the user asked to delete earlier: they have not seen the blast radius yet. confirm=True refuses if anything still references the group (parent groups from NSX's group-associations API; DFW and gateway-firewall rules and policy applied-to, by walking the rules), and refuses if that check itself fails (fail-safe). When the refusal names a DFW rule, retarget it with update_dfw_rule or drop it with delete_dfw_rule first. Returns {"action": "preview" | "deleted", "blast_radius": ...}, else {"error", "hint", "blast_radius"?}.

NameTypeReqDescription
confirmbooleanFalse (default) returns the blast radius and changes nothing. True applies it.
group_idstringyesID of the group to delete.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

get_dfw_policy ~108

[READ] Get full details of a single DFW security policy. Returns one policy object, not an envelope: category, sequence_number, stateful, scope and rule count. Use it once list_dfw_policies has narrowed to one id — never a display name. Then call list_dfw_rules for the rules inside.

NameTypeReqDescription
policy_idstringyesPolicy identifier (e.g. 'app-tier-policy').
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

get_dfw_rule_stats ~130

[READ] Get packet/byte hit-count statistics for a DFW rule. Returns one flat stats object, not an envelope: packet_count, byte_count, session_count, hit_count, popularity_index. Use it before update_dfw_rule or delete_dfw_rule to see if a rule still matches traffic; counters are cumulative and may read zero on a new rule. Ids come from list_dfw_rules.

NameTypeReqDescription
policy_idstringyesParent policy identifier.
rule_idstringyesRule identifier.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

get_group ~151

[READ] Get details of a security group including membership criteria and effective members. Returns one group object: its expression rules, member_count (the group's real size), and members — an envelope holding at most the first 50 effective VirtualMachine members, whose truncated flag says whether more were withheld. Report member_count as the size; counting members.items reports the sample instead. Use it once list_groups has narrowed to one id; membership is evaluated by NSX, so a tag written with apply_vm_tag may take seconds to appear.

NameTypeReqDescription
group_idstringyesGroup identifier (e.g. 'web-tier-vms').
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

get_idps_status ~132

[READ] Get IDPS signature status and global IDS settings. Returns one bundle, not an envelope: 'signature_status' (scalar fields of the signature bundle status, e.g. version/update state — names vary by NSX release) and 'settings' (auto_update, ids_events_to_syslog). Use it first to confirm IDS is on and current, then list_idps_profiles for the profiles. No per-signature or per-event detail, and 'signature_status' may be empty where IDS was never enabled.

NameTypeReqDescription
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

get_traceflow_result ~137

[READ] Get the current state and observations of an existing Traceflow. Use this to check a previously initiated traceflow without waiting. Returns operation_state (IN_PROGRESS / FINISHED / FAILED) and observations typed by resource_type; Dropped* ones carry reason and acl_rule_id. Only a traceflow run_traceflow left IN_PROGRESS at its timeout is still on the manager — a completed one is deleted server-side and its id 404s here.

NameTypeReqDescription
targetOptional NSX Manager target from config.
traceflow_idstringyesTraceflow ID from a previous run_traceflow call.

No output schema declared.

No examples provided.

list_dfw_exclusions ~364

[READ] List the DFW exclusion list — the members no distributed-firewall rule reaches. Read this before answering any question about a VM being micro-segmented or protected by DFW policy. A VM on this list has no DFW in its datapath: rules that name it, groups that contain it and policies scoped to it all still exist and none of them apply. On a VCF estate the management VMs (vCenter, VCF Operations, NSX managers) are commonly on it. Returns the list envelope. 'items' holds one row per excluded member: the group 'path', its 'id' and 'display_name', the 'virtual_machines' in it and 'vm_count'. A row with 'members_error' is a group whose members could not be read — that is not an empty group, so do not read it as one. 'scope' says which list answered: "system_and_user" includes NSX's own system-owned exclusions, "user" means this manager refused that variant and system exclusions are NOT in the answer. An empty list under "user" is not proof that nothing is excluded. Page with 'next_offset': pass the value back as 'offset' and stop when it is null. The list holds at most 100 groups, so one page is normally all of it.

NameTypeReqDescription
limitintegerPage size, 1..1000 (default 50). Not a way to ask for everything — 0 or negative is rejected.
offsetintegerExcluded members to skip, 0 or more. Pass the previous response's 'next_offset'.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

list_dfw_policies ~351

[READ] List DFW security policies in the default domain. Start here. Returns the list envelope: 'items' holds each policy's id, display_name, category, sequence_number, stateful flag and rule count; 'returned'/'limit'/'total'/'truncated'/'hint' say whether the page is the whole answer — never read a full page as complete, narrow with name_filter or page with offset. Then get_dfw_policy for one policy's detail, or list_dfw_rules for the rules inside. Page with 'next_offset': pass the value back as 'offset' and stop when it is null. Do not loop on 'truncated' — that says this page is not the whole collection, which stays true on the last page of a walk. 'rule_count' is null when NSX did not report one — that means "not retrieved", NOT "no rules", so do not conclude a null policy enforces nothing; call list_dfw_rules on it. Passing name_filter makes every count null (it is resolved via the Policy Search API, which carries no rule counts). A null anywhere adds 'rule_count_note' to the envelope.

NameTypeReqDescription
limitintegerPage size, 1..1000 (default 50). Not a way to ask for everything — 0 or negative is rejected.
name_filterSubstring/glob match on policy display_name.
offsetintegerMatched policies to skip, 0 or more. Pass the previous response's 'next_offset'.
targetNSX Manager target name from config; default if omitted.

No output schema declared.

No examples provided.

list_dfw_rules ~268

[READ] List rules in a DFW security policy. Returns the list envelope: 'items' holds each rule's id, display_name, action, sources, destinations, services, direction, disabled flag and sequence number; 'returned'/'limit'/'truncated'/'hint' say whether the page is complete. 'total' is always null here — a full page reports truncated=true and must be paged with offset; one Application policy can hold thousands of rules. Get policy_id from list_dfw_policies; then get_dfw_rule_stats for a rule's hit counts. Page with 'next_offset': pass the value back as 'offset' and stop when it is null. Do not loop on 'truncated' — that says this page is not the whole collection, which stays true on the last page of a walk.

NameTypeReqDescription
limitintegerPage size, 1..1000 (default 50). Not a way to ask for everything — 0 or negative is rejected.
offsetintegerRules to skip, 0 or more. Pass the previous response's 'next_offset'.
policy_idstringyesParent policy identifier.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

list_groups ~238

[READ] List NSX security groups in the default domain. Returns the list envelope: 'items' holds each group's id, display_name, description and expression count; 'returned'/'limit'/'total'/ 'truncated'/'hint' say whether the page is the whole answer — never read a full page as complete, narrow with name_filter or page with offset. Then get_group for one group's criteria and effective members. Page with 'next_offset': pass the value back as 'offset' and stop when it is null. Do not loop on 'truncated' — that says this page is not the whole collection, which stays true on the last page of a walk.

NameTypeReqDescription
limitintegerPage size, 1..1000 (default 50). Not a way to ask for everything — 0 or negative is rejected.
name_filterSubstring/glob match on group display_name.
offsetintegerMatched groups to skip, 0 or more. Pass the previous response's 'next_offset'.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

list_idps_profiles ~271

[READ] List IDPS profiles configured in NSX. Returns the list envelope: 'items' holds each profile's id, display_name, profile_severity (comma-joined), criteria (filter_name/filter_value pairs, e.g. ATTACK_TYPE or CVSS) and overridden signature count; 'returned'/'limit'/'total'/'truncated'/ 'hint' say whether the page is the whole answer — never read a full page as complete, narrow with name_filter or page with offset. Then get_idps_status for the signature-bundle version and IDS settings. Page with 'next_offset': pass the value back as 'offset' and stop when it is null. Do not loop on 'truncated' — that says this page is not the whole collection, which stays true on the last page of a walk.

NameTypeReqDescription
limitintegerPage size, 1..1000 (default 50). Not a way to ask for everything — 0 or negative is rejected.
name_filterSubstring/glob match on profile display_name.
offsetintegerMatched profiles to skip, 0 or more. Pass the previous response's 'next_offset'.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

list_vm_tags ~195

[READ] List all NSX tags applied to a virtual machine. Returns the list envelope: 'items' holds the VM's scope/tag pairs and 'vm_id' the fabric UUID apply_vm_tag and remove_vm_tag require — call this first to get it. Tags always arrive in one response, so 'truncated' is always false and empty 'items' means the VM really has no tags. 'tags' is a deprecated pre-1.8.0 alias of 'items', removed in 2.0 — read 'items'. Returns {"error", "hint"} if no VM matches, or several do.

NameTypeReqDescription
targetOptional NSX Manager target from config.
vm_display_namestringyesExact vCenter display name (case-sensitive, no wildcards). This skill does not enumerate VMs — run vmware-monitor's list_virtual_machines to get one.

No output schema declared.

No examples provided.

remove_vm_tag ~170

[WRITE] Remove an NSX tag from a virtual machine. Returns {"status": "removed", "vm_id", "scope", "tag"}, not the VM's remaining tags. Only the exact scope/value pair is removed — other tags survive. Removing a tag changes dynamic group membership immediately — groups with tag Conditions stop matching the VM — so re-check with get_group. Use list_vm_tags first to confirm the pair.

NameTypeReqDescription
tag_scopestringyesScope of the tag to remove (e.g. 'env').
tag_valuestringyesValue of the tag to remove (e.g. 'production').
targetOptional NSX Manager target from config.
vm_idstringyesVM external ID (fabric UUID, from list_vm_tags).

No output schema declared.

No examples provided.

run_traceflow ~293

[WRITE] Run a Traceflow to trace a packet's path through the NSX overlay. Injects a synthetic probe from the source port. Returns traceflow_id, operation_state (IN_PROGRESS / FINISHED / FAILED) and hop-by-hop observations typed by resource_type; Dropped* ones carry reason and acl_rule_id. Use it to find which DFW rule drops a flow, then get_dfw_rule_stats on that rule. A FINISHED traceflow is deleted server-side and its id 404s; only one still IN_PROGRESS at timeout_seconds survives for get_traceflow_result to poll.

NameTypeReqDescription
dst_ipstringyesDestination IP.
dst_portintegerDestination port for TCP/UDP (default 80).
protocolstringTCP, UDP or ICMP (default TCP).
src_ipstringyesProbe source IP.
src_lport_idstringyesSource logical port ID — the VM NIC attachment UUID. This skill does not enumerate ports; run vmware-nsx's get_segment_port_for_vm to obtain one.
src_portintegerSource port for TCP/UDP (default 1234).
targetOptional NSX Manager target from config.
timeout_secondsintegerMax seconds to wait (default 20).
ttlintegerIP TTL (default 64).

No output schema declared.

No examples provided.

update_dfw_policy ~139

[WRITE] Partially update a DFW security policy (PATCH — only provided fields change). Returns the updated policy dict; omitted arguments keep their values, so read them with get_dfw_policy first. Use it to rename or re-prioritise the policy itself — to change a rule inside use update_dfw_rule.

NameTypeReqDescription
descriptionNew description.
display_nameNew display name.
policy_idstringyesID of the policy to update.
sequence_numberNew sequence number.
statefulNew stateful flag.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

update_dfw_rule ~192

[WRITE] Partially update a DFW rule (PATCH — only provided fields change). Returns the updated rule dict; omitted arguments keep their values, so read them with list_dfw_rules first. Use it to retarget, re-prioritise or disable a rule — to add one use create_dfw_rule, to remove one delete_dfw_rule.

NameTypeReqDescription
actionNew firewall action.
descriptionNew description.
destinationsNew destination groups.
disabledNew disabled flag.
display_nameNew name.
loggedNew logged flag.
policy_idstringyesParent policy identifier.
rule_idstringyesRule identifier to update.
sequence_numberNew sequence number.
servicesNew services.
sourcesNew source groups.
targetOptional NSX Manager target from config.

No output schema declared.

No examples provided.

Common questions

What is the VMware NSX Security MCP server?

VMware NSX Security is an MCP server listed in the public MCP registry as io.github.vmware-skills/vmware-nsx-security. VMware NSX security: DFW policies and exclusions, groups, tags, Traceflow, IDPS, 22 MCP tools. This page covers its PyPI package (vmware-nsx-security).

Is the VMware NSX Security MCP server safe to use?

VMware NSX Security scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the VMware NSX Security MCP server expose?

VMware NSX Security exposes 22 tools: list_dfw_policies, get_dfw_policy, create_dfw_policy, update_dfw_policy, delete_dfw_policy, and 17 more. Their descriptions and schemas cost roughly 4,870 tokens of context every time the server is loaded.

Is the VMware NSX Security MCP server still maintained?

VMware NSX Security is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.