
Mcp
cloud.krovav0.3.15更新於 Sep 29, 2026
Provision and manage Krova Cloud Cubes — Firecracker microVMs with root access and no public IP.
安裝
README
@krovacloud/mcp
[npm version] [npm downloads] [license] [Node]
MCP server for Krova Cloud — let Claude, Cursor, and any MCP client provision and manage Cubes (Firecracker microVMs) in natural language.
A Model Context Protocol server that exposes Krova Cloud as a set of tools an AI agent can call. Ask Claude to "spin up a 2-vCPU Ubuntu cube in us", "list my running cubes", or "power off the idle ones", and it drives the Krova Cloud API for you.
It's a thin, fully typed bridge over the official @krovacloud/sdk: each Krova Cloud operation is an MCP tool with a validated input schema, authenticated with your API key.
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 that command. Pick your client below.
Client setup
All clients use the same launch command (npx -y @krovacloud/mcp) and the same environment variables. Set at least KROVA_API_KEY; set KROVA_SPACE_ID too if you want the Cube tools to default to one Space.
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config, or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS / %APPDATA%\Claude\claude_desktop_config.json on Windows) and add:
Restart Claude Desktop. The Krova Cloud tools appear under the tools (🔨) menu.
Claude Code
Add the server with one command:
Or add it to .mcp.json in your project root (checked in, shared with your team):
Verify with claude mcp list.
Cursor
Create .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):
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.
Configuration
The server is configured entirely through environment variables:
Tools
All 23 tools, their parameters, and what they do. Every tool's spaceId is optional when KROVA_SPACE_ID is set.
Every tool advertises MCP annotations so your client can treat them appropriately: the ten read tools (list_cubes, get_cube, get_cube_ssh, list_regions, list_images, get_pricing, list_domains, get_domain_records, list_snapshots, list_tcp_mappings) are marked read-only, while the six destructive tools (create_cube, delete_cube, delete_domain, delete_snapshot, restore_cube, delete_tcp_mapping) are marked destructive. update_domain mutates but is idempotent and reversible, so it is not. Most MCP clients surface a confirmation prompt before running a destructive tool — keep that confirmation on, since an LLM driven by untrusted content could be induced to call one.
create_cube parameters
Successful calls return the API's JSON response as text; API errors surface as an MCP error result carrying the HTTP status, the API message, and a request id when available.
Authentication
You need a Krova Cloud API key. Create one from your Space settings in the Krova Cloud dashboard — keys are scoped per Space, inherit the permissions of the membership that created them, and look like kro_....
Never commit your key or paste it into logs, issues, or chats. Rotate any key you believe has been exposed. See SECURITY.md.
Requirements
- Node.js ≥ 18 (the underlying SDK uses the global
fetch). - An MCP-capable client (Claude Desktop, Claude Code, Cursor, or your own agent).
Related packages
Part of the Krova Cloud developer toolkit:
@krovacloud/sdk— the official TypeScript SDK this server is built on.- Krova Cloud docs & dashboard — hosted API docs, the OpenAPI spec, and where you obtain API keys.
Contributing
See CONTRIBUTING.md. The tool registry in src/tools.ts is the single source of truth — add a defineTool(...), cover it in tests/, and update the table above. Run pnpm typecheck, pnpm test, and pnpm build before opening a PR.
License
MIT © 2026 Krova Inc.
Publishing to the official MCP Registry
This server is listed as cloud.krova/mcp.
CI republishes it automatically on every release — see the Publish MCP server
to the official registry step in .github/workflows/ci-release.yml.
It requires one repository secret, MCP_PRIVATE_KEY. Until that exists the
step logs a skip and does nothing, so releases are never blocked by it.
The value is the raw Ed25519 private key as hex, derived from the key whose
public half is published as a TXT record on the krova.cloud apex:
⚠️ Pipe it to pbcopy rather than reading it off the terminal. The command
emits no trailing newline, so zsh displays a trailing % — copy that by eye
and it lands in the secret, and the publisher fails with
invalid hex private key format: ... invalid byte: U+0025 '%'. CI now strips
non-hex characters and checks the length is 64, so this cannot bite twice.
⛔ The namespace is the reason a secret exists at all. mcp-publisher login github-oidc needs no secret, but only grants io.github.<org>/* — taking it
would mean abandoning cloud.krova/mcp, republishing under a new name and
orphaning the live entry. The branded namespace was chosen deliberately.
Running it by hand
The script reads the version from npm, never from server.json, and exits
early when the registry already serves that version. That is deliberate: the
stored number cannot be trusted, because release.mjs patch-bumps from npm's
latest, CI never commits the bump back, and server.json is not in the
package's files list so it does not ship in the tarball either. Publishing a
stale version fails silently — the registry checks only that the version exists
on npm with the mcpName marker, not that it is the latest.
來源:packages/mcp/README.md,提交 695a1d7
工具
0版本歷史
3- v0.3.15最新Sep 27, 2026
- v0.3.14Sep 17, 2026
- v0.3.12Sep 16, 2026


