multipass-mcp
Click on "Deploy 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., "@multipass-mcp launch a new Ubuntu instance with 2GB RAM"
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.
Multipass MCP Server
A Model Context Protocol (MCP) server to manage Multipass instances.
Usage
Claude
claude mcp add --transport stdio multipass -- uvx multipass-mcpOr add the following to your Claude configuration:
{
"mcpServers": {
"multipass": {
"command": "uvx",
"args": ["multipass-mcp"]
}
}
}Gemini
gemini mcp add --transport stdio multipass uvx multipass-mcpCodex
codex mcp add multipass -- uvx multipass-mcpRelated MCP server: incus-mcp
Available Tools
The server currently provides comprehensive support for all core Multipass CLI commands, categorized as follows:
Instance Management
list_instances: List all instances with their current state and IP addresses.launch_instance: Create a new instance with optional CPU, memory, and disk specs.start_instance: Start a stopped instance.stop_instance: Stop a running instance.restart_instance: Restart running instances.suspend_instance: Suspend a running instance (saves state to disk).resume_instance: Resume a suspended instance.delete_instance: Delete an instance (with optional immediate purge).purge_instances: Cleanup all deleted instances permanently.recover_instance: Recover previously deleted instances.clone_instance: Create an exact copy of an existing instance.execute_command: Run shell commands inside an instance.get_instance_info: Get detailed specifications and resource usage (CPU, Memory, Disk).
Snapshots
list_snapshots: List all available snapshots across instances.get_snapshot_info: Get detailed information about a specific snapshot.snapshot_instance: Take a new snapshot of an instance.restore_instance: Restore an instance from a previously taken snapshot.
Storage & Files
mount_directory: Mount a local host directory inside an instance.umount_directory: Unmount a previously mounted directory.transfer_file: Transfer files or directories between the host and instances.
Aliases
create_alias: Create an alias to run a specific command on an instance directly from the host.list_aliases: List all configured aliases in the current context.remove_alias: Remove one or more existing aliases.switch_alias_context: Switch to or create a new alias context.
System, Network & Config
find_images: Find available images for launching new instances.list_networks: List host network devices available for instance bridging.get_config: Get global Multipass configuration settings.set_config: Set global Multipass configuration settings.get_version: Display version information for the Multipass client and daemon.authenticate: Authenticate with the Multipass service using a passphrase.
Available Tools
30 toolsauthenticateC
Authenticate with the Multipass service.
Args: passphrase: Passphrase provided by a system administrator.
Inputs: passphrase (required). Returns: result
clone_instanceB
Clone an existing Multipass instance.
Args: source: The name of the source Multipass instance to be cloned. name: An optional custom name for the cloned instance.
Inputs: source (required), name. Returns: result
create_aliasA
Create a Multipass alias to be executed on a given Multipass instance.
Args: instance: Name of the Multipass instance. command: Command to execute. alias_name: Optional name for the alias. Defaults to command name. map_working_directory: If True, automatically map host execution path to mounted path.
Inputs: instance (required), command (required), alias_name, map_working_directory. Returns: result
delete_instanceA
Delete a Multipass instance.
Args: name: Name of the instance to delete. purge: If True, immediately purge the instance (cannot be recovered).
Inputs: name (required), purge. Returns: result
execute_commandB
Execute a shell command inside a Multipass instance.
Args: name: Name of the instance. command: The command to run (e.g., 'ls -la', 'uname -a').
Inputs: name (required), command (required). Returns: result
find_imagesB
Find available Multipass images for launching new instances.
Inputs: no named parameters. Returns: result
get_configA
Get Multipass configuration settings.
Args: key: The configuration key to retrieve (e.g., 'local.driver'). If omitted, lists all available keys.
Inputs: key.
get_instance_infoB
Get detailed information about a Multipass instance (CPU, Memory, Disk usage).
Inputs: name (required). Returns: name, state, ipv4, release, +5 more
get_snapshot_infoC
Get detailed information about a Multipass snapshot.
Args: instance: Name of the instance. snapshot: Name of the snapshot.
Inputs: instance (required), snapshot (required). Returns: instance, name, comment, cpu_count, +6 more
get_versionA
Get Multipass version information for the client and daemon.
Inputs: no named parameters. Returns: multipass, multipassd
launch_instanceA
Launch a new Multipass instance.
Args: name: Optional name for the instance. image: Image to use (e.g., '22.04', 'charm-dev', 'docker'). Defaults to latest Ubuntu LTS. cpus: Number of CPUs to allocate. memory: Amount of memory (e.g., '2G', '512M'). disk: Disk space (e.g., '10G', '40G').
Inputs: name, image, cpus, memory, +1 more. Returns: result
list_aliasesB
List available Multipass aliases.
Inputs: no named parameters. Returns: result
list_instancesA
List all Multipass instances with their current state and IP addresses.
Inputs: no named parameters. Returns: result
list_networksA
List host network interfaces available for use with Multipass instances.
Inputs: no named parameters. Returns: result
list_snapshotsA
List all available Multipass snapshots.
Inputs: no named parameters. Returns: result
mount_directoryA
Mount a local directory inside a Multipass instance.
Args: source: Path of the local directory to mount. instance: Name of the Multipass instance. target: Optional target mount point inside the instance. uid_map: Optional list of UID mappings (host:instance). gid_map: Optional list of GID mappings (host:instance). mount_type: Type of mount ('classic' or 'native').
Inputs: source (required), instance (required), target, uid_map, +2 more. Returns: result
purge_instancesA
Purge all deleted Multipass instances to free up disk space.
Inputs: no named parameters. Returns: result
recover_instanceC
Recover deleted Multipass instances.
Args: name: Name of the Multipass instance to recover. all_instances: If True, recover all deleted instances.
Inputs: name, all_instances. Returns: result
remove_aliasA
Remove Multipass aliases.
Args: alias_names: Optional list of Multipass alias names to remove. all_aliases: If True, remove all aliases from current context.
Inputs: alias_names, all_aliases. Returns: result
restart_instanceA
Restart Multipass instances.
Args: name: Name of the instance to restart. If omitted and all_instances is False, 'primary' is assumed. all_instances: If True, restart all instances.
Inputs: name, all_instances. Returns: result
restore_instanceA
Restore a Multipass instance to a previously taken snapshot.
Args: instance: The name of the Multipass instance. snapshot: The name of the snapshot to restore. destructive: If True, discard the current state of the instance.
Inputs: instance (required), snapshot (required), destructive. Returns: result
resume_instanceC
Resume a suspended Multipass instance.
Inputs: name (required). Returns: result
set_configB
Set a Multipass configuration setting.
Args: key: The configuration key to set (e.g., 'local.driver'). value: The value to set for the key.
Inputs: key (required), value (required). Returns: result
snapshot_instanceA
Take a snapshot of a stopped Multipass instance.
Args: instance: The name of the Multipass instance. name: Optional name for the snapshot. comment: Optional comment for the snapshot.
Inputs: instance (required), name, comment. Returns: result
start_instanceC
Start a stopped Multipass instance.
Inputs: name (required). Returns: result
stop_instanceB
Stop a running Multipass instance.
Inputs: name (required). Returns: result
suspend_instanceB
Suspend a running Multipass instance, saving its state to disk.
Inputs: name (required). Returns: result
switch_alias_contextA
Switch the current Multipass alias context.
Args: context_name: Name of the Multipass alias context to switch to.
Inputs: context_name (required). Returns: result
transfer_fileA
Transfer files/directories between the host and Multipass instances.
Args: source: Source path (prefix with 'name:' for Multipass instance paths). destination: Destination path (prefix with 'name:' for Multipass instance paths). recursive: Recursively copy entire directories. parents: Make parent directories as needed.
Inputs: source (required), destination (required), recursive, parents. Returns: result
umount_directoryA
Unmount a directory from a Multipass instance.
Args: instance: Name of the Multipass instance. path: Optional specific mount point to unmount. If omitted, all mounts are removed.
Inputs: instance (required), path. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 30 tools
Most tools are clearly distinct (e.g., start/stop/suspend/resume, mount/umount), but potential confusion exists between recover_instance (deleted instances) and restore_instance (from snapshots), and between execute_command and create_alias for command execution. Descriptions help resolve ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case, with imperative verbs (launch, delete, get, set, list). The naming is predictable and uniform across the entire set.
With 30 tools, the server covers a wide range of Multipass operations (instance lifecycle, snapshots, mounts, aliases, file transfer, networking, config, auth). While slightly high, each tool addresses a distinct functionality and no tool seems redundant.
The surface has notable gaps: no tool to update instance configuration (CPU/memory/disk) after launch, no rename_instance, no delete_snapshot, no list_mounts, and no update for aliases. These missing operations limit agent workflows.
Maintenance
Related MCP Connectors
List Civo instances, Kubernetes clusters, networks and DNS; reboot instances, add rules.
Start, pause, resume, and run commands and file operations in Linux sandboxes.
Manage PocketBase Cloud projects, instances, deploys, domains, collections and records.
Create, list and destroy hourly-billed servers on Vultr, DigitalOcean, Hetzner and Linode.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables management of KVM/QEMU virtual machines on remote libvirt hosts via SSH, with tools for inspection, lifecycle management, snapshots, and cloning.2AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceMCP server for managing Incus containers and VMs via the incus CLI. Supports operations on remotes, instances, images, networks, storage, profiles, projects, and snapshots.-
- AlicenseNot gradedqualityDmaintenanceManages AutoDL GPU cloud instances, including lifecycle management, SSH operations, file transfer, and GPU monitoring.3MIT
- AlicenseAqualityBmaintenanceManage local/SSH/WinRM remote hosts via MCP, providing tools for exec, filesystem, screen, process, serial console, and configuration.7Apache 2.0