Tjaz
Make, find and share multiple-choice quizzes that people play on tjaz.com, alone or together
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"quiz": {
"url": "https://tjaz.com/mcp"
}
}
}Remote endpoints
https://tjaz.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
π’make_quiz(description, material, material_title, players, difficulty, ...)
Tjaz writes a multiple-choice quiz with its own AI from a description of what it's about, and the source material it's to be made from when there is any, for the people who will play it, and gives back a link to play it alone, in a 3D game or together on a big screen, and to share it. Use this when the user asks for a quiz about a subject, or from material they gave you, e.g. a chapter, their notes or a web page, and hasn't written the questions. Usually ready within a minute; if not, it gives the link where the quiz is being written, and get_quiz tells when it's ready. Tjaz writes it in the language of the description, unless language is given.
Input Schema
{
"type": "object",
"properties": {
"description": {
"type": "string",
"maxLength": 2000,
"description": "What the quiz is about, in the user's words, e.g. \"Vulkaner til 4.b, vi har læst om Island\""
},
"material": {
"type": "string",
"maxLength": 100000,
"description": "Optional: the text of source material to make the quiz from, e.g. a chapter, notes or a web page the user gave you or pasted in the chat. Copy its text as it is, not a summary: Tjaz asks about what it says and makes the wrong answers from what learners often get wrong about it. Leave it out for a quiz about a subject. Tjaz keeps it in the user's source material on Tjaz, where they can make more quizzes from it or delete it"
},
"material_title": {
"type": "string",
"maxLength": 200,
"description": "Optional, with material: its title, e.g. \"Kapitel 3: Vulkaner\", which the user finds it by in their source material. Default its first line"
},
"players": {
"type": "string",
"enum": [
"children",
"teens",
"adults",
"seniors",
"grade0",
"grade1",
"grade2",
"grade3",
"grade4",
"grade5",
"grade6",
"grade7",
"grade8",
"grade9",
"grade10",
"grade11",
"grade12",
"bachelor",
"master",
"phd",
"nobel"
],
"description": "Who will play the quiz. An age group: children (6β12), teens (13β17), adults (18β64), seniors (65+); or, for school, a level: grade0 is the first year of school at about 6 (kindergarten, Danish 0. klasse), grade1 to grade12 the school years after it (grade4 is US Grade 4, Danish 4. klasse, German 4. Klasse, UK Year 5; grade10βgrade12 are the last three years of upper secondary school, e.g. Danish 1.gβ3.g), then bachelor, master, phd, or nobel for experts. Leave it out when the user didn't say who will play: Tjaz then reads it from the description, as tjaz.com does"
},
"difficulty": {
"type": "string",
"enum": [
"easy",
"medium",
"hard"
],
"description": "How hard for those who play it. Default medium"
},
"questions": {
"type": "integer",
"minimum": 5,
"maximum": 20,
"description": "How many questions. Default 10"
},
"tone": {
"type": "string",
"enum": [
"fun",
"serious",
"educational"
],
"description": "fun: playful; serious: plain; educational: teaches, with three facts between the questions. Default educational"
},
"explanations": {
"type": "boolean",
"description": "Tjaz always explains after each answer why it's right or wrong, so this can be left out"
},
"language": {
"type": "string",
"description": "Optional: the language to write the quiz in, if not the description's: the language's code as Tjaz has it, ISO 639-1, e.g. da, en, ar, uk, and nb for Norwegian"
},
"public": {
"type": "boolean",
"description": "Also show it on tjaz.com/quizzes, where anyone can find it. Default false: only those who get the link can play it"
}
},
"required": [
"description"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ready",
"making",
"refused"
]
},
"quiz": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"language": {
"type": "string"
},
"subject": {
"type": "string",
"enum": [
"animals",
"space",
"body",
"history",
"geography",
"math",
"language",
"science",
"arts",
"sport",
"entertainment",
"food",
"technology",
"general"
]
},
"ages": {
"type": "string",
"description": "Who it's for, e.g. 9β14"
},
"questions": {
"type": "integer"
},
"minutes": {
"type": "integer"
},
"rating": {
"type": [
"number",
"null"
],
"description": "The mean rating from 1 to 5, or null under 5 ratings"
},
"links": {
"type": "object",
"properties": {
"play": {
"type": "string",
"description": "The quiz's page, to play it and share it"
},
"play3d": {
"type": "string",
"description": "The quiz as a 3D game"
},
"bigScreen": {
"type": "string",
"description": "Plays it together on a big screen, everyone playing along on their phone or laptop"
},
"edit": {
"type": "string",
"description": "The editor, for the one who made it"
},
"qrCode": {
"type": "string",
"description": "A QR code of the play link, as an SVG picture"
}
},
"required": [
"play"
]
}
},
"required": [
"id",
"title",
"language",
"questions",
"links"
]
},
"message": {
"type": "string",
"description": "Why it was refused, or what to tell the user"
}
},
"required": [
"status"
]
}π‘save_quiz(title, language, players, questions, public)
Saves a multiple-choice quiz whose questions are already written, by the user or by you, on Tjaz, and gives back a link to play it alone, in a 3D game or together on a big screen, and to share it. Use this when the user has the questions, e.g. pasted them, or asks you to write them. Tjaz checks the quiz against its terms before saving it
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "A short title, at most 8 words"
},
"language": {
"type": "string",
"description": "The language of the quiz: the language's code as Tjaz has it, ISO 639-1, e.g. da, en, ar, uk, and nb for Norwegian"
},
"players": {
"type": "string",
"enum": [
"children",
"teens",
"adults",
"seniors",
"grade0",
"grade1",
"grade2",
"grade3",
"grade4",
"grade5",
"grade6",
"grade7",
"grade8",
"grade9",
"grade10",
"grade11",
"grade12",
"bachelor",
"master",
"phd",
"nobel"
],
"description": "Who will play the quiz. An age group: children (6β12), teens (13β17), adults (18β64), seniors (65+); or, for school, a level: grade0 is the first year of school at about 6 (kindergarten, Danish 0. klasse), grade1 to grade12 the school years after it (grade4 is US Grade 4, Danish 4. klasse, German 4. Klasse, UK Year 5; grade10βgrade12 are the last three years of upper secondary school, e.g. Danish 1.gβ3.g), then bachelor, master, phd, or nobel for experts. Leave it out when the user didn't say who will play: Tjaz then reads it from the description, as tjaz.com does"
},
"questions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "Short enough to read on a phone"
},
"answers": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 6,
"description": "Usually 4 short answers. Believable wrong answers. Vary the position of the right one"
},
"right": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
},
"minItems": 1,
"description": "The indexes in answers of the right answers, from 0: one, unless more than one answer is right on its own"
},
"explanation": {
"type": "string",
"description": "Optional: why the right answer is right, in 1β3 sentences, shown after the player answers"
}
},
"required": [
"question",
"answers",
"right"
]
},
"minItems": 1,
"maxItems": 50
},
"public": {
"type": "boolean",
"description": "Also show it on tjaz.com/quizzes, where anyone can find it. Default false: only those who get the link can play it"
}
},
"required": [
"title",
"language",
"questions"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ready",
"making",
"refused"
]
},
"quiz": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"language": {
"type": "string"
},
"subject": {
"type": "string",
"enum": [
"animals",
"space",
"body",
"history",
"geography",
"math",
"language",
"science",
"arts",
"sport",
"entertainment",
"food",
"technology",
"general"
]
},
"ages": {
"type": "string",
"description": "Who it's for, e.g. 9β14"
},
"questions": {
"type": "integer"
},
"minutes": {
"type": "integer"
},
"rating": {
"type": [
"number",
"null"
],
"description": "The mean rating from 1 to 5, or null under 5 ratings"
},
"links": {
"type": "object",
"properties": {
"play": {
"type": "string",
"description": "The quiz's page, to play it and share it"
},
"play3d": {
"type": "string",
"description": "The quiz as a 3D game"
},
"bigScreen": {
"type": "string",
"description": "Plays it together on a big screen, everyone playing along on their phone or laptop"
},
"edit": {
"type": "string",
"description": "The editor, for the one who made it"
},
"qrCode": {
"type": "string",
"description": "A QR code of the play link, as an SVG picture"
}
},
"required": [
"play"
]
}
},
"required": [
"id",
"title",
"language",
"questions",
"links"
]
},
"message": {
"type": "string",
"description": "Why it was refused, or what to tell the user"
}
},
"required": [
"status"
]
}π’find_quizzes(search, subject, players, language)
Finds quizzes others have made on tjaz.com/quizzes, by words (typos are forgiven), subject and who they're for, and gives each with a link to play it. Use this when the user wants a quiz that may already exist, or quizzes to play
Input Schema
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Words to search for, e.g. vulkaner"
},
"subject": {
"type": "string",
"enum": [
"animals",
"space",
"body",
"history",
"geography",
"math",
"language",
"science",
"arts",
"sport",
"entertainment",
"food",
"technology",
"general"
]
},
"players": {
"type": "string",
"enum": [
"children",
"teens",
"adults",
"seniors",
"grade0",
"grade1",
"grade2",
"grade3",
"grade4",
"grade5",
"grade6",
"grade7",
"grade8",
"grade9",
"grade10",
"grade11",
"grade12",
"bachelor",
"master",
"phd",
"nobel"
],
"description": "Who will play the quiz. An age group: children (6β12), teens (13β17), adults (18β64), seniors (65+); or, for school, a level: grade0 is the first year of school at about 6 (kindergarten, Danish 0. klasse), grade1 to grade12 the school years after it (grade4 is US Grade 4, Danish 4. klasse, German 4. Klasse, UK Year 5; grade10βgrade12 are the last three years of upper secondary school, e.g. Danish 1.gβ3.g), then bachelor, master, phd, or nobel for experts. Leave it out when the user didn't say who will play: Tjaz then reads it from the description, as tjaz.com does"
},
"language": {
"type": "string",
"description": "Optional: only quizzes in this language: the language's code as Tjaz has it, ISO 639-1, e.g. da, en, ar, uk, and nb for Norwegian"
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"quizzes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"language": {
"type": "string"
},
"subject": {
"type": "string",
"enum": [
"animals",
"space",
"body",
"history",
"geography",
"math",
"language",
"science",
"arts",
"sport",
"entertainment",
"food",
"technology",
"general"
]
},
"ages": {
"type": "string",
"description": "Who it's for, e.g. 9β14"
},
"questions": {
"type": "integer"
},
"minutes": {
"type": "integer"
},
"rating": {
"type": [
"number",
"null"
],
"description": "The mean rating from 1 to 5, or null under 5 ratings"
},
"play": {
"type": "string",
"description": "The quiz's page, to play it and share it"
}
},
"required": [
"id",
"title",
"language",
"questions",
"play"
]
}
},
"more": {
"type": "integer"
},
"searchedFor": {
"type": "string",
"description": "What Tjaz searched for instead, when it corrected a typo in the search"
}
},
"required": [
"quizzes"
]
}π’get_quiz(quiz)
A quiz on Tjaz by its id or link (tjaz.com/q/β¦): its title, who it's for, its questions, and its links. The right answers only for the one who made it. Also tells whether a quiz being made is ready
Input Schema
{
"type": "object",
"properties": {
"quiz": {
"type": "string",
"description": "The quiz's id or link"
}
},
"required": [
"quiz"
],
"additionalProperties": false
}π’quiz_results(quiz, classLink)
How it went for those who played a quiz the user made: how many played it, how many answers were right on average, and each question with the share who answered it right, the hardest first, for everyone or for one class link. Only numbers for everyone together, never names, and only when at least 5 have played. Needs the user logged in to Tjaz
Input Schema
{
"type": "object",
"properties": {
"quiz": {
"type": "string",
"description": "The quiz's id or link"
},
"classLink": {
"type": "string",
"description": "Optional: only the answers from this class link"
}
},
"required": [
"quiz"
],
"additionalProperties": false
}βͺclass_link(quiz)
Makes a link to a quiz the user made for one class or group, with a QR code, so the results of those who play from it can be seen on their own. Needs the user logged in to Tjaz
Input Schema
{
"type": "object",
"properties": {
"quiz": {
"type": "string",
"description": "The quiz's id or link"
}
},
"required": [
"quiz"
],
"additionalProperties": false
}βͺtranslate_quiz(quiz, language)
Translates a quiz on Tjaz into another language and gives back the link to the translation. Takes up to a minute
Input Schema
{
"type": "object",
"properties": {
"quiz": {
"type": "string",
"description": "The quiz's id or link"
},
"language": {
"type": "string",
"description": "The language to translate it into: the language's code as Tjaz has it, ISO 639-1, e.g. da, en, ar, uk, and nb for Norwegian"
}
},
"required": [
"quiz",
"language"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ready",
"making",
"refused"
]
},
"quiz": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"language": {
"type": "string"
},
"subject": {
"type": "string",
"enum": [
"animals",
"space",
"body",
"history",
"geography",
"math",
"language",
"science",
"arts",
"sport",
"entertainment",
"food",
"technology",
"general"
]
},
"ages": {
"type": "string",
"description": "Who it's for, e.g. 9β14"
},
"questions": {
"type": "integer"
},
"minutes": {
"type": "integer"
},
"rating": {
"type": [
"number",
"null"
],
"description": "The mean rating from 1 to 5, or null under 5 ratings"
},
"links": {
"type": "object",
"properties": {
"play": {
"type": "string",
"description": "The quiz's page, to play it and share it"
},
"play3d": {
"type": "string",
"description": "The quiz as a 3D game"
},
"bigScreen": {
"type": "string",
"description": "Plays it together on a big screen, everyone playing along on their phone or laptop"
},
"edit": {
"type": "string",
"description": "The editor, for the one who made it"
},
"qrCode": {
"type": "string",
"description": "A QR code of the play link, as an SVG picture"
}
},
"required": [
"play"
]
}
},
"required": [
"id",
"title",
"language",
"questions",
"links"
]
},
"message": {
"type": "string",
"description": "Why it was refused, or what to tell the user"
}
},
"required": [
"status"
]
}Community
Evidence