Quiz questions and structure
update_quiz_widgetsSaves quiz widget structure (ids + entities). Before calling, read the current structure via the quiz://{id}/structure resource. The plan limits the number of questions and the question types: a save that adds questions over the limit or a question of an unavailable type is rejected. ids — ordered array of widget identifiers; entities — object of configs keyed by those ids. IMPORTANT: widget identifiers are unique RFC 4122 UUIDs (e.g. 550e8400-e29b-41d4-a716-446655440000). Only the service strings "welcome" (first) and "submit" (last) are allowed; every other id must be a unique UUID. When adding new widgets, generate a new UUID for each one; duplicate ids are not allowed. The thank you screen ("thanks", "thank you page") is a SEPARATE widget with type = "finish" and a new UUID placed before "submit"; editing the submit fields does not create it. The special options "Other / Custom answer", "Hard to answer" and "None of the above" are switched on with the choiceTextOther / dropdownOther / hardToAnswer / noneOfAbove flags instead of being added as items to the option list. The tool response carries what was actually saved (saved: the widget count and the breakdown by type) — check it before telling the user the change has been applied.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"quiz_id": "<quiz_id>",
"ids": "<ids>",
"entities": "<entities>"
},
"name": "update_quiz_widgets"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Widget order: "welcome", then unique widget UUIDs, then "submit". Each id is a unique UUID (except welcome / submit). | |
| quiz_id | Yes | Quiz ID to update. | |
| entities | Yes | Widget configs: key — UUID from ids (unique per widget). Option ids inside a widget (choiceTextIds, dropdownIds, matrixRowIds and the other option lists) must be freshly generated UUIDs as well; sequential names such as "q2_1" are not accepted — a quiz built with them saves fine but fails to publish. |