VMware Workstation MCP
This MCP server lets you manage VMware Workstation virtual machines via vmrun, covering power operations, snapshots, guest OS interactions, file transfers, and configuration edits. It supports both WSL and Windows environments, and VM paths can be specified as WSL /mnt/c/... or Windows-style paths. Many tools accept a vmName (filename or displayName) instead of a full vmxPath.
VM Discovery & Info
server_info,find_vms,list_running_vms,get_vm_status,get_vm_details,list_vm_cache,refresh_vm_cache
Power Management
start_vm,start_vm_and_wait,stop_vm,suspend_vm,reset_vm,pause_vm,unpause_vm
Snapshot Management
list_snapshots,create_snapshot,revert_to_snapshot,delete_snapshot
VM Configuration
read_vmx_config,edit_vmx_config(display name, memory, CPU, guest OS, network)
Guest OS Interaction (requires VMware Tools)
get_guest_ip_address,check_guest_port,check_tools_stateguest_run_program,run_guest_program_with_snapshot,guest_list_processesguest_list_directory,guest_file_exists,guest_directory_existscopy_file_from_guest,copy_file_to_guest
Shared Folder Management
enable_shared_folders,disable_shared_folders,add_shared_folder,remove_shared_folder
Advanced / Diagnostic
capture_screen,diagnose_environmentvmrun— escape hatch to run arbitraryvmruncommands directly
⚠️ High-risk operations (e.g., reset, revert, delete snapshot) require an explicit
confirmfield. Read-only mode and action allow/deny lists are configurable via environment variables.
Provides tools to control VMware Workstation virtual machines via vmrun, including starting, stopping, suspending, resetting, pausing, snapshot management, and finding VMs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VMware Workstation MCPlist running VMs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
VMware Workstation MCP
English version: README.en.md
VMware Workstation を vmrun 経由で操作する stdio MCP サーバーです。
このリポジトリは WSL 上に置いて実行できます。VMware Workstation は Windows ホスト側にあり、サーバーは WSL から vmrun.exe を起動します。Windows 側の Node.js で直接実行することもできます。
セットアップ
npm installvmrun.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 startWindows から起動する例:
$env:VMRUN_PATH = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
npm startWindows 側で bridge だけ起動し、MCP サーバーは WSL 側で動かす例:
$env:VMRUN_BRIDGE_TOKEN = "change-me"
$env:VMRUN_PATH = "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe"
npm run bridgeexport VMRUN_BRIDGE_URL="http://127.0.0.1:57931/"
export VMRUN_BRIDGE_TOKEN="change-me"
npm startVMRUN_BRIDGE_HOST と VMRUN_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 で起動する場合は command と args を Windows パスにしてください。
VM 検出
find_vms は次の場所を既定で探します。
~/vmware~/VMs~/Documents/Virtual MachinesWSL の場合は
/mnt/c/Users/*/Documents/Virtual MachinesWSL の場合は
/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.jsonvmName 解決は 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:vmrunescape 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 toolscreate_snapshotCreate SnapshotB
Create a snapshot for a VMware VM.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snapshot name. | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 SnapshotBDestructive
Delete a VMware VM snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snapshot name. | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 VMsBRead-only
Find VMware .vmx files under configured or provided roots.
| Name | Required | Description | Default |
|---|---|---|---|
| roots | No | Directories to scan. Defaults to VMWARE_VMX_ROOTS or common VMware locations. | |
| maxDepth | No | Maximum directory depth to scan. |
TDQS
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.
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.
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.
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.
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.
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 VMsARead-only
List currently running VMware VMs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 SnapshotsARead-only
List snapshots for a VMware VM.
| Name | Required | Description | Default |
|---|---|---|---|
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. | |
| showTree | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 VMCDestructive
Reset a VMware VM.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | soft | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 SnapshotADestructive
Revert a VMware VM to a snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Snapshot name. | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 InfoARead-only
Show vmrun detection and VM search settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | gui | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 VMCDestructive
Stop a VMware VM.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | soft | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | soft | |
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vmxPath | Yes | Path to a .vmx file. WSL /mnt/c paths are accepted. |
TDQS
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.
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.
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.
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.
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.
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 vmrunADestructive
Run explicit vmrun arguments. Advanced escape hatch for commands not covered by dedicated tools.
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes | Arguments passed to vmrun, excluding the vmrun executable itself. | |
| timeoutMs | No |
TDQS
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.
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.
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.
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.
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.
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.
14 tool updates
v0.1.0- First observed
create_snapshot - First observed
delete_snapshot - First observed
find_vms - First observed
list_running_vms - First observed
list_snapshots - First observed
pause_vm - First observed
reset_vm - First observed
revert_to_snapshot - First observed
server_info - First observed
start_vm - First observed
stop_vm - First observed
suspend_vm - First observed
unpause_vm - First observed
vmrun
TDQS
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.
Tools follow a consistent verb_noun pattern with underscores, except 'vmrun' which breaks convention. Overall pattern is clear and predictable.
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.
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
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
MCP server for Superserve sandboxes: create, exec, and manage Firecracker microVMs
MCP server for the FFmpeg Micro video transcoding API — create, monitor, download transcodes.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA VMware ESXi/vCenter management server based on MCP (Machine Control Protocol), providing simple REST API interfaces for virtual machine management.64MIT
- AlicenseBqualityDmaintenanceMCP 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.32251MIT
- FlicenseNot gradedqualityCmaintenanceEnables managing VMware Workstation Pro VMs via MCP tools, including power operations, snapshots, guest processes, and network configuration through the vmrest, vmrun, and vmcli interfaces.-
- AlicenseNot gradedqualityBmaintenanceAn 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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