Skip to main content
POST
Generate eval cases from the suite's tools

Authorizations

Authorization
string
header
required

MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.

Headers

x-mcpjam-eval-vocabulary
enum<string>

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.

Available options:
1,
2
x-mcpjam-idempotency-key
string

Makes a retry replay the recorded drafts instead of taking a second slice of the daily generation quota.

Path Parameters

projectId
string
required

ID of the hosted project that contains the server.

suiteId
string
required

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

Body

application/json

AI-generate cases from the suite's server tools and persist them. The authoring model is on MCPJam — no credits are consumed; it counts against the project's daily generation quota.

mode
enum<string>

Superseded by caseMix when that is present.

Available options:
normal,
negative
servers
string[]

Server ids or names to discover tools from. Ignored when the suite is environment-based.

Minimum string length: 1
environmentId
string

Discover tools from this attached environment's closed server set, so generated cases are written against the tools the suite's runs will actually see.

Minimum string length: 1
caseModels
object[]
caseMix
object

Per-bucket case counts. Omitted buckets inherit the default mix; the backend bounds each bucket and the total.

varyUserStyles
boolean

Condition generated cases on a range of user styles so the queries read like different users wrote them.

idempotencyKey
string

Write-idempotency key. A repeat call with the same key replays recorded drafts instead of spending credits again. The Idempotency-Key / x-mcpjam-idempotency-key header carries the same value and WINS over this field.

Required string length: 1 - 256

Response

The generated cases.

generationModel
string
required
created
object[]
required
counts
object
required
skipped
object[]

Drafts that were generated but failed to persist. Surfaced rather than silently dropped.