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.9/5.0

Scored across 30 tools

Disambiguation5/5

Each tool targets a distinct resource-action pair: Cube lifecycle, snapshots, domains, TCP mappings, and webhooks are cleanly separated. Even similar-looking tools like list_domains and get_domain_records are clearly differentiated by their object type (attached domains vs DNS records).

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern: list/create/get/update/delete plus clear lifecycle verbs like wake, power_off, restart, protect, and restore. No mixing of naming conventions or vague verbs.

Tool Count2/5

At 30 tools, this is a heavy tool surface and exceeds the 25+ threshold for comfort. Each tool has a plausible purpose, but the sheer number adds selection overhead, even with the resource-area grouping.

Completeness4/5

The surface covers Cube lifecycle, snapshots, SSH access, domains, TCP mappings, webhooks, and platform info comprehensively. Minor gaps exist: webhooks and TCP mappings have no update operations, so changes require delete-and-recreate, but most core workflows have no dead ends.

Maintenance

ActivityActive
ResponsivenessNo issues