Generate eval cases from the suite's tools
Discovers the suite's server tools over a live MCP connection, generates cases against them, and persists them — the only edit route that connects to a server. Synchronous: connect, generate, persist, disconnect, respond.
The authoring model is on MCPJam: no customer credits are consumed. The call still counts against the organization's daily generation quota, and against MCPJam's own daily budget for generation, so it can be refused with 429 RATE_LIMITED and a Retry-After. details.canTopUp is false: wait until Retry-After rather than topping up or retrying in a loop.
An environment-based suite generates against that environment's closed server set, so the cases match the tools its runs will actually see.
Pass x-mcpjam-idempotency-key to make a retry safe: drafts are recorded backend-side BEFORE any case is persisted, so a replay reuses them instead of taking a second slice of the daily quota, and each case is persisted under a derived per-item key so the loop is resumable.
Path parameters
ID of the hosted project that contains the server.
Eval suite ID, as returned by POST /eval-runs.
Headers
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.
Makes a retry replay the recorded drafts instead of taking a second slice of the organization's daily generation quota.
Request body
Response
The generated cases.
Changes
Changed in 12 of the 122 revisions of this API.314
- ○
added the success response with the status
response-success-status-added
- ○
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ▲
added
subschema #1subschema #2subschema #3subschema #4subschema #5subschema #6subschema #7subschema #8subschema #9subschema #10subschema #11subschema #12subschema #13subschema #14subschema #15subschema #16subschema #17subschema #18subschema #19subschema #20subschema #21subschema #22subschema #23subschema #24subschema #25subschema #26subschema #27subschema #28subschema #29subschema #30subschema #31subschema #32subschema #33to the////response propertyoneOflist for the response statusresponse-property-one-of-added
- ○
added the new optional
headerrequest parameterx-mcpjam-eval-vocabularynew-optional-request-parameter
- ○
removed
subschema #1subschema #2subschema #3subschema #4subschema #5subschema #6subschema #7subschema #8subschema #9subschema #10subschema #11subschema #12subschema #13subschema #14subschema #15subschema #16subschema #17subschema #18subschema #19subschema #20subschema #21subschema #22subschema #23subschema #24subschema #25subschema #26subschema #27subschema #28subschema #29subschema #30subschema #31subschema #32subschema #33from the////response propertyoneOflist for the response statusresponse-property-one-of-removed
- ▲
- ▲
added
subschema #1subschema #2subschema #3subschema #4subschema #5subschema #6subschema #7subschema #8subschema #9subschema #10subschema #11subschema #12subschema #13subschema #14subschema #15subschema #16subschema #17subschema #18subschema #19subschema #20subschema #21subschema #22subschema #23subschema #24subschema #25subschema #26subschema #27subschema #28subschema #29subschema #30subschema #31subschema #32subschema #33to the////response propertyoneOflist for the response statusresponse-property-one-of-added
- ▲
the
////response's property type changed fromobjectto no type for statusresponse-property-type-changed
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ▲
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
- ○
added the new optional request property
new-optional-request-property
- ○