veri mcp serve runs a Model Context Protocol server over stdio that exposes Veri as a set of tools. MCP clients such as Claude Code, Claude Desktop, and Cursor can inspect deployment metrics and request failures, query bounded training metrics, check account burn, compare eval runs, and—when writes are enabled—submit or cancel runs on your behalf.
The server runs on your own machine. Your MCP client starts it as a subprocess and talks to it over stdin/stdout, so there is nothing to host and no port to open. It authenticates with the same credentials the CLI uses, so it can do exactly what you can do from the CLI, nothing more.
Setup
1
Install the SDK with the mcp extra
The MCP server ships with the SDK behind an optional Confirm the command is available:
mcp extra:2
Log in
The server reads your stored credentials, so log in once:You never paste an API key into the MCP client. The server uses the credentials from
veri login (or the VERI_API_KEY environment variable if you set one).3
Register Veri in your client
Add Veri to your MCP client. The command the client runs is always By default this registers Veri for you in the current project. Use The file location depends on the client:
veri mcp serve.Claude Code has a one-liner. The part after -- is the command it will spawn:-s user to make it available in every project, or -s project to write a .mcp.json that your whole team shares (each teammate still runs their own veri login).Claude Desktop and Cursor are configured with a JSON file. Add a veri entry under mcpServers:4
Restart and verify
Restart the client so it picks up the new server.In Claude Code, run
claude mcp list (or /mcp inside a session) and confirm veri shows as connected. In Claude Desktop and Cursor, the Veri tools appear once the server connects. Ask the agent something like “what is my Veri credit balance?” to confirm it can reach your account.Read-only mode
By default every tool is available, including ones that create billable GPU jobs and deployments. Your MCP client prompts you to approve each tool call, so creation is gated by that approval. Tools that spend credits have descriptions that begin withCREATES A BILLABLE ... so the intent is clear in the approval prompt.
For an automated or unattended setup where no human approves each call, run the server read-only so the creation and cancellation tools are not registered at all. Pass --readonly in the command:
VERI_MCP_READONLY=1 has the same effect.
Available tools
Read tools (always available)
Write tools (available unless read-only)
Test deployment observability with MCP
MCP is optional for deployment observability—the dashboard, SDK, and REST API expose the same underlying telemetry. MCP is the agent-facing interface for investigating that telemetry in natural language. For a safe test, register the server in read-only mode:
Inspect deployment dep_... over the past hour. Report request volume, p50/p95/p99 TTFT and end-to-end latency, token throughput, error rate, and cost efficiency. List failed requests grouped by error category. Do not modify resources.
The agent should use:
veri_get_deployment_metricsfor compact lifetime health and cost context.veri_query_deployment_metricsfor server-aggregated time-series buckets.veri_list_deployment_requestsfor the terminal records behind errors.
Deployment observability smoke test
Generate buffered and streaming traffic, verify dashboard charts, test SDK and REST queries, and interpret every metric.
Training analysis with W&B
Use Veri MCP for infrastructure, lifecycle, deployment telemetry, billing, and eval comparisons. Connect the official W&B MCP alongside it for rich cross-run training analysis, artifacts, and reports. Veri returns a bounded native training metric series and the W&B run URL when available. It does not proxy W&B credentials or reimplement W&B’s query surface.Working with datasets and reward functions
The server does not upload local files. Upload your dataset and reward functions with the CLI first, then pass their ids to the agent:my-data and the reward id when it calls veri_create_training_job.
