Your first $5 top-up doubles to $10 — one-time, for every new account. Get Started
Krova CloudKrova Cloud

MCP server

Run the Krova Cloud MCP server so Claude, Cursor, and any MCP client can provision and manage Cubes in natural language.

@krovacloud/mcp is a Model Context Protocol server that exposes Krova Cloudas a set of tools an AI agent can call. Ask Claude to "spin up a 2-vCPU Ubuntu cube in us-east", "list my running cubes", or "sleep the idle ones", and it drives the Krova CloudAPI for you. It's a thin, fully typed bridge over the TypeScript SDK, published on npm as @krovacloud/mcp.

Quickstart

The fastest way to try it — no install, no clone. The server speaks MCP over stdio, so you normally don't run it by hand; your MCP client launches it with this command.

KROVA_API_KEY=kro_... npx -y @krovacloud/mcp

You need a Krova Cloud API key — create one per space from Settings → API keys in the dashboard (see API keys). Set KROVA_SPACE_ID too if you want the Cube tools to default to one space.

Configuration

The server is configured entirely through environment variables.

  • KROVA_API_KEY (required) — your kro_… key, scoped to a space.
  • KROVA_SPACE_ID — a default space id, so Cube tools can omit spaceId.
  • KROVA_BASE_URL — override the API base URL (defaults to the Krova Cloud production API).

Connect your client

Every client uses the same launch command (npx -y @krovacloud/mcp) and the same environment variables.

Claude Desktop

Open Settings → Developer → Edit Config (or edit claude_desktop_config.json directly) and add:

{
  "mcpServers": {
    "krova": {
      "command": "npx",
      "args": ["-y", "@krovacloud/mcp"],
      "env": {
        "KROVA_API_KEY": "kro_your_api_key_here",
        "KROVA_SPACE_ID": "space_optional_default"
      }
    }
  }
}

Restart Claude Desktop; the Krova Cloud tools appear under the tools (🔨) menu.

Claude Code

Add the server with one command:

claude mcp add krova \
  --env KROVA_API_KEY=kro_your_api_key_here \
  --env KROVA_SPACE_ID=space_optional_default \
  -- npx -y @krovacloud/mcp

Or check a .mcp.json into your project root (shared with your team) using the same mcpServers shape as above, then verify with claude mcp list.

Cursor

Create .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects) with the same mcpServers config, then enable the krova server in Cursor Settings → MCP.

Any other MCP client

Any client that speaks MCP over stdio works — launch npx -y @krovacloud/mcp with the environment variables set. The config shape above is portable across VS Code (Copilot), Windsurf, Zed, and custom agents built on the MCP SDK.

Tools

19 tools cover the Cube lifecycle, the catalog, and a Cube's attached resources. Every tool's spaceId is optional when KROVA_SPACE_ID is set.

  • Cubeslist_cubes, get_cube, create_cube, sleep_cube, wake_cube, delete_cube, restore_cube.
  • Cataloglist_regions, list_images, get_pricing.
  • Domainslist_domains, create_domain, delete_domain.
  • Snapshotslist_snapshots, create_snapshot, delete_snapshot.
  • TCP mappingslist_tcp_mappings, create_tcp_mapping, delete_tcp_mapping.

Every tool advertises MCP annotations: the read tools are marked read-only, while the billable/irreversible ones — create_cube, all the delete_* tools, and restore_cube(which replaces a Cube's disk) — are marked destructive. Most clients prompt for confirmation before a destructive tool — keep that confirmation on, since an LLM driven by untrusted content could be induced to call one.

Security

Your API key is scoped to a single space and never leaves your machine — the server runs locally and talks directly to the Krova Cloud API. Never commit the key or paste it into logs, issues, or chats; rotate any key you believe has been exposed.

Next steps

  • API keys — create the key the server authenticates with.
  • TypeScript SDK — the typed client this server is built on.
  • Cubes — what the tools create, and how sleep/wake billing works.