Skip to main content
Glama

Quiz me on the guide

quiz_me
Read-onlyIdempotent

Interactive: quizzes the reader. Call it when the user says "quiz me on Unity Catalog", "test me on Lakebase" or "check what I know about the Delta log". Five to eight multiple-choice questions on a chapter of the Field Guide, one section of it, or the whole guide, built deterministically from the guide's own tables, question-headed sections, FAQs and glossary: every question and every option is a phrase the guide states, and no model writes them. Each has its answer, the guide's explanation and the section URL. In a host that renders MCP Apps the reader answers and is scored in the view. In a terminal whose client shows forms (elicitation), send form: true when the reader wants each question asked as a form; the score comes back with the explanations. Otherwise the text lists the questions and answers: ask the reader each one before revealing it, then call quiz_me again with the same chapter and section and their answers to score them. A reader who kept a resume code (Keep my progress, in a host without Fabric's view state) picks up with quiz_me and resume alone.

Input Schema

NameRequiredDescriptionDefault
examNoInstead of a chapter: practice for a certification exam's domain (needs domain): data-engineer-associate, data-engineer-professional, data-analyst-associate, machine-learning-associate, machine-learning-professional, genai-engineer-associate, context-engineer-associate, apache-spark-developer-associate
formNotrue: in a client that shows forms (elicitation) and no MCP Apps view, ask the reader each question as a form and return the result. Send it only when the reader wants to answer in forms; left out, the result is unanswered.
domainNoThe exam's domain id, as exam_prep lists them
resumeNoA resume code the reader kept from an earlier quiz (it starts kp1.): picks up where they left off. The code names its own chapter or exam domain, so nothing else is needed.
answersNoThe reader's answers, in question order, to score them: a letter (A to H) or an option's exact words, "" or "-" for none. Send the same chapter and section as the quiz that was asked.
chapterNoA chapter's slug (unity-catalog, lakebase), path or URL; list_chapters has them. Omit for questions from across the guide.
sectionNoOne section of that chapter: its anchor or heading. Needs chapter.

Output Schema

NameRequiredDescriptionDefault
keepNoFor an interactive view: what its Keep my progress button makes a resume code from (scope), and the reader's place when a resume code was sent (resumed). Holds no personal data; nothing is stored on the server.
noteYes
buildYesThe commit of the deploy that answered
scopeYes
scoreNoThe reader's score, when they answered (answers, or the questions asked one at a time by elicitation); null otherwise
totalYes
ttlMsYesHow long this answer may be kept before asking again, in milliseconds
questionsYes
index_builtYesWhen this deploy's index was built (ISO 8601)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / form
      Added value: +{
      +  "description": "true: in a client that shows forms (elicitation) and no MCP Apps view, ask the reader each question as a form and return the result. Send it only when the reader wants to answer in forms; left out, the result is unanswered.",
      +  "type": "boolean"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / resume
      Added value: +{
      +  "description": "A resume code the reader kept from an earlier quiz (it starts kp1.): picks up where they left off. The code names its own chapter or exam domain, so nothing else is needed.",
      +  "maxLength": 600,
      +  "minLength": 5,
      +  "pattern": "^kp1\\.[A-Za-z0-9_-]+$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / keep
      Added value: +{
      +  "description": "For an interactive view: what its Keep my progress button makes a resume code from (scope), and the reader's place when a resume code was sent (resumed). Holds no personal data; nothing is stored on the server.",
      +  "properties": {
      +    "kind": {
      +      "type": "string"
      +    },
      +    "resumed": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "scope": {
      +      "type": "string"
      +    },
      +    "stale": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "scope",
      +    "resumed",
      +    "stale"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / exam / description
      Previous value: -"Instead of a chapter: practice for a certification exam's domain (needs domain): data-engineer-associate, data-engineer-professional, data-analyst-associate, machine-learning-associate"New value: +"Instead of a chapter: practice for a certification exam's domain (needs domain): data-engineer-associate, data-engineer-professional, data-analyst-associate, machine-learning-associate, machine-learning-professional, genai-engineer-associate, context-engineer-associate, apache-spark-developer-associate"
  4. Changed2 schema fields changed
    • addedInput schema / properties / domain
      Added value: +{
      +  "description": "The exam's domain id, as exam_prep lists them",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / exam
      Added value: +{
      +  "description": "Instead of a chapter: practice for a certification exam's domain (needs domain): data-engineer-associate, data-engineer-professional, data-analyst-associate, machine-learning-associate",
      +  "maxLength": 120,
      +  "type": "string"
      +}
  5. Changed2 schema fields changed
    • addedInput schema / properties / answers
      Added value: +{
      +  "description": "The reader's answers, in question order, to score them: a letter (A to H) or an option's exact words, \"\" or \"-\" for none. Send the same chapter and section as the quiz that was asked.",
      +  "items": {
      +    "maxLength": 200,
      +    "type": "string"
      +  },
      +  "maxItems": 8,
      +  "type": "array"
      +}
    • addedOutput schema / properties / score
      Added value: +{
      +  "description": "The reader's score, when they answered (answers, or the questions asked one at a time by elicitation); null otherwise",
      +  "properties": {
      +    "answered": {
      +      "type": "integer"
      +    },
      +    "results": {
      +      "items": {
      +        "properties": {
      +          "given": {
      +            "description": "The letter the reader gave; null for none",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "n": {
      +            "type": "integer"
      +          },
      +          "right": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "n",
      +          "given",
      +          "right"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "right": {
      +      "type": "integer"
      +    },
      +    "stopped": {
      +      "description": "The reader stopped before the last question",
      +      "type": "boolean"
      +    },
      +    "total": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "right",
      +    "total",
      +    "answered",
      +    "stopped",
      +    "results"
      +  ],
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  6. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, but the description adds substantive behavior: questions are built deterministically and no model writes them, each item ships with its answer, explanation and section URL, and the second call with the same chapter/section plus answers performs scoring. Mode-specific behavior (view rendering vs elicitation vs text) and the resume-code recovery path are all disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single long paragraph, but front-loaded with the trigger phrasings before the mechanics, and nearly every clause carries decision-relevant information (determinism, fallback mode, re-call for scoring, resume). It is dense and could be split into short mode-specific sentences for faster scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a seven-parameter interactive tool with an output schema, the description covers generation source, the three delivery modes, the two-call scoring flow, and the resume-code path. Nothing an agent needs in order to invoke and follow up correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description earns above that by explaining interaction semantics the schema cannot: answers must be sent with the same chapter and section as the quiz that was asked, form should only be set when the reader wants forms and otherwise the result is unanswered, and resume alone carries its own chapter or domain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (quizzes the reader) and pins down exactly what is produced: five to eight multiple-choice questions on a chapter, a section, or the whole Field Guide, assembled deterministically from the guide's own tables, FAQs and glossary. The example utterances ("quiz me on Unity Catalog", "test me on Lakebase") make the trigger unambiguous and separate it from siblings like explore_concept or get_chapter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit invocation phrasings and then routes by environment: answers and scoring happen in the MCP Apps view, via elicitation forms when form: true, or as a text list the agent must walk through and then re-call with answers to score. It never contrasts itself with the closest siblings (flashcards, exam_prep), leaving the agent to infer which to pick — the only real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.