windows98-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WIN98_MCP_CONFIG | No | Path to a specific broker config file (.win98-mcp/config.json) | |
| WIN98_MCP_GUEST_IP | Yes | The expected IPv4 address of the Windows 98 guest (required for connection) | |
| WIN98_MCP_BIND_HOST | No | Override the host-only listener address | |
| WIN98_MCP_STATE_DIR | No | Override logs/artifacts state directory | |
| WIN98_MCP_GUEST_PORT | No | Override TCP port (default 9898) | |
| WIN98_MCP_HOST_ROOTS | No | Add an allowed host transfer root (repeatable, provide as single path) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| qemu_doctorA | Check the local QEMU host, configured binary, managed VM root, accelerator policy, and stable guest-to-host TCP route. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_listA | List broker-managed QEMU VMs and their lifecycle state. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_selectA | Record the managed QEMU VM selected in this MCP/Admin session's QEMU panel. In-guest MCP control remains the agent's outbound TCP connection. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_unselectA | Clear this session's managed QEMU VM selection. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_statusA | Read one managed QEMU VM's process, QMP, and guest TCP transport state. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_command_previewA | Preview the exact managed QEMU command without changing VM state. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_createA | Import a broker-local disk into a new managed qcow2 QEMU VM. disk_path currently belongs to the broker host; remote-media upload is not available yet. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_updateA | Update a stopped managed QEMU VM definition, including accelerator policy and any profile component. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_startA | Start a managed QEMU VM with QMP and the profile's guest TCP network. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_shutdownA | Request graceful guest shutdown, wait 40 seconds, then stop only this QEMU process if needed. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_restartA | Gracefully stop then restart a managed QEMU VM. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_force_stopA | Immediately stop a managed QEMU VM when graceful shutdown is not possible. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_deleteA | Move a managed QEMU VM to recoverable broker trash; only the newest three entries are retained. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_trash_listA | List recoverable deleted managed VMs. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_restoreA | Restore a managed VM from broker trash. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_trash_emptyA | Permanently delete every retained QEMU trash entry. VM remains locked by this session; call vm_unlock when finished. |
| qemu_vm_metricsA | Read managed QEMU process and QMP metrics. VM remains locked by this session; call vm_unlock when finished. |
| qemu_media_pushA | Copy a broker-local .iso image into this VM's managed media directory. source_path is resolved on the broker host; remote media upload is not available yet. VM remains locked by this session; call vm_unlock when finished. |
| qemu_media_listA | List ISO images stored in this managed VM's media directory and report which ISO is configured as mounted. VM remains locked by this session; call vm_unlock when finished. |
| qemu_media_mountA | Mount a managed ISO now when the VM is running and persist it for future starts. VM remains locked by this session; call vm_unlock when finished. |
| qemu_media_ejectA | Eject the managed CD-ROM now when running and persist an empty drive for future starts. VM remains locked by this session; call vm_unlock when finished. |
| qemu_media_deleteA | Delete an unmounted managed ISO. force=true ejects it first when it is mounted. VM remains locked by this session; call vm_unlock when finished. |
| qemu_media_set_bootA | Set persistent QEMU boot order to disk, cdrom, or network. The VM must be stopped. VM remains locked by this session; call vm_unlock when finished. |
| qemu_snapshot_listA | List stopped-VM qcow2 internal snapshots. VM remains locked by this session; call vm_unlock when finished. |
| qemu_snapshot_createA | Create a named qcow2 internal disk snapshot while the VM is stopped. VM remains locked by this session; call vm_unlock when finished. |
| qemu_snapshot_restoreA | Restore a named qcow2 internal disk snapshot while the VM is stopped. VM remains locked by this session; call vm_unlock when finished. |
| qemu_snapshot_deleteA | Delete a named qcow2 internal disk snapshot while the VM is stopped. VM remains locked by this session; call vm_unlock when finished. |
| qemu_screen_captureA | Capture the QEMU framebuffer before the Windows controller has started. VM remains locked by this session; call vm_unlock when finished. |
| qemu_keyboard_keyA | Send a QMP qcode key event before or after guest-agent startup. VM remains locked by this session; call vm_unlock when finished. |
| qemu_keyboard_typeA | Type basic QEMU monitor-compatible text into the active QEMU display. VM remains locked by this session; call vm_unlock when finished. |
| qemu_mouse_moveA | Send absolute QMP mouse coordinates to a running QEMU VM. VM remains locked by this session; call vm_unlock when finished. |
| qemu_mouse_clickA | Move then click through QMP before the Windows controller is available. VM remains locked by this session; call vm_unlock when finished. |
| qemu_qmp_executeA | Run an advanced QMP command against a managed VM's local broker-owned QMP endpoint. VM remains locked by this session; call vm_unlock when finished. |
| qemu_hmp_commandA | Run an advanced HMP command through QMP human-monitor-command. VM remains locked by this session; call vm_unlock when finished. |
| vm_statusA | Inspect guest connection and lease state without acquiring the VM lease. |
| vm_capabilitiesA | Read the connected Windows 98 guest capabilities without acquiring the VM lease. |
| vm_lockA | Explicitly acquire the exclusive VM lease. Most operational tools acquire it automatically. VM remains locked by this session; call vm_unlock when finished. |
| vm_waitA | Wait in the FIFO lease queue for at most ten minutes. Use after VM_BUSY. VM remains locked by this session; call vm_unlock when finished. |
| vm_unlockA | Release this session's VM lease. Normal unlock refuses while terminals or transfers remain open. |
| show_messageA | Display a Windows 98 message dialog titled Windows 98 Remote Control. Acquires the VM lease. VM remains locked by this session; call vm_unlock when finished. |
| screen_captureA | Capture the primary display or a pixel region as native MCP PNG image content. Acquires the VM lease. VM remains locked by this session; call vm_unlock when finished. |
| mouse_moveA | Move the mouse to an exact zero-based physical pixel coordinate. VM remains locked by this session; call vm_unlock when finished. |
| mouse_clickA | Click at the supplied coordinates, or at the current pointer position when omitted. VM remains locked by this session; call vm_unlock when finished. |
| mouse_downA | Hold a mouse button down, optionally moving to coordinates first. Always release it later. VM remains locked by this session; call vm_unlock when finished. |
| mouse_upA | Release a held mouse button, optionally moving to coordinates first. VM remains locked by this session; call vm_unlock when finished. |
| mouse_dragA | Drag between exact pixel coordinates while holding the selected mouse button. VM remains locked by this session; call vm_unlock when finished. |
| mouse_scrollA | Send a mouse-wheel delta at optional coordinates. Requires guest wheel support. VM remains locked by this session; call vm_unlock when finished. |
| mouse_positionA | Read the current mouse pointer position. VM remains locked by this session; call vm_unlock when finished. |
| mouse_release_allA | Release every mouse button tracked as held by this session. VM remains locked by this session; call vm_unlock when finished. |
| keyboard_typeA | Type text with the active Windows 98 keyboard layout; fails rather than substituting unrepresentable characters. VM remains locked by this session; call vm_unlock when finished. |
| keyboard_keyA | Press, hold, or release a named key such as ENTER, CTRL, LEFT, or F1. VM remains locked by this session; call vm_unlock when finished. |
| keyboard_hotkeyA | Press named keys in order and release them in reverse order. VM remains locked by this session; call vm_unlock when finished. |
| keyboard_keycodeA | Send a low-level Win32 virtual-key or scan-code input event. VM remains locked by this session; call vm_unlock when finished. |
| keyboard_release_allA | Release every keyboard key tracked as held by this session. VM remains locked by this session; call vm_unlock when finished. |
| input_batchA | Execute a validated mouse, keyboard, delay, clipboard, and focus sequence in one guest round trip. VM remains locked by this session; call vm_unlock when finished. |
| clipboard_getA | Read text from the Windows 98 clipboard. VM remains locked by this session; call vm_unlock when finished. |
| clipboard_setA | Replace Windows 98 clipboard text. VM remains locked by this session; call vm_unlock when finished. |
| window_listA | List windows with handle, title, class, process, visibility, enabled state, and screen rectangle. VM remains locked by this session; call vm_unlock when finished. |
| window_focusA | Bring a window returned by window_list to the foreground. VM remains locked by this session; call vm_unlock when finished. |
| window_closeA | Request that a selected window close. VM remains locked by this session; call vm_unlock when finished. |
| window_captureA | Capture a selected window as native MCP PNG image content. VM remains locked by this session; call vm_unlock when finished. |
| shell_execA | Run a command to completion with captured ordered stdout+stderr output; error results may include a screenshot. VM remains locked by this session; call vm_unlock when finished. |
| shell_startA | Start an interactive redirected-pipe shell session and return its session ID. VM remains locked by this session; call vm_unlock when finished. |
| shell_readA | Read bounded output after a cursor from an interactive shell, optionally long-polling. VM remains locked by this session; call vm_unlock when finished. |
| shell_writeA | Write UTF-8 text or base64 bytes to an interactive shell and optionally close stdin. VM remains locked by this session; call vm_unlock when finished. |
| shell_terminateA | Terminate a running interactive shell session. VM remains locked by this session; call vm_unlock when finished. |
| shell_closeA | Release broker resources for a completed interactive shell session. VM remains locked by this session; call vm_unlock when finished. |
| process_listA | List Windows 98 processes. VM remains locked by this session; call vm_unlock when finished. |
| process_waitA | Wait for a process to exit for a bounded period. VM remains locked by this session; call vm_unlock when finished. |
| process_killA | Terminate a process and, by default, its discovered child tree. VM remains locked by this session; call vm_unlock when finished. |
| fs_drivesA | List available Windows drive roots for filesystem browsing. VM remains locked by this session; call vm_unlock when finished. |
| fs_statA | Read metadata for a guest filesystem path. VM remains locked by this session; call vm_unlock when finished. |
| fs_listA | List a guest directory, optionally recursively. VM remains locked by this session; call vm_unlock when finished. |
| fs_mkdirA | Create a guest directory. VM remains locked by this session; call vm_unlock when finished. |
| fs_moveA | Move or rename a guest file or directory. VM remains locked by this session; call vm_unlock when finished. |
| fs_deleteA | Delete a guest file or directory. VM remains locked by this session; call vm_unlock when finished. |
| file_pushA | Copy a host file into the guest through a verified temporary-file commit. VM remains locked by this session; call vm_unlock when finished. |
| file_pullA | Copy a guest file to an allowed host path through a verified temporary-file commit. VM remains locked by this session; call vm_unlock when finished. |
| directory_pushA | Merge-copy a host directory into the guest without deleting unrelated guest files. VM remains locked by this session; call vm_unlock when finished. |
| directory_pullA | Merge-copy a guest directory to an allowed host path without deleting unrelated host files. VM remains locked by this session; call vm_unlock when finished. |
| system_infoA | Read detailed guest operating-system, code-page, display, and build information. VM remains locked by this session; call vm_unlock when finished. |
| agent_diagnosticsA | Read the guest crash context and supervisor recovery status without acquiring the VM lease. |
| system_rebootA | Reboot Windows 98. This disconnects the guest and requires configured autostart for recovery. VM remains locked by this session; call vm_unlock when finished. |
| system_shutdownA | Shut down Windows 98. The guest cannot reconnect until the VM is started externally. VM remains locked by this session; call vm_unlock when finished. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/ido-pluto/windows98-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server