valcloud is the Validation Cloud command-line tool. It connects to the same MCP gateway that Claude Code and other AI clients use, and turns every tool on that gateway into a subcommand. The command list is fetched from the gateway at runtime, so new Node API and Mavrik capabilities show up in valcloud without upgrading the CLI.
Install
valcloud requires Node.js 22.12 or newer.
- npm
- npx
Install
valcloud globally:Authenticate
Sign in with your Validation Cloud account:3 and asks you to run valcloud auth login again.
Login waits up to 5 minutes for the browser redirect on
http://localhost:38417/callback. If another process is using port 38417, the command fails and names the address that is taken.Headless and remote environments
If the CLI can’t open a browser, print the sign-in URL and open it yourself:localhost:38417 on the machine where you open the URL. When valcloud runs on a remote host, forward that port over SSH so the redirect reaches the CLI:
Manage your session
Your first commands
List the commands available to your account:How commands work
Every command is a tool on the Validation Cloud MCP gateway. The CLI maps each tool tovalcloud <namespace> <command> [options], where the namespace is the part of the tool name before the first dot, and names are converted from snake_case and camelCase to kebab-case:
Each input property of a tool becomes a
--kebab-case flag, and the tool’s descriptions appear in --help:
Required properties are required flags. When a tool has exactly one required property, you can also pass it as a positional argument:
valcloud nodeapi get-endpoint <id> is the same as valcloud nodeapi get-endpoint --id <id>.
To pass all arguments at once, use --input with a JSON object, or --input - to read it from stdin. Explicit flags override values from --input:
The command list is cached for one hour and refreshed by
valcloud auth login, valcloud auth logout and valcloud tools --refresh. If a command you expect is missing, or the gateway rejects a command as unknown or its arguments as invalid, run valcloud tools --refresh.Command reference
Commands come from the gateway, so the tables below reflect the time of writing and what your account can call may differ. Runvalcloud tools for the current list and valcloud <namespace> <command> --help for every option.
Built-in commands
Node API
Mavrik
Tool command flags
Every tool command accepts:
Destructive commands also accept:
A tool input property whose flag would clash with one of these flags, or with another property, has no flag of its own. Its
--help says so, and you can set it through --input.
Output
Results go to stdout. Diagnostics, prompts and hints go to stderr. Output is never colored.
TSV works with standard Unix tools, and JSON works with
jq:
<code>: <message>. With --json, stderr gets {"error":{"code":"...","message":"..."}} instead, including for usage errors.
Scripts, CI and AI agents
valcloud is designed to be called from scripts, CI jobs and AI agents:
--jsongives structured results on stdout and structured errors on stderr- Exit codes separate tool, usage and authentication failures
--dry-runshows exactly what would be sent, without calling the tool- Destructive commands never block waiting for input when there’s no terminal
Confirmations
A command is destructive unless its tool is marked read-only or non-destructive.valcloud tools shows which commands are destructive.
Without --yes, valcloud asks [y/N] on stderr only when stdin is a terminal and neither --no-interactive nor CI is set. Otherwise it refuses with exit code 2 before contacting the gateway. Any answer other than y aborts with exit code 1.
Authenticating without a browser
SetVC_TOKEN to an access token you already have, for example one printed by valcloud auth token, and store it in your CI secret store:
VC_TOKEN takes precedence over stored credentials and is never refreshed, so commands fail with exit code 3 once the token expires.
Exit codes
Configuration
Environment variables
By default,
valcloud connects to https://mcp.validationcloud.io/mcp. Credentials and the cached command list are kept per gateway URL, so each gateway has its own login and command list.
Stored files
credentials.json is written with mode 0600 inside a 0700 directory. Tokens are printed only by valcloud auth token, and tool results are never written to disk.
Next steps
- Admin API: manage endpoints and read usage over REST
- Supported Chains and Networks
- Validation Cloud skills for Claude Code, Codex and other AI harnesses
@validationcloud/clion npm