# Capsulate MCP server

> Launch and drive isolated Linux and Windows desktop VMs for AI agents to perform file operations, command execution, and computer use.

- Repository: https://github.com/capsulatedev/capsulate
- Page: https://hostedmcp.org/servers/capsulatedev/capsulate
- Transport: stdio
- Stars: 0
- License: MIT
- Latest version: 0.7.1

## Install

### Claude Code

```sh
claude mcp add --env CAPSULATE_API_KEY=<YOUR_CAPSULATE_API_KEY> capsulate -- npx -y @capsulate/mcp
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "capsulate": {
      "command": "npx",
      "args": [
        "-y",
        "@capsulate/mcp"
      ],
      "env": {
        "CAPSULATE_API_KEY": "<YOUR_CAPSULATE_API_KEY>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "capsulate": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@capsulate/mcp"
      ],
      "env": {
        "CAPSULATE_API_KEY": "<YOUR_CAPSULATE_API_KEY>"
      }
    }
  }
}
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "capsulate": {
      "command": "npx",
      "args": [
        "-y",
        "@capsulate/mcp"
      ],
      "env": {
        "CAPSULATE_API_KEY": "<YOUR_CAPSULATE_API_KEY>"
      }
    }
  }
}
```

### Codex (`~/.codex/config.toml`)

```toml
[mcp_servers.capsulate]
command = "npx"
args = ["-y", "@capsulate/mcp"]

[mcp_servers.capsulate.env]
CAPSULATE_API_KEY = "<YOUR_CAPSULATE_API_KEY>"
```

### Gemini CLI (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "capsulate": {
      "command": "npx",
      "args": [
        "-y",
        "@capsulate/mcp"
      ],
      "env": {
        "CAPSULATE_API_KEY": "<YOUR_CAPSULATE_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `CAPSULATE_API_KEY` | yes | yes | A cap_live_ API key from the dashboard (Settings → API & Keys). |
| `CAPSULATE_BASE_URL` | no | no | API base URL. Defaults to https://api.capsulate.dev. |
| `CAPSULATE_TEAM_ID` | no | no | Team to bill. Defaults to the API key's team. |

## Tools (28)

- `capsulate_launch`
- `capsulate_destroy`
- `capsulate_exec`
- `capsulate_run_code`
- `capsulate_set_env`
- `capsulate_snapshot`
- `capsulate_catalog`
- `capsulate_screenshot`
- `capsulate_screen_info`
- `capsulate_ui_tree`
- `capsulate_click_element`
- `capsulate_clipboard`
- `capsulate_element`
- `capsulate_windows`
- `capsulate_window`
- `capsulate_open`
- `capsulate_wait_for`
- `capsulate_ocr`
- `capsulate_run_actions`
- `capsulate_console_link`
- `capsulate_say`
- `capsulate_control`
- `capsulate_handoff`
- `capsulate_wait_for_handback`
- `capsulate_lesson`
- `capsulate_skills`
- `capsulate_skill_run`
- `capsulate_inbox`

## FAQ

### What operating systems can I run in a capsule?

You can launch real Linux and Windows desktops.

### Can a human interact with the AI while it is using a capsule?

Yes, a person can watch the live screen in a browser and take control of the desktop at any time.

### Can the AI handle tasks that require a login?

Yes, the AI can use the handoff tool to give control to a human when a login or manual intervention is needed.
