Massed Compute MCP Server

Browse GPU inventory, launch and manage VMs, and audit billing on Massed Compute from any AI agent.

Documentation

Massed Compute MCP Server

A Model Context Protocol server that lets AI assistants — Claude, Cursor, Codex, ChatGPT, and other MCP-compatible clients — interact with your Massed Compute account: browse GPU inventory, launch and manage VMs, audit billing.

Contents

Overview

The server exposes 14 tools that map 1:1 to documented /api/v1/* endpoints — no internal services, no undocumented calls. Issue a read-only key for analysis-only assistants and destructive tools (launch, restart, terminate, SSH-key changes) are hidden from the catalog entirely. Works with Claude Code, Claude Desktop, Cursor, and Codex.

ToolRequired keyReturns
gpu_inventory_listread-onlyGPU configurations, pricing, regional capacity
images_listread-onlyVM image catalog
instances_listread-onlyYour running VM instances
instances_getread-onlyA single instance by UUID
instances_launchfullNewly-launched instance details (incurs cost)
instances_restartfullRestart confirmation
instances_terminatefullTermination confirmation (destructive)
coupon_informationread-onlyCoupon discount terms
coupon_accepted_productsread-onlyProducts a coupon applies to
account_token_validationread-onlyToken validity status
account_billingread-onlyBilling settings, recharge configuration
ssh_keys_listread-onlyYour SSH keys
ssh_keys_createfullNewly-created key details
ssh_keys_deletefullDeletion confirmation (destructive)

Beyond raw tools, Massed Compute publishes Agent Skills — markdown workflow templates for common operations like GPU selection and cost auditing. Full docs at vm-docs.massedcompute.com/docs/category/mcp.

Installation

Step 1. Get your API key

Open vm.massedcompute.com/settings/api, create a key (read-only for analysis-only assistants; full-access to allow launch / restart / terminate / SSH-key changes), copy it.

Step 2. Pick an install path

  • Hosted endpoint — point your client at the streamable-HTTP URL, zero install
  • Local CLI — runs on your machine, key stored in your OS config dir

Hosted endpoint

Same 14 tools, same API key, nothing to install. Pick the snippet for your client:

Claude Code

claude mcp add --transport http massed-compute \
  https://vm.massedcompute.com/api/mcp \
  --header "Authorization: Bearer MC_TOKEN"

Cursor~/.cursor/mcp.json

{
  "mcpServers": {
    "massed-compute": {
      "url": "https://vm.massedcompute.com/api/mcp",
      "headers": { "Authorization": "Bearer MC_TOKEN" }
    }
  }
}

Codex~/.codex/config.toml

[mcp_servers.massed-compute]
url = "https://vm.massedcompute.com/api/mcp"
bearer_token_env_var = "MC_TOKEN"
enabled = true

Claude Desktop

Claude Desktop does not yet speak streamable-HTTP MCP, so use mcp-remote as a stdio↔HTTP bridge. Config at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "massed-compute": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://vm.massedcompute.com/api/mcp",
        "--header", "Authorization: Bearer MC_TOKEN"
      ]
    }
  }
}

Local CLI

Install via whichever ecosystem you prefer:

npm install -g massed-compute-mcp     # Node >= 20
# or
pip install massed-compute-mcp        # Python >= 3.10
# or
uv tool install massed-compute-mcp    # fast Python install via uv

Run one-shot setup:

massed-compute-mcp init

init prompts for the key, validates it upstream, stores it at 0600 (POSIX), detects installed MCP clients (Claude Code, Cursor, Claude Desktop, Codex), and offers to wire each one. A timestamped backup is taken before any client edit. Restart wired clients to pick up the tools.

Config file location:

  • Linux: $XDG_CONFIG_HOME/massed-compute/config.json (falls back to ~/.config/...)
  • macOS: ~/Library/Application Support/massed-compute/config.json
  • Windows: %APPDATA%\massed-compute\config.json

Non-interactive (CI / scripts):

# Key from env, auto-wire every detected client
MASSED_COMPUTE_API_KEY=<your-key> massed-compute-mcp init --yes

# Key from a file, wire only specific clients
massed-compute-mcp init --token-file ~/keys/mc --yes --clients claude-code,cursor

# Store the key only; don't touch any client config
massed-compute-mcp init --yes --no-install-clients

Add or remove a client later:

massed-compute-mcp install-client cursor       # claude-desktop | codex | claude-code
massed-compute-mcp uninstall-client cursor

install-client is idempotent — re-running when the entry already matches is a silent no-op.

Verifying the connection

massed-compute-mcp doctor

doctor confirms the stored key still works, prints the tool catalog, and shows copy-pasteable snippets for any clients you didn't auto-wire. Or just ask your assistant "Validate my Massed Compute API key." — a { message: "Valid Token" } response confirms the wiring.

CLI reference

CommandWhat it does
massed-compute-mcp (no args)Run the MCP server over stdio
massed-compute-mcp initFirst-run setup: prompt, validate, store, wire clients
massed-compute-mcp doctorVerify the stored key and print client snippets
massed-compute-mcp install-client <id>Wire a single client (claude-code, cursor, claude-desktop, codex)
massed-compute-mcp uninstall-client <id>Remove our entry from a client config
massed-compute-mcp config showPrint resolved config path, masked key, resolution chain
massed-compute-mcp logoutDelete the stored API key
massed-compute-mcp tools [--json]Print the tool catalog (no upstream call)
massed-compute-mcp versionPrint the version

Key resolution

When the server starts, the API key is taken from the first source that provides one:

  1. --token <value> CLI flag
  2. --token-file <path> CLI flag (first line, trimmed)
  3. MASSED_COMPUTE_API_KEY environment variable
  4. Stored config file written by init

If none of those are set, the server exits non-zero with a pointer to massed-compute-mcp init. Override the upstream with MASSED_COMPUTE_API_BASE_URL (default https://vm.massedcompute.com).

Resources

License

MIT — see LICENSE.