Skip to main content
Glama
multipass-mcp

multipass-mcp

by WangYihang

Multipass MCP Server

A Model Context Protocol (MCP) server to manage Multipass instances.

Usage

Claude

claude mcp add --transport stdio multipass -- uvx multipass-mcp

Or add the following to your Claude configuration:

{
  "mcpServers": {
    "multipass": {
      "command": "uvx",
      "args": ["multipass-mcp"]
    }
  }
}

Gemini

gemini mcp add --transport stdio multipass uvx multipass-mcp

Codex

codex mcp add multipass -- uvx multipass-mcp

Related 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 tools
authenticateC

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

    B3.3/5.0

    Scored across 30 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness2/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables management of KVM/QEMU virtual machines on remote libvirt hosts via SSH, with tools for inspection, lifecycle management, snapshots, and cloning.
      2
      AGPL 3.0
    • F
      license
      Not graded
      quality
      D
      maintenance
      MCP server for managing Incus containers and VMs via the incus CLI. Supports operations on remotes, instances, images, networks, storage, profiles, projects, and snapshots.
      -