Skip to main content
Glama

Ptally

Run a version's tests

run_version_tests
Read-onlyIdempotent

Price every test in a version's tests[] against that version's stored model and compare each with its expected output. Takes version_reference (any status but archived — a draft after patch_version, or a live version for a baseline). Runs against the stored model, so a patch saved a moment ago is included. A test passes when its result is within 0.005 of the expected result and its valid flag equals the expected valid. Expectations are read from output { result, valid }, or, when output has neither (tests imported from the hosted service), from result { result, valid }; expected_from says which. A test with neither is priced but unchecked (passed: null). Returns { project_reference, version_reference, version, status, updated_at, total, passed, failed, unchecked, results: [{ id, name, passed, expected: { result, valid }, expected_from, actual: { result, valid }, problems, errors }], version_url, next_steps } — problems says why a test failed, errors is up to 5 of the engine's step errors for that run. Nothing is persisted. Use after patch_version, after adding or changing tests, or before a change to record the baseline. To change a test's expected output, patch_version on /tests//output/result (drafts only) — output takes precedence over result.

Input Schema

NameRequiredDescriptionDefault
version_referenceYesUUID of the version whose tests to run — e.g. get_project's latest_draft.version_reference, or the version_reference patch_version returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds substantial context beyond that: nothing is persisted, the 0.005 tolerance, that a just-saved patch is included, and the precedence between output and result. Given how much is already in the structured fields, this sits comfortably at 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the core action and the key usage rules, which is good. But the long inline enumeration of the return shape is dense and hard to parse, and some detail (e.g. the errors cap of 5) could be trimmed or structured. It is informative but not tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return contract — and it does, covering the fields, the null-passed case, and the problems/errors semantics. Combined with the pass/fail rule and the expected_from precedence, an agent has everything needed to call and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single version_reference parameter is already documented. The description adds only marginal meaning beyond it: the eligible statuses (any but archived) and the draft-vs-live distinction. With the schema doing the heavy lifting, 3 is the right baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: prices every test in a version's tests[] against that version's stored model and compares each with its expected output. That is unmistakably distinct from siblings like run_quote, validate_project, and patch_version.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names explicit trigger points (after patch_version, after adding or changing tests, before a change to capture a baseline) and states which versions are eligible (any status but archived; draft or live). It also routes the user elsewhere for changing expectations: patch_version on /tests/<test id>/output/result, drafts only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources