Skip to content

kavryctl

kavryctl manages MCPServer resources through your kubeconfig. It also checks an installation, moves registrations between clusters, verifies audit chains, and upgrades and rolls back the Kavrynt release. You can register servers with kubectl alone instead.

Commands

Command What it does
kavryctl validate Checks an MCPServer manifest offline.
kavryctl register Creates or updates an MCPServer.
kavryctl list Lists servers with their route, readiness, and tools.
kavryctl inspect Prints the full resource as JSON.
kavryctl unregister Removes an MCPServer.
kavryctl doctor Checks the installation read-only and says what to fix.
kavryctl export Writes registrations as manifests.
kavryctl import Restores registrations, checking every document first.
kavryctl audit verify Verifies the Gateway's audit chains.
kavryctl upgrade Runs a checked helm upgrade of the release.
kavryctl rollback Runs a checked helm rollback of the release.
kavryctl version Prints the kavryctl version.

At a glance:

kavryctl version
kavryctl validate server.yaml               # offline, YAML or JSON
kavryctl register -n team-a server.yaml     # create or update
kavryctl list -A                            # all namespaces
kavryctl inspect -n team-a payments         # full resource as JSON
kavryctl unregister -n team-a payments
kavryctl doctor [--anonymize]               # read-only installation check
kavryctl export -A -o mcpservers.yaml       # registrations as manifests
kavryctl import [--dry-run] mcpservers.yaml # checked restore
kavryctl audit verify gateway.log           # or read standard input
kavryctl upgrade --version 1.0.0-beta.5     # checked helm upgrade
kavryctl rollback [--revision N]            # checked helm rollback

Install

Each release publishes kavryctl for Linux, macOS, and Windows (amd64 and arm64) on the GitHub release page, with a SHA256SUMS file signed with Cosign.

On Linux or macOS, the install script downloads the binary for your platform, verifies its checksum, and installs it to ~/.kavrynt/bin:

curl -fsSL https://raw.githubusercontent.com/kavrynt/kavrynt/v1.0.0-beta.5/scripts/install.sh \
  | KAVRYNT_VERSION=v1.0.0-beta.5 sh
export PATH="$HOME/.kavrynt/bin:$PATH"
kavryctl version

To verify by hand instead, download the archive and checksums, then check both:

VERSION=1.0.0-beta.5
BASE=https://github.com/kavrynt/kavrynt/releases/download/v${VERSION}
ARCHIVE=kavryctl_${VERSION}_linux_amd64.tar.gz   # or darwin_arm64, linux_arm64, ...
curl -fsSL -O "$BASE/$ARCHIVE" -O "$BASE/SHA256SUMS" -O "$BASE/SHA256SUMS.sigstore.json"

cosign verify-blob --bundle SHA256SUMS.sigstore.json \
  --certificate-identity "https://github.com/kavrynt/kavrynt/.github/workflows/release.yml@refs/tags/v${VERSION}" \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  SHA256SUMS
grep " $ARCHIVE\$" SHA256SUMS | sha256sum -c -   # macOS: shasum -a 256 -c

Cluster flags

Every command that talks to a cluster takes these flags.

Flag Purpose
--kubeconfig PATH Kubeconfig file (default: KUBECONFIG or ~/.kube/config)
--context NAME Kubeconfig context
-n, --namespace NS Namespace (default: manifest namespace, then the context namespace; kavrynt-system for upgrade and rollback)

Exit codes

Code Meaning
0 Success
1 The operation failed
2 Usage error

doctor and audit verify give 1 a more specific meaning; see their pages.