Eval suites

List a suite's settings history

One entry per committed edit to the suite's settings, newest first: who made it, which STORED fields moved, the note they left, how many runs were launched against it, and the revision group that ties one request's writes together. Rows carry no configuration snapshots. Send a revisionNumber back as expectedRevisionNumber on PATCH /eval-suites/{suiteId} to make that edit a compare-and-set.

get/projects/{projectId}/eval-suites/{suiteId}/revisions

Path parameters

projectIdstring required

ID of the hosted project that contains the server.

suiteIdstring required

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

Query parameters

limitinteger

Maximum revisions to return, 1-100. Defaults to 25. Out of range is a 400 rather than a silent clamp.

cursorstring

Opaque pagination cursor from a previous response's nextCursor.

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

Committed settings edits, newest first.

nextCursorstring nullable

Changes