Skip to main content
Glama
krovacloud

@krovacloud/mcp

Official
README.md
# krova-node

[![krova-node MCP server](https://glama.ai/mcp/servers/krovacloud/krova-node/badges/card.svg)](https://glama.ai/mcp/servers/krovacloud/krova-node)

The single home for the [Krova Cloud](https://krova.cloud) **JavaScript / TypeScript** packages — SDK,
CLI, MCP server, webhook verifier, and the n8n node. A pnpm-workspace monorepo:
the CLI/MCP consume the SDK via `workspace:*`, so everything stays in sync and a
cross-package change is one PR.

| Package | npm | What it is |
| --- | --- | --- |
| [`packages/sdk`](packages/sdk) | [`@krovacloud/sdk`](https://www.npmjs.com/package/@krovacloud/sdk) | Typed TypeScript SDK for the Krova Cloud API |
| [`packages/cli`](packages/cli) | [`@krovacloud/cli`](https://www.npmjs.com/package/@krovacloud/cli) | The `krova` CLI (pure Node — built on the SDK) |
| [`packages/mcp`](packages/mcp) | [`@krovacloud/mcp`](https://www.npmjs.com/package/@krovacloud/mcp) | MCP server for Claude/Cursor/etc. |
| [`packages/webhook`](packages/webhook) | [`@krovacloud/webhook`](https://www.npmjs.com/package/@krovacloud/webhook) | Outbound-webhook signature verification |
| [`packages/n8n-node`](packages/n8n-node) | [`n8n-nodes-krova`](https://www.npmjs.com/package/n8n-nodes-krova) | n8n community node |

## Develop

```sh
pnpm install
pnpm -r build      # topological — the SDK builds before its consumers
pnpm -r test
pnpm -r typecheck
```

## Releasing (automatic, no manual version bumps)

Every push to `main` runs [`scripts/release.mjs`](scripts/release.mjs): for each
package that **changed since its last release tag**, it patch-increments the
latest version on npm, publishes it (with provenance), and records a
`<name>@<version>` git tag + GitHub release. Unchanged packages are skipped.
An explicit higher version in a package's `package.json` is honored as-is.

Publishing uses npm **trusted publishing (OIDC)** — the release workflow has
`id-token: write` and runs `pnpm publish --provenance`, so **no `NPM_TOKEN`** (or
any long-lived npm token) is required. See "How releases work" in
[CONTRIBUTING.md](./CONTRIBUTING.md).

TDQS

A3.8/5.0

Scored across 37 tools

Disambiguation4/5

Most tools target a distinct resource+action pair (cubes, domains, snapshots, webhooks, TCP mappings, backups, shares). A few are close—get_cube vs get_cube_ssh, and the cluster of share/backup-share tools—but descriptions draw clear boundaries and tell the agent when to use each.

Naming Consistency4/5

Nearly everything follows a consistent snake_case verb_noun pattern (list_cubes, create_domain, delete_snapshot). Minor deviations like get_cube_ssh, get_domain_records, and power_off_cube add a qualifier, but the overall convention is readable and predictable.

Tool Count3/5

37 tools is heavy for a single server, above the typical 3-15 sweet spot. However the platform genuinely spans many resource families (compute, networking, DNS, backups, webhooks, billing), so most tools do earn their place rather than being redundant.

Completeness4/5

Cube lifecycle is thoroughly covered (create/get/list/delete, power/wake/restart/restore, protect/unprotect, ssh, snapshots) and backups/domains/webhooks have near-full CRUD. Gaps are minor: no update/resize for cubes, no update for snapshots or TCP mappings, and no get for a single domain.

Maintenance

ActivityActive
ResponsivenessNo issues