Eval runs

Get an iteration's step results

One row per authored test step, in order, with status (ok/fail/skipped/pending), a reason, and any evidence (screenshots, replay-video offset, widget tool calls). The fastest way to see which step failed and why. Unlike /trace, a missing trace is not a 404 — step verdicts still return, just without evidence.

get/projects/{projectId}/eval-runs/{runId}/iterations/{iterationId}/steps

Path parameters

projectIdstring required

ID of the hosted project that contains the server.

runIdstring required

Eval run ID, as returned by POST /eval-runs.

iterationIdstring required

Iteration ID, as returned by the run's iterations list.

Headers

x-mcpjam-eval-vocabulary'1' | '2'

Which vocabulary this request and its response speak. Absent means 1, which is byte-for-byte today's contract: the same request fields, the same refusals, the same response projection. 2 is the canonical vocabulary. Any other value is a 400 with code: "VALIDATION_ERROR".

Today it decides one thing: the spelling of an evaluator's policy role. Vocabulary 1 accepts and returns gating; vocabulary 2 accepts both spellings and returns the canonical required. Sending required without the header is a 400, deliberately — vocabulary 1 is not widened to meet vocabulary 2 half way, because a boundary that accepts a spelling it does not announce is one two implementations can disagree about.

A response that varies by vocabulary sends Vary: x-mcpjam-eval-vocabulary.

Response

The ordered step results as a page envelope.

nextCursorstring
evidence'resolved' | 'unavailable'

Whether the evidence read behind these verdicts completed. resolved means it did (a step may still have produced no evidence); unavailable means it failed and the verdicts are all that could be served. Absent on a deployment that predates the marker.

Changes

Changed in 4 of the 122 revisions of this API.54

    • ○

      added the new optional header request parameter x-mcpjam-eval-vocabulary

      new-optional-request-parameter

    • ○

      added the non-success response with the status

      response-non-success-status-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ●

      added the new CONFLICT enum value to the response property for the response status

      response-property-enum-value-added

    • ●

      added the new CONFLICT enum value to the response property for the response status

      response-property-enum-value-added

    • ●

      added the new CONFLICT enum value to the response property for the response status

      response-property-enum-value-added

    • ●

      added the new CONFLICT enum value to the response property for the response status

      response-property-enum-value-added

    • ●

      added the new CONFLICT enum value to the response property for the response status

      response-property-enum-value-added

    • ○

      endpoint added

      endpoint-added