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, discover setup recipes.
Contents
Overview
The packages published from this repo are a verbatim proxy of the public MCP endpoint at https://vm.massedcompute.com/api/mcp — zero added surface. Every JSON-RPC message (initialize, tools/list, tools/call, resources/list, resources/read, ping, …) is forwarded unchanged with your stored API key injected as a Bearer header, and responses come back unchanged. Nothing is added, renamed, filtered, or rewritten on the way through:
- The hosted endpoint owns the catalog. Tools, resources, schemas, and descriptions come from the live endpoint — the local package never goes stale when new capabilities (like setup recipes) ship upstream.
- The hosted endpoint owns security. Key-scope enforcement (read-only keys hide destructive tools) and credential redaction happen server-side, identically for every client.
- What the local package adds is exactly what a stdio client needs: a stdio↔streamable-HTTP bridge, OS-conventional storage for your API key (
0600on POSIX), and one-shot client wiring viainit.
Issue a read-only key for analysis-only assistants and the endpoint rejects destructive tool calls (launch, restart, terminate, SSH-key changes) at call time. Works with Claude Code, Claude Desktop, Cursor, and Codex. Run massed-compute-mcp tools to print the live catalog — GPU inventory, VM images, instance lifecycle, coupons, billing, SSH keys, and setup recipes.
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
The local packages proxy this endpoint verbatim, so pointing your client straight at it gives you the identical catalog with 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
| Command | What it does |
|---|---|
massed-compute-mcp (no args) |
Run the MCP server over stdio |
massed-compute-mcp init |
First-run setup: prompt, validate, store, wire clients |
massed-compute-mcp doctor |
Verify 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 show |
Print resolved config path, masked key, resolution chain |
massed-compute-mcp logout |
Delete the stored API key |
massed-compute-mcp tools [--json] |
Fetch and print the live tool catalog from the hosted endpoint |
massed-compute-mcp version |
Print the version |
Key resolution
When the server starts, the API key is taken from the first source that provides one:
--token <value>CLI flag--token-file <path>CLI flag (first line, trimmed)MASSED_COMPUTE_API_KEYenvironment variable- 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
- Full MCP documentation
- Massed Compute API reference
- Massed Compute console
- Model Context Protocol spec
License
MIT — see LICENSE.
Metadata
Release files for massed-compute-mcp 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| massed_compute_mcp-1.1.0.tar.gz | 25.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| massed_compute_mcp-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.7 kB
Release files / massed_compute_mcp-1.1.0.tar.gz
| Download URL | massed_compute_mcp-1.1.0.tar.gz |
|---|---|
| Size | 25.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b179b4cc477aeb394c116ba8f0995af4bd226ea688598f58a518ab7ce84818a
|
|
BLAKE2b-256 checksum How to use checksums |
19513ec1c18acf82f18da6bc131eb622b5dd5343ed89ec58f6572896de3d393e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logRelease files / massed_compute_mcp-1.1.0-py3-none-any.whl
| Download URL | massed_compute_mcp-1.1.0-py3-none-any.whl |
|---|---|
| Size | 29.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b8092362b7ee392173bc7e0129e3bc916c918474de7523b06f0a6ef12f6c380b
|
|
BLAKE2b-256 checksum How to use checksums |
69f1059568ab4cffb54e2a0090fdc16b2d841a91d7d617e6e22d09b421a46075
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logSecurity for massed-compute-mcp 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for massed_compute_mcp-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.