Skip to main content
Glama

moodle_get_quiz

Retrieve a quiz's settings, attempts, and available actions using its course-module ID to review configuration and plan next steps.

Instructions

Get a quiz's settings, attempts and available actions.

Args: cmid: course-module id (the id= value in /mod/quiz/view.php?id=...).

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": {
      "cmid": "<cmid>"
    },
    "name": "moodle_get_quiz"
  }
}

Input Schema

NameRequiredDescriptionDefault
cmidYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.1

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does disclose the shape of the response at a high level (settings, attempts, available actions) and 'get' implies a read-only operation, but it says nothing about permissions, whether 'attempts' covers all enrolled users or only the caller, or how large the payload can get. Useful but incomplete behavioral context.

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?

One front-loaded purpose sentence followed by a short Args block; nothing is padded or redundant. The trailing newline/formatting is slightly awkward but costs no comprehension.

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

Completeness4/5

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

With one parameter, no output schema and no annotations, the description covers what the tool returns and how to build the id, which is most of what an agent needs. The remaining gap is scope ambiguity around 'attempts' (own vs. all users) and what 'available actions' concretely maps to among the quiz_* siblings.

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 0% (the single property is only titled 'Cmid'), so the description must compensate, and it does: it defines cmid as a course-module id and gives a concrete derivation from the /mod/quiz/view.php?id=... URL. That is genuinely meaning-adding beyond the schema, though it does not state what happens if an id for a non-quiz module is passed.

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

Purpose4/5

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

Specific verb+resource ('Get a quiz') plus an enumeration of the three things returned: settings, attempts and available actions. It is clearly distinguishable from moodle_get_course or moodle_get_assignment by the resource named, though it never explicitly contrasts with the quiz_* siblings (start/submit/attempt).

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the entry point for inspecting a quiz before acting on it, especially given the 'available actions' phrase. There is no explicit when-to-use, no mention of when to prefer moodle_quiz_attempt or moodle_list_quizzes instead, and no stated prerequisites such as being enrolled in the course.

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