Skip to content

List exercise versions

List normalized persisted version summaries for one exercise owned by the selected organization.

{
"annotations": {
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"fileParams": [],
"requiredPermission": "read",
"security": {
"type": "oauth2",
"scopes": [
"chalksurf:mcp"
]
}
}

The server advertises this JSON Schema to MCP clients. Runtime authorization and business-rule checks still apply.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cursor": {
"minLength": 1,
"type": "string"
},
"exerciseId": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"limit": {
"default": 50,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"organizationId": {
"description": "The ChalkSurf organization ID to use for this request.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
}
},
"required": [
"exerciseId",
"organizationId"
],
"type": "object"
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"additionalProperties": false,
"properties": {
"nextCursor": {
"type": [
"string",
"null"
]
},
"versions": {
"items": {
"additionalProperties": false,
"properties": {
"createdAt": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
"type": "string"
},
"createdByUserId": {
"anyOf": [
{
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
{
"type": "null"
}
]
},
"exerciseId": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"hasCreatorJobAttribution": {
"type": "boolean"
},
"id": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"sourceVersionId": {
"anyOf": [
{
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
{
"type": "null"
}
]
},
"type": {
"enum": [
"backfill",
"create",
"manual_edit",
"revert",
"solution_import",
"solution_generation",
"translation_generation",
"exercise_import",
"sheet_import",
"copy",
"exercise_description_generation",
"figure_attach",
"figure_remove",
"figure_update",
"automatic_labeling"
],
"type": "string"
},
"versionNumber": {
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
"required": [
"id",
"exerciseId",
"versionNumber",
"createdAt",
"createdByUserId",
"type",
"sourceVersionId",
"hasCreatorJobAttribution"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"versions",
"nextCursor"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"error": {
"additionalProperties": false,
"properties": {
"agentErrorDetails": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"results": {
"items": {
"additionalProperties": false,
"properties": {
"field": {
"enum": [
"exercise_text",
"description",
"hint",
"answer",
"scaffold",
"detailed_solution",
"teaching_notes"
],
"type": "string"
},
"language": {
"minLength": 1,
"type": "string"
},
"patchPath": {
"minLength": 1,
"type": "string"
},
"path": {
"minLength": 1,
"type": "string"
},
"validation": {
"additionalProperties": false,
"properties": {
"issues": {
"items": {
"additionalProperties": false,
"properties": {
"code": {
"enum": [
"unclosed_delimiter",
"blacklisted_command",
"disallowed_control_character_in_math",
"disallowed_control_character_in_text",
"double_escaped_latex_command",
"katex_parse_error",
"raw_latex_command_outside_math"
],
"type": "string"
},
"end": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"hint": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"const": "error",
"type": "string"
},
"snippet": {
"type": "string"
},
"start": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"code",
"message",
"severity",
"snippet",
"start",
"end"
],
"type": "object"
},
"type": "array"
},
"path": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"value": {
"type": "string"
}
},
"required": [
"path",
"value",
"valid",
"issues"
],
"type": "object"
}
},
"required": [
"language",
"field",
"path",
"patchPath",
"validation"
],
"type": "object"
},
"type": "array"
},
"summary": {
"additionalProperties": false,
"properties": {
"affectedPathCount": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"checkedSnippetCount": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"invalidSnippetCount": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"required": [
"checkedSnippetCount",
"invalidSnippetCount",
"affectedPathCount"
],
"type": "object"
},
"type": {
"const": "invalid_latex",
"type": "string"
}
},
"required": [
"type",
"summary",
"results"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"metadata": {
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"reason": {
"enum": [
"exercise_not_found",
"exercise_version_not_found",
"invalid_exercise_version_cursor",
"invalid_exercise_source_cursor",
"source_document_not_associated",
"source_document_not_ready",
"source_document_object_missing",
"source_document_size_mismatch",
"exercise_version_snapshot_invalid",
"source_document_association_inconsistent",
"source_document_too_large_for_mcp",
"source_document_too_large",
"source_document_read_capacity_exhausted",
"source_document_storage_unavailable"
],
"type": "string"
},
"recovery": {
"enum": [
"check_organization_and_id",
"relist_exercise_versions",
"restart_pagination",
"relist_source_documents",
"inspect_source_coverage",
"escalate_integrity_incident",
"use_cli_source_download",
"request_out_of_band_inspection",
"retry_source_read"
],
"type": "string"
},
"retryable": {
"type": "boolean"
},
"type": {
"const": "exercise_provenance",
"type": "string"
}
},
"required": [
"type",
"reason",
"recovery",
"retryable",
"metadata"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"editIndex": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"reason": {
"enum": [
"missing_member",
"missing_anchor",
"self_anchor",
"duplicate_addition",
"source_unavailable",
"revision_changed",
"publication_confirmation_required",
"result_too_large",
"temporarily_unavailable"
],
"type": "string"
},
"recovery": {
"enum": [
"correct_edits",
"reload_sheet",
"confirm_publication",
"inspect_state"
],
"type": "string"
},
"type": {
"const": "sheet_content_edit",
"type": "string"
}
},
"required": [
"type",
"reason",
"recovery"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"exerciseId": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"figureType": {
"enum": [
"text",
"solution"
],
"type": "string"
},
"requiredExerciseFigureIds": {
"items": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"type": "array"
},
"type": {
"const": "figure_group_membership",
"type": "string"
}
},
"required": [
"type",
"exerciseId",
"figureType",
"requiredExerciseFigureIds"
],
"type": "object"
}
]
},
"code": {
"enum": [
"validation_error",
"unauthorized",
"forbidden",
"not_found",
"timeout",
"import_source_error",
"precondition_failed",
"confirmation_required",
"resource_in_use",
"feature_disabled",
"figure_quality_failed",
"figure_render_failed",
"image_transform_failed",
"invalid_label",
"invalid_latex",
"storage_upload_failed",
"unsupported_image",
"validation_failed",
"resource_exhausted",
"data_loss",
"unavailable",
"organization_selection_required",
"organization_access_denied",
"internal_error"
],
"type": "string"
},
"message": {
"minLength": 1,
"type": "string"
}
},
"required": [
"code",
"message"
],
"type": "object"
},
"isError": {
"const": true,
"type": "boolean"
}
},
"required": [
"isError",
"error"
],
"type": "object"
}
]
}