Skip to main content
Glama
vnoiram

VMware Workstation MCP

by vnoiram

VMware Workstation MCP

English version: README.en.md

VMware Workstation を vmrun 経由で操作する stdio MCP サーバーです。

このリポジトリは WSL 上に置いて実行できます。VMware Workstation は Windows ホスト側にあり、サーバーは WSL から vmrun.exe を起動します。Windows 側の Node.js で直接実行することもできます。

セットアップ

npm install

vmrun.exe が標準の VMware Workstation インストール先にあれば自動検出します。見つからない場合は VMRUN_PATH を指定してください。 vmrun の product type は既定で VMware Workstation の ws を使います。変更したい場合は VMRUN_TYPE を指定してください。 WSL で vmrun.exe を使う場合は、既定で Windows PowerShell 経由で実行します。直接実行したい場合は VMRUN_USE_POWERSHELL=0 を指定してください。 WSL 側 Node.js から Windows exe を直接起動できない環境では、Windows 側で vmrun bridge を起動し、WSL 側 MCP サーバーから VMRUN_BRIDGE_URL で接続してください。

WSL から起動する例:

export VMRUN_PATH="/mnt/c/Program Files (x86)/VMware/VMware Workstation/vmrun.exe"
npm start

Windows から起動する例:

$env:VMRUN_PATH = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
npm start

Windows 側で bridge だけ起動し、MCP サーバーは WSL 側で動かす例:

$env:VMRUN_BRIDGE_TOKEN = "change-me"
$env:VMRUN_PATH = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
npm run bridge
export VMRUN_BRIDGE_URL="http://127.0.0.1:57931/"
export VMRUN_BRIDGE_TOKEN="change-me"
npm start

VMRUN_BRIDGE_HOSTVMRUN_BRIDGE_PORT で bridge の listen 先を変更できます。既定は 127.0.0.1:57931 です。 VMRUN_BRIDGE_MAX_BODY_BYTES で bridge が受け付ける JSON リクエストサイズ上限を変更できます。既定は 65536 バイトです。

Windows ログオン時に bridge を自動起動する Task Scheduler 登録例:

.\tools\register-vmrun-bridge-task.ps1 -Token "change-me"

Related MCP server: vmware-mcp

MCP クライアント設定例

WSL 側の Node.js で起動する場合:

{
  "mcpServers": {
    "vmware-workstation": {
      "command": "node",
      "args": ["/path/to/vmware-workstation-mcp/src/index.js"],
      "env": {
        "VMRUN_PATH": "/mnt/c/Program Files (x86)/VMware/VMware Workstation/vmrun.exe"
      }
    }
  }
}

Windows bridge を使う場合の WSL 側 MCP 設定例:

{
  "mcpServers": {
    "vmware-workstation": {
      "command": "node",
      "args": ["/path/to/vmware-workstation-mcp/src/index.js"],
      "env": {
        "VMRUN_BRIDGE_URL": "http://127.0.0.1:57931/",
        "VMRUN_BRIDGE_TOKEN": "change-me"
      }
    }
  }
}

Windows 側の Node.js で起動する場合は commandargs を Windows パスにしてください。

VM 検出

