- Hosted endpoint (recommended):
https://api.veri.studio/mcp— nothing to install, authenticated with your API key. - Local server:
veri mcp serveruns as a subprocess of your MCP client and uses yourveri logincredentials. Use it if you prefer not to place an API key in client config.
Hosted endpoint
Connect with your Veri API key as a bearer header (create one from the dashboard’s API keys page). Every call acts as that key’s owner — the same permissions you have from the CLI, nothing more. Claude Code:mcpServers:
https://api.veri.studio/readonly/mcp instead — the creation and cancellation tools are not registered at all on that path (see Read-only mode).
Verify with /mcp inside a Claude Code session, or ask the agent “what is my Veri credit balance?”
Local server setup
The local server runs on your own machine: your MCP client starts it as a subprocess and talks to it over stdin/stdout, so there is no port to open and no API key in client config — it authenticates with your storedveri login credentials.
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.
On the hosted endpoint, use the /readonly/mcp path instead:
Available tools
Read tools (always available)
Write tools (available unless read-only)
Delete tools (available unless read-only)
Deletes are irreversible and, unlike provisioning, cost nothing, so your MCP client’s approval prompt is the only safeguard. Every description below starts withPERMANENTLY DELETES so the stakes are visible in that prompt. Use read-only mode for
any unattended agent.
Lifecycle webhooks, Prometheus metrics export, and per-replica drain have no MCP tools
today. Reach them over REST; see the API reference.
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.
Self-hosting the HTTP server
veri mcp serve-http is the multi-tenant streamable HTTP server behind the hosted https://api.veri.studio/mcp endpoint. You can also run it yourself, for example on an internal host shared by a team of agents:
veri login credentials. Every request must carry your Veri API key as a bearer token, and each call acts as that key’s owner:
The transport is stateless, so the service scales horizontally behind a plain load balancer, and
GET /healthz is an unauthenticated liveness probe. Requests are forwarded to the Veri API with the caller’s own key — the server holds no credentials of its own. Point it at a different control plane with --upstream-url or VERI_MCP_UPSTREAM_URL.
Training analysis with W&B
Use Veri MCP for infrastructure, lifecycle, deployment telemetry, and billing. 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 rewards
The server does not upload local files. Upload your dataset with the CLI first, then pass its id to the agent:veri_create_training_job takes a reward_source parameter carrying the reward function’s Python source text, so the agent passes the code inline when it creates the job.
Harness-in-the-loop RL jobs
Harness RL jobs — methodgrpo_harness, where your own agent (OpenAI SDK, LangChain, or Anthropic SDK) drives the GRPO rollouts unmodified — are regular training jobs to MCP: they appear in veri_list_training_jobs, veri_get_training_job, logs, and metrics like any other run. Submission is CLI-only today (veri run-harness, because the harness code directory is uploaded with the job; veri_create_training_job does not accept this method), and the per-rollout trajectory archive lives on the job’s dashboard page.
When a user asks their agent how to RL-train the model behind an existing agent or harness, the setup is small enough to explain conversationally: the agent keeps its normal loop and reads OPENAI_BASE_URL / ANTHROPIC_BASE_URL (pointed at the in-training policy per rollout) plus the task from VERI_TASK_INPUT; a TRL-signature reward function (attached to the job inline) scores each finished trajectory. The full contract and a worked demo: Harness-in-the-loop RL and the URL-extraction agent demo.
