mcp-server-qnap-qvs
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | SSE listen address (default: 0.0.0.0) | 0.0.0.0 |
| MCP_PORT | No | SSE listen port (default: 8445) | 8445 |
| QNAP_HOST | Yes | NAS hostname or IP address | |
| QNAP_PORT | No | HTTPS port (default: 443) | 443 |
| MCP_TRANSPORT | No | Transport mode: stdio or sse (default: stdio) | stdio |
| QNAP_PASSWORD | Yes | QTS admin password | |
| QNAP_USERNAME | Yes | QTS admin username | |
| MCP_AUTH_TOKEN | No | Bearer token for SSE auth (auto-generated if not set) | |
| QNAP_VERIFY_SSL | No | Verify TLS certificate (default: false) | false |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_vmsA | List all virtual machines on the QNAP NAS with their status. Returns VM names, IDs, states (running/stopped/suspended), and basic resource info. |
| get_vmB | Get detailed information about a specific virtual machine. Args: vm_id: The VM identifier (numeric ID from list_vms) |
| get_vm_statesA | Get a lightweight status overview of all VMs. Faster than list_vms — returns only VM IDs and their current state (running, stopped, suspended, etc.). |
| get_vm_ipsB | Get the IP addresses assigned to a virtual machine. Requires the QEMU guest agent to be installed and running inside the VM. Install it with: sudo apt install qemu-guest-agent && sudo systemctl enable --now qemu-guest-agent Args: vm_id: The VM identifier |
| install_guest_agent_sshA | DESTRUCTIVE: Install QEMU guest agent on a VM via direct SSH. This SSHes into the VM and installs the qemu-guest-agent package. The VM must be running and accessible via SSH from the machine running this MCP server. WARNING: The SSH password is passed as a tool argument and will be visible in MCP client logs. Use SSH key auth for the VM if this is a concern. Requires 'sshpass' to be installed on the machine running this server. Args: vm_ip: IP address of the VM (check your DHCP server or NAS if unknown) ssh_username: SSH username for the VM ssh_password: SSH password for the VM os_family: 'debian' (apt) or 'redhat' (yum). Default: debian confirm: Must be true to execute. Returns a preview otherwise. |
| install_guest_agent_virshA | DESTRUCTIVE: Install QEMU guest agent on a VM via QNAP virsh console. This SSHes into the QNAP NAS, then uses virsh to send commands to the VM's serial console. Does NOT require knowing the VM's IP address. The VM must be running. WARNING: Requires SSH credentials for the QNAP NAS (not the VM). The password will be visible in MCP client logs. This method is less reliable than direct SSH — it sends keystrokes to the VM console and cannot easily verify success. Use install_guest_agent_ssh if the VM is SSH-accessible. If qnap_ssh_username/password are not provided, falls back to QNAP_USERNAME and QNAP_PASSWORD from the server config. Args: vm_id: The VM identifier qnap_ssh_username: SSH username for the QNAP NAS (default: QNAP_USERNAME) qnap_ssh_password: SSH password for the QNAP NAS (default: QNAP_PASSWORD) os_family: 'debian' (apt) or 'redhat' (yum). Default: debian confirm: Must be true to execute. Returns a preview otherwise. |
| list_vm_disksC | List all disks attached to a virtual machine. Args: vm_id: The VM identifier |
| get_vm_adaptersA | Get network adapters for a virtual machine. Returns MAC addresses, bridge assignments, NIC model (virtio/e1000), and queue config. Args: vm_id: The VM identifier |
| get_vm_graphicsA | Get graphics/VNC console info for a virtual machine. Returns VNC port, type, and whether password protection is enabled. Args: vm_id: The VM identifier |
| get_vm_cdromsB | Get CD-ROM drives and mounted ISOs for a virtual machine. Args: vm_id: The VM identifier |
| get_vm_usbsB | Get USB passthrough devices attached to a virtual machine. Args: vm_id: The VM identifier |
| list_imagesA | List ISO images available on the QNAP NAS for mounting to VMs. |
| check_isoA | Scan a shared folder for available ISO files. Returns a list of ISO files found at the specified path. Common paths: 'shared://ISO/', 'shared://VMs/', 'shared://Public/'. Args: path: Shared folder path to scan for ISOs (default: shared://ISO/) |
| download_isoA | DESTRUCTIVE: Download an ISO file from a URL to the NAS. Downloads the ISO directly to the NAS storage via SSH. The ISO can then be mounted to a VM using mount_iso with path 'shared://ISO/'. Requires SSH access to the QNAP NAS (configured via QNAP_HOST). Args: url: URL to download the ISO from (e.g. https://releases.ubuntu.com/...) destination: NAS directory path (default: /share/ISO/) filename: Override filename (default: derived from URL) confirm: Must be true to execute. Returns a preview otherwise. |
| import_vm_fileA | DESTRUCTIVE: Import a virtual machine from an OVA/OVF file on the NAS. The file must already be on a NAS shared folder. Use the QVS shared path format: 'shared://VMs/myvm.ova' or 'shared://Public/exported-vm.ovf'. Args: path: Path to the OVA/OVF file on the NAS (shared:// format) name: Optional name for the imported VM confirm: Must be true to execute. Returns a preview otherwise. |
| get_qvs_logsA | Get Virtualization Station event and audit logs. Shows VM starts, stops, resets, config changes, login events, errors, etc. Args: limit: Number of log entries to return (default 50) page: Page number for pagination (default 1) |
| clone_vmA | DESTRUCTIVE: Clone a virtual machine. Creates a full copy of the VM with a new name. The source VM should ideally be stopped for a consistent clone. Args: vm_id: The source VM identifier name: Name for the cloned VM confirm: Must be true to execute. Returns a preview otherwise. |
| export_vmA | DESTRUCTIVE: Export a virtual machine to a path on the NAS. Exports the VM disk images and configuration to the specified shared folder path. Args: vm_id: The VM identifier path: Destination path on the NAS (e.g. 'shared://VMs/exports/') confirm: Must be true to execute. Returns a preview otherwise. |
| create_vmA | DESTRUCTIVE: Create a new virtual machine. Creates a VM with the specified resources. Common os_type values: ubuntujammy, ubuntunoble, debian12, centos9, win11, win2022, generic. BIOS options: 'ovmf' (UEFI, recommended) or 'seabios' (legacy). Args: name: Name for the new VM cores: Number of vCPU cores (default 2) memory_mb: Memory in MB (default 2048) disk_size_gb: Disk size in GB (default 20) os_type: Guest OS type (default ubuntujammy) bios: BIOS type — 'ovmf' (UEFI) or 'seabios' (legacy). Default ovmf. auto_start: Auto-start policy — 'on', 'off', or 'last'. Default off. confirm: Must be true to execute. Returns a preview otherwise. |
| update_vmA | DESTRUCTIVE: Update virtual machine settings. The VM should be stopped before changing CPU or memory. Only non-empty/non-zero fields are applied — omit fields you don't want to change. Args: vm_id: The VM identifier name: New VM name (leave empty to keep current) cores: Number of vCPU cores (0 to keep current) memory_mb: Memory in MB (0 to keep current) description: New description (leave empty to keep current) auto_start: Auto-start policy: 'on', 'off', or 'last' (leave empty to keep current) auto_start_delay: Auto-start delay in seconds (-1 to keep current) confirm: Must be true to execute. Returns a preview otherwise. |
| delete_vmA | DESTRUCTIVE: Permanently delete a virtual machine and its disk images. This cannot be undone. The VM must be stopped first. Args: vm_id: The VM identifier confirm: Must be true to execute. Returns a preview otherwise. |
| resize_diskA | DESTRUCTIVE: Resize a virtual disk (expand only). The VM should be stopped. Disks can only be expanded, not shrunk. Args: vm_id: The VM identifier disk_id: The disk identifier (from list_vm_disks) size_gb: New disk size in GB confirm: Must be true to execute. Returns a preview otherwise. |
| delete_diskA | DESTRUCTIVE: Remove and delete a disk from a virtual machine. This permanently deletes the disk image. The VM must be stopped. Args: vm_id: The VM identifier disk_id: The disk identifier confirm: Must be true to execute. Returns a preview otherwise. |
| mount_isoA | DESTRUCTIVE: Mount an ISO image to a VM's CD-ROM drive. Args: vm_id: The VM identifier cdrom_id: The CD-ROM drive identifier (from get_vm_cdroms) image_path: Path to ISO on NAS (e.g. 'shared://ISOs/ubuntu.iso') confirm: Must be true to execute. Returns a preview otherwise. |
| unmount_isoA | DESTRUCTIVE: Unmount/eject an ISO from a VM's CD-ROM drive. Args: vm_id: The VM identifier cdrom_id: The CD-ROM drive identifier confirm: Must be true to execute. Returns a preview otherwise. |
| get_overviewA | Get a summary dashboard of all VMs and resource usage. Returns: VM count, running/stopped breakdown, total vCPUs, memory, disk provisioned vs actual usage, per-VM summary with networking (adapters, MACs, IPs for running VMs). |
| get_stopping_progressA | Get the shutdown progress for all VMs. Useful during bulk shutdown operations to monitor which VMs are still stopping. |
| start_vmA | Start a stopped or suspended virtual machine. Args: vm_id: The VM identifier |
| shutdown_vmA | DESTRUCTIVE: Gracefully shut down a running virtual machine. Sends an ACPI shutdown signal to the guest OS. The VM must have guest tools or ACPI support for this to work. Use force_shutdown_vm if the guest is unresponsive. Args: vm_id: The VM identifier confirm: Must be true to execute. Returns a preview otherwise. |
| force_shutdown_vmA | DESTRUCTIVE: Immediately force-stop a virtual machine. Equivalent to pulling the power cord. May cause data loss or filesystem corruption in the guest. Use shutdown_vm for graceful shutdown first. Args: vm_id: The VM identifier confirm: Must be true to execute. Returns a preview otherwise. |
| reset_vmA | DESTRUCTIVE: Reset (hard restart) a virtual machine. Equivalent to pressing the reset button. The VM is immediately restarted without graceful shutdown. May cause data loss. Args: vm_id: The VM identifier confirm: Must be true to execute. Returns a preview otherwise. |
| suspend_vmA | Suspend a running virtual machine to memory. The VM state is saved and can be resumed later with resume_vm. Args: vm_id: The VM identifier |
| resume_vmA | Resume a suspended virtual machine. Args: vm_id: The VM identifier |
| list_snapshotsA | List all snapshots for a virtual machine. Args: vm_id: The VM identifier |
| create_snapshotA | DESTRUCTIVE: Create a snapshot of a virtual machine. Captures the current state of the VM including memory (if running) and disks. Args: vm_id: The VM identifier name: Optional name for the snapshot confirm: Must be true to execute. Returns a preview otherwise. |
| revert_snapshotA | DESTRUCTIVE: Revert a virtual machine to a previous snapshot. All changes since the snapshot was taken will be lost. The VM should be stopped before reverting. Args: vm_id: The VM identifier snapshot_id: The snapshot identifier confirm: Must be true to execute. Returns a preview otherwise. |
| delete_snapshotA | DESTRUCTIVE: Delete a snapshot permanently. This cannot be undone. Args: vm_id: The VM identifier snapshot_id: The snapshot identifier confirm: Must be true to execute. Returns a preview otherwise. |
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/arnstarn/mcp-server-qnap-qvs'
If you have feedback or need assistance with the MCP directory API, please join our Discord server