find_vms は次の場所を既定で探します。

  • ~/vmware

  • ~/VMs

  • ~/Documents/Virtual Machines

  • WSL の場合は /mnt/c/Users/*/Documents/Virtual Machines

  • WSL の場合は /mnt/d/Virtual Machines, /mnt/e/Virtual Machines などの一般的な別ドライブ上の VM 置き場

検索場所を固定したい場合は VMWARE_VMX_ROOTS にパス区切りで指定できます。

export VMWARE_VMX_ROOTS="/mnt/c/Users/you/Documents/Virtual Machines:/mnt/d/vms"

多くの VM 操作ツールは vmxPath の代わりに vmName も受け付けます。vmName.vmx のファイル名、または VMX 内の displayName と完全一致する名前です。重複した場合は安全のためエラーになります。

{
  "vmName": "Parrot72"
}

明示エイリアス、検索ルート、bridge、policy は vmware-mcp.config.json にも書けます。雛形は vmware-mcp.config.example.json です。別パスを使う場合は VMWARE_MCP_CONFIG を指定してください。

cp vmware-mcp.config.example.json vmware-mcp.config.json
export VMWARE_MCP_CONFIG=/path/to/vmware-mcp.config.json

vmName 解決は VM 探索結果をキャッシュします。既定 TTL は 300 秒です。

export VMWARE_VM_CACHE_TTL_MS=300000
export VMWARE_DISCOVERY_DEPTH=7

安全設定

読み取り専用で起動する場合:

export VMWARE_MCP_READONLY=1

操作を細かく許可する場合は VMWARE_ALLOWED_ACTIONS を使います。値はカンマ、コロン、セミコロン区切りです。

export VMWARE_ALLOWED_ACTIONS="start_vm,stop_vm"

カテゴリ単位でも指定できます。

  • read: 状態確認、VMX 読み取り、スナップショット一覧、IP 取得など

  • power: 起動、停止、サスペンド、リセット、一時停止

  • snapshot: スナップショット作成、復元、削除

  • guest: ゲスト OS 内でのプログラム実行

  • guest_read: ゲスト OS 内のプロセス/ディレクトリ/存在確認

  • file_transfer: ホストとゲスト間のファイルコピー

  • shared_folder: 共有フォルダの有効化、追加、削除

  • vmx_edit: VMX 設定ファイルの編集

  • raw: vmrun escape hatch

特定操作を禁止する場合:

export VMWARE_DENIED_ACTIONS="vmrun,delete_snapshot"

操作対象の VMX パスを特定ルート配下に制限する場合:

export VMWARE_ALLOWED_ROOTS="/mnt/d/Virtual Machines:/mnt/e/Virtual Machines"

高リスク操作には confirm が必要です。

  • reset_vm: confirm: "reset_vm"

  • revert_to_snapshot: confirm: "revert_to_snapshot"

  • delete_snapshot: confirm: "delete_snapshot"

  • disable_shared_folders: confirm: "disable_shared_folders"

  • remove_shared_folder: confirm: "remove_shared_folder"

  • edit_vmx_config: confirm: "edit_vmx_config"

  • run_guest_program_with_snapshot: confirm: "run_guest_program_with_snapshot"

  • vmrun: confirm: "vmrun"

提供ツール

  • server_info: 検出した vmrun と既定検索ルートを表示します。

  • diagnose_environment: Node/WSL/vmrun/bridge/検索ルート/policy/実行中 VM を診断します。

  • find_vms: .vmx ファイルを検索し、実行中かどうかも返します。

  • refresh_vm_cache: VM 探索キャッシュを更新します。

  • list_vm_cache: VM 探索キャッシュを表示します。

  • get_vm_status: 指定 VM の実行状態とパス情報を表示します。

  • get_vm_details: 実行状態、VMX メタデータ、スナップショット、IP、Tools 状態をまとめて表示します。

  • read_vmx_config: .vmx ファイルから表示名、ゲスト OS、メモリ、CPU などを読み取ります。

  • edit_vmx_config: VMX の表示名、メモリ、CPU、ゲスト OS、ネットワーク種別などを編集します。

  • list_running_vms: 実行中 VM を取得します。

  • start_vm: VM を起動します。

  • start_vm_and_wait: VM 起動後、Tools/IP/任意ポートが使えるまで待ちます。

  • wait_for_guest_ready: 起動済み VM について、Tools/IP/任意ポートが使えるまで待ちます。

  • stop_vm: VM を停止します。

  • suspend_vm: VM をサスペンドします。

  • reset_vm: VM をリセットします。

  • pause_vm: VM を一時停止します。

  • unpause_vm: VM の一時停止を解除します。

  • list_snapshots: スナップショット一覧を取得します。

  • create_snapshot: スナップショットを作成します。

  • revert_to_snapshot: スナップショットへ戻します。

  • delete_snapshot: スナップショットを削除します。

  • get_guest_ip_address: VMware Tools 経由でゲスト OS の IP アドレスを取得します。

  • check_guest_port: ゲスト IP または指定ホストの TCP ポート疎通を確認します。

  • check_tools_state: VMware Tools の状態を確認します。

  • capture_screen: VM の画面をホスト上の画像ファイルに保存します。

  • enable_shared_folders: 共有フォルダ機能を有効化します。

  • disable_shared_folders: 共有フォルダ機能を無効化します。

  • add_shared_folder: ホストディレクトリをゲストへ共有します。

  • remove_shared_folder: 共有フォルダを削除します。

  • guest_run_program: VMware Tools 経由でゲスト OS 内のプログラムを実行します。

  • guest_list_processes: ゲスト OS 内のプロセス一覧を取得します。

  • guest_list_directory: ゲスト OS 内のディレクトリを一覧します。

  • guest_file_exists: ゲスト OS 内のファイル存在確認をします。

  • guest_directory_exists: ゲスト OS 内のディレクトリ存在確認をします。

  • copy_file_from_guest: ゲスト OS からホストへファイルをコピーします。

  • copy_file_to_guest: ホストからゲスト OS へファイルをコピーします。

  • run_guest_program_with_snapshot: 実行前 snapshot、失敗時 revert、成功時 snapshot 削除を選べるゲスト実行ラッパーです。

  • vmrun: 明示した vmrun 引数を実行する上級者向けツールです。

ゲスト OS 操作系ツールは VMware Tools がゲスト内で動作しており、ゲスト OS のユーザー名とパスワードを渡せる場合に使えます。 MCP の応答では vmrun -gp の値を伏せますが、ゲスト認証情報を扱うため、このサーバーは信頼できるローカル MCP クライアントからだけ起動してください。

パスの扱い

WSL から実行している場合、VMX パスに /mnt/c/.../vm.vmx のような WSL パスを渡すと、C:\...\vm.vmx に変換して vmrun.exe に渡します。Windows パスをそのまま渡しても動作します。

Available Tools

14 tools
create_snapshotCreate SnapshotB

Create a snapshot for a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSnapshot name.
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations show destructiveHint=false, but description adds no extra behavioral details (e.g., disk usage, performance impact).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, but too brief for the operation's complexity; misses front-loaded key info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no mention of return value, asynchronous behavior, or impact on VM state. Incomplete for a creation action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, description adds no extra meaning beyond parameter names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Create a snapshot for a VMware VM.' Distinct from siblings like delete_snapshot and list_snapshots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage context, no when-to-use vs alternatives, no prerequisites or caveats provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_snapshotDelete SnapshotB
Destructive

Delete a VMware VM snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSnapshot name.
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include destructiveHint: true. The description adds no further behavioral details, such as whether deletion is permanent or requires confirmation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no redundant information, efficiently conveying the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, destructive tool with full schema coverage and annotations, the description is minimally adequate but lacks safety warnings or hints about error states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are described in the schema (100% coverage). The description adds no new meaning beyond the schema, meriting baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and resource ('VM snapshot'), distinguishing it from siblings like create_snapshot or list_snapshots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as revert to snapshot or delete operations on other resources. The description lacks context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_vmsFind VMsB
Read-only

Find VMware .vmx files under configured or provided roots.

ParametersJSON Schema
NameRequiredDescriptionDefault
rootsNoDirectories to scan. Defaults to VMWARE_VMX_ROOTS or common VMware locations.
maxDepthNoMaximum directory depth to scan.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows it's a safe read operation. The description adds only that it finds .vmx files under configured or provided roots, which is already implied. No additional behavioral context like performance details or result limits are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It is appropriately sized for a simple tool. However, it could include more structure (e.g., listing what it does) without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema, readOnly annotation), the description is reasonably complete. It tells what the tool does and mentions the optional roots configuration. The schema provides details on defaults and constraints, so the description suffices for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage for both parameters (roots and maxDepth). The tool description restates that roots can be configured or provided, adding minimal value beyond the schema. Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds VMware .vmx files, using the verb 'find' and specifying the resource '.vmx files'. It distinguishes well from sibling tools like list_running_vms (which lists active VMs) and create_snapshot (which manages snapshots).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives like list_running_vms or vmrun. It implicitly suggests it's for locating VM configuration files, but lacks 'when not to use' or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_running_vmsList Running VMsA
Read-only

List currently running VMware VMs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows it's a safe read operation. The description adds the filtering to 'currently running' VMs. However, it does not disclose return format, potential empty results, or authentication requirements. With annotations covering safety, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no wasted words. It directly states what the tool does without extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple list tool, but it lacks detail on the output format (e.g., returns VM names, IDs, or full details). With no output schema, the agent might need more context. However, given the simplicity, a score of 3 is fair.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema description coverage is 100%, so the description does not need to add param details. The baseline for zero-parameter tools is 4, as the description does not provide extra param meaning but also does not need to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists currently running VMs, with a specific verb (list) and resource (running VMs). It distinguishes from sibling tools like 'find_vms' which might list all VMs, and other action-oriented tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No context on when to use this tool vs alternatives like 'find_vms' or 'list_snapshots'. The description does not provide any guidance on prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_snapshotsList SnapshotsA
Read-only

List snapshots for a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.
showTreeNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral context beyond what the annotations already provide (readOnlyHint=true). It does not disclose return format, pagination, or any side effects, but annotations cover the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With two parameters and no output schema, the description is adequate but lacks details about the output format or the relationship between parameters. It does not explain what information is returned (e.g., snapshot names, tree).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%; the schema provides some detail for vmxPath but none for showTree. The tool description does not add any parameter information or clarify usage beyond the schema, failing to compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'snapshots for a VMware VM', making the purpose unambiguous. It distinguishes from sibling tools like create_snapshot, delete_snapshot, and revert_to_snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for listing snapshots by stating its action, but it does not explicitly provide when-to-use or when-not-to-use guidance compared to alternatives. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_vmPause VMB

Pause a running VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description gives minimal behavioral context beyond the action. With no annotations indicating read-only or destructive behavior, the description could elaborate on effects (e.g., state preserved in memory, network disconnection). It merely states the action without explaining consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and front-loaded with the main verb and object. It is concise but lacks additional details that could be included without verbosity, such as prerequisites or side effects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one param, no output schema), the description is minimally complete but misses contextual details like what happens to the VM after pausing, how to resume, or required permissions. Could be improved with a sentence on behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents the vmxPath parameter with its description. The tool description adds no additional parameter information, thus baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Pause' and the resource 'VM', and it specifies 'running' which distinguishes it from other VM states. This is a specific verb+resource that differentiates it from siblings like start_vm, stop_vm, and suspend_vm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any explicit guidance on when to use this tool versus alternatives like suspend_vm or stop_vm. It only implicitly suggests it should be used on running VMs but lacks when-not-to-use or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reset_vmReset VMC
Destructive

Reset a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosoft
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive behavior (destructiveHint=true), but the description adds no additional context about what is destroyed (e.g., unsaved VM state). No contradiction, but no added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief (one sentence), but it sacrifices informativeness for brevity. Important details about modes and behavior are omitted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of a destructiveHint and a parameter with an enum, the description is highly incomplete. It fails to explain what reset does, how it differs from other VM tools, and what the mode parameter controls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only vmxPath has a description). The tool description does not explain the 'mode' parameter or its enum values (soft vs hard), missing an opportunity to clarify behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Reset a VMware VM' clearly states the verb and resource, distinguishing it from sibling tools like start, stop, pause. However, it lacks detail on what reset entails (e.g., power cycle, state loss).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use reset versus alternatives like stop/start or pause. The description does not mention context or prerequisites for using this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revert_to_snapshotRevert To SnapshotA
Destructive

Revert a VMware VM to a snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSnapshot name.
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is basic and does not elaborate on behavioral traits beyond the annotation's destructiveHint. It could mention that reverting discards current state, but given the annotation already flags destructiveness, the description meets minimum expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and to the point, using a single sentence. It could be slightly more structured (e.g., adding a note about impact), but it is not overly verbose and communicates the core action efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of a revert operation, with full parameter coverage and a destructive annotation, the description is largely complete. It might benefit from mentioning the effect on VM state, but overall it provides enough context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (name and vmxPath) with sufficient detail. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (revert), the resource (VMware VM), and the object (snapshot). It is distinct from sibling tools like create_snapshot or delete_snapshot, providing unambiguous purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as create_snapshot or delete_snapshot. It lacks context about prerequisites, potential data loss, or scenarios where reverting is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

server_infoServer InfoA
Read-only

Show vmrun detection and VM search settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only behavior. The description adds that it shows specific settings but does not disclose the return format, potential side effects (none expected), or any authentication requirements. For a simple info tool, this is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that conveys the essential purpose without any extraneous words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool is simple with no parameters, the description is somewhat vague. It does not explain what 'vmrun detection' or 'VM search settings' entail, leaving the agent uncertain about the exact output. An explanation of the return value would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the input schema is fully covered. The description does not need to add parameter semantics, and the baseline score for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Show') and identifies the resource ('vmrun detection and VM search settings'). It clearly distinguishes the tool from sibling tools that manipulate VMs, as it focuses on displaying server configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool or when alternatives like list_running_vms or find_vms would be more appropriate. It is implied for checking settings, but lacks exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_vmStart VMC

Start a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNogui
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate it is not destructive and not open-world, but the description adds no behavioral context such as idempotency, blocking behavior, or side effects like requiring the VM to be powered off.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is short but under-specified. It does not earn its place by providing necessary detail about parameters or behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters and no output schema, the description is too minimal. It does not clarify preconditions (e.g., VM must be stopped), the effect of 'mode', or what happens if the VM is already running.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only 'vmxPath' has a description). The description does not explain the 'mode' parameter or its enum values ('gui', 'nogui'), nor does it add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Start') and the resource ('VMware VM'), which is specific and distinguishes it from sibling tools like 'stop_vm' or 'pause_vm'. However, it lacks nuance about VM state prerequisites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., 'reset_vm' or 'unpause_vm'), and no prerequisites like VM state are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_vmStop VMC
Destructive

Stop a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosoft
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The destructiveHint annotation is true, aligning with 'stop'. However, the description adds no behavioral context beyond the annotation, such as the difference between soft and hard stop, potential data loss, or required permissions. Minimal added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but at the expense of required detail. It lacks structure and does not earn its place by providing essential guidance for agent invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive nature, two parameters (one with enum), and 13 sibling tools, the description is severely incomplete. It fails to explain return values, parameter semantics, or use cases, leaving the agent with insufficient information to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (only vmxPath is described). The description mentions no parameters at all, failing to explain the 'mode' enum or how to use the parameters. With low coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Stop a VMware VM' is clear about the verb (stop) and resource (VMware VM), but it does not differentiate from sibling tools like pause_vm, suspend_vm, or reset_vm. The name alone conveys similar information, making the description somewhat redundant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use stop_vm versus alternatives. The description lacks any context about prerequisites, scenarios, or exclusions, leaving the agent without decision-making support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suspend_vmSuspend VMC

Suspend a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosoft
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint: false, but the description does not explain what 'suspend' entails (e.g., saves state, stops execution, retains memory). With no behavioral details beyond the one-line description, the agent lacks understanding of side effects, reversibility, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one sentence) but fails to include necessary detail. While concise, it sacrifices essential information, making it less helpful. The length is appropriate only if the tool is trivial, but the existence of multiple siblings and parameters suggests more detail is warranted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two parameters, one with enum) and the presence of closely related siblings (pause_vm, stop_vm), the description is incomplete. It does not clarify return values, error conditions, or the difference between suspend and pause. No output schema exists, so the description should have covered these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (only vmxPath has a description). The description adds no additional meaning to parameters; it does not explain the 'mode' enum values or their implications. The agent must infer from the schema alone, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Suspend a VMware VM' clearly states the action (suspend) and resource (VMware VM). However, it does not distinguish this from the sibling 'pause_vm', which may have similar behavior. The verb and resource are specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'pause_vm', 'stop_vm', or when to select the 'soft' vs 'hard' mode parameter. The description lacks any context on prerequisites, typical use cases, or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpause_vmUnpause VMA

Unpause a VMware VM.

ParametersJSON Schema
NameRequiredDescriptionDefault
vmxPathYesPath to a .vmx file. WSL /mnt/c paths are accepted.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-destructive and deterministic behavior (destructiveHint: false, openWorldHint: false). The description adds no further behavioral context, but the basic safety profile is clear. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is perfectly sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description and annotations together provide sufficient information. No missing details are critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description for the single parameter 'vmxPath' adds meaning beyond the schema by noting 'WSL /mnt/c paths are accepted.' This compensates for the schema's minimal description and helps the agent handle path formats correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Unpause a VMware VM.' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'pause_vm', 'start_vm', and 'stop_vm'. It directly states what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it, despite the presence of related sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vmrunRun vmrunA
Destructive

Run explicit vmrun arguments. Advanced escape hatch for commands not covered by dedicated tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesArguments passed to vmrun, excluding the vmrun executable itself.
timeoutMsNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint: true, so the description does not need to reiterate. However, it adds no further context about risks or side effects beyond calling it 'advanced'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is frontloaded with the core action and purpose, with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an escape hatch tool, the description is adequate but could be improved by mentioning expected output (e.g., stdout/stderr) or that timeout is optional. The presence of sibling tools helps contextualize its role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no additional information beyond the schema. The schema provides a description for 'args' but not for 'timeoutMs', and the description does not compensate for that gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs arbitrary vmrun arguments and explicitly positions it as an escape hatch for commands not covered by dedicated tools, distinguishing it from the 13 sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly advises use only when dedicated tools do not cover the command, but does not explicitly state when not to use it or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv0.1.0
    • First observedcreate_snapshot
    • First observeddelete_snapshot
    • First observedfind_vms
    • First observedlist_running_vms
    • First observedlist_snapshots
    • First observedpause_vm
    • First observedreset_vm
    • First observedrevert_to_snapshot
    • First observedserver_info
    • First observedstart_vm
    • First observedstop_vm
    • First observedsuspend_vm
    • First observedunpause_vm
    • First observedvmrun

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes, but 'pause_vm' and 'suspend_vm' may be confused as both relate to stopping a VM; descriptions help but overlap remains.

Naming Consistency4/5

Tools follow a consistent verb_noun pattern with underscores, except 'vmrun' which breaks convention. Overall pattern is clear and predictable.

Tool Count5/5

14 tools cover the core VM operations and snapshot management without being excessive. Each tool addresses a specific need, and the escape hatch 'vmrun' fills any gaps.

Completeness4/5

The set covers common VM lifecycle and snapshot operations well, but lacks explicit VM creation or deletion tools. The escape hatch partially compensates, but minor gaps exist.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP server for controlling VMware Fusion/Workstation virtual machines via vmrun CLI, providing 32 tools for VM lifecycle, guest execution, and file operations without requiring a REST API daemon.
    32
    25
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables managing VMware Workstation Pro VMs via MCP tools, including power operations, snapshots, guest processes, and network configuration through the vmrest, vmrun, and vmcli interfaces.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that gives an LLM full control over a VMware-hosted Windows VM: lifecycle, snapshots, remote execution, file transfer, and kernel debugging.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vnoiram/vmware-workstation-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server