Skip to main content
Glama

edubase_get_exam_journey_user

Read-onlyIdempotent

Retrieve a user's exam journey, including current status, step deadlines, bundle progress, visited-step results, decisions, and educator manual changes.

Instructions

Get the journey of a user started by an exam: the status, the current step (with its deadline and the progress of a bundle), the history of the visited steps with their results and the decisions taken, and the manual changes made by the educators.

Input Schema

NameRequiredDescriptionDefault
examYesexam identification string (the starting exam)
userYesuser identification string

Output Schema

NameRequiredDescriptionDefault
runNo
examYes
stepNo
userYes
errorNo
flagsNo
bundleNo
eventsNo
statusYes
historyNo
journeyYes
outcomeNo
deadlineNo
time_endNo
time_startNo
wait_untilNo
steps_totalNo
steps_completedNo
steps_remainingNo
awaiting_approvalNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv2.0.10
    • addedOutput schema / properties / bundle
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "completed": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "items": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "class": {
      +            "type": "string"
      +          },
      +          "completed": {
      +            "type": "boolean"
      +          },
      +          "exam": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "quiz": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "enum": [
      +              "exam",
      +              "class",
      +              "quiz"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "title",
      +          "completed"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "required": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "required",
      +    "completed",
      +    "items"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / deadline
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / history / items / properties / contents
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "class": {
      +        "type": "string"
      +      },
      +      "exam": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "quiz": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "exam",
      +          "class",
      +          "quiz"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "title"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / history / items / properties / decisions / items / properties / type / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "condition",
      -      "split",
      -      "notify",
      -      "flag",
      -      "mark"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "condition",
      +      "split",
      +      "notify",
      +      "flag",
      +      "counter",
      +      "mark"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / history / items / properties / items
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "class": {
      +        "type": "string"
      +      },
      +      "exam": {
      +        "type": "string"
      +      },
      +      "grade": {
      +        "type": "string"
      +      },
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "play": {
      +        "type": "string"
      +      },
      +      "quiz": {
      +        "type": "string"
      +      },
      +      "result": {
      +        "type": "number"
      +      },
      +      "successful": {
      +        "type": "boolean"
      +      },
      +      "time_completed": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "enum": [
      +          "exam",
      +          "class",
      +          "quiz"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "title"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / history / items / properties / status / enum
      Previous value: -[
      -  "active",
      -  "waiting",
      -  "completed",
      -  "moved",
      -  "stopped",
      -  "error"
      -]New value: +[
      +  "active",
      +  "waiting",
      +  "completed",
      +  "expired",
      +  "moved",
      +  "stopped",
      +  "error"
      +]
    • addedOutput schema / properties / history / items / properties / timeout
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / step / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "content": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "class": {
      -                "type": "string"
      -              },
      -              "exam": {
      -                "type": "string"
      -              },
      -              "id": {
      -                "anyOf": [
      -                  {
      -                    "type": "string"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ]
      -              },
      -              "quiz": {
      -                "type": "string"
      -              },
      -              "title": {
      -                "type": "string"
      -              },
      -              "type": {
      -                "enum": [
      -                  "exam",
      -                  "class",
      -                  "quiz"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "type",
      -              "title"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "marker": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "outcome": {
      -        "type": "string"
      -      },
      -      "step": {
      -        "type": "string"
      -      },
      -      "time_start": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "title": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "type": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "step",
      -      "type",
      -      "title",
      -      "content",
      -      "time_start"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "content": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "class": {
      +                "type": "string"
      +              },
      +              "exam": {
      +                "type": "string"
      +              },
      +              "id": {
      +                "anyOf": [
      +                  {
      +                    "type": "string"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ]
      +              },
      +              "quiz": {
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": "string"
      +              },
      +              "type": {
      +                "enum": [
      +                  "exam",
      +                  "class",
      +                  "quiz"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "type",
      +              "title"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "contents": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "class": {
      +              "type": "string"
      +            },
      +            "exam": {
      +              "type": "string"
      +            },
      +            "id": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ]
      +            },
      +            "quiz": {
      +              "type": "string"
      +            },
      +            "title": {
      +              "type": "string"
      +            },
      +            "type": {
      +              "enum": [
      +                "exam",
      +                "class",
      +                "quiz"
      +              ],
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "type",
      +            "title"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "marker": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "outcome": {
      +        "type": "string"
      +      },
      +      "step": {
      +        "type": "string"
      +      },
      +      "time_start": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "title": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "type": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "step",
      +      "type",
      +      "title",
      +      "content",
      +      "time_start"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed4 schema fields changedv2.0.9
    • addedOutput schema / properties / awaiting_approval
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / events / items / properties / source / enum
      Previous value: -[
      -  "operator",
      -  "publish"
      -]New value: +[
      +  "operator",
      +  "publish",
      +  "result"
      +]
    • addedOutput schema / properties / history / items / properties / approval
      Added value: +{
      +  "enum": [
      +    "approved",
      +    "declined"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / history / items / properties / operator
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  3. Addedv2.0.6

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered and the description only needs to add context. It does add a useful account of what the response contains (current step, deadline, bundle progress, history, manual educator changes), but says nothing about behavior for a user who never started the exam, data volume, or permissions.

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 sentence, front-loaded with the action and resource so the agent gets the gist immediately. The trailing enumeration of returned fields is lengthy and partly duplicates what the output schema already supplies, which keeps it from a 5.

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?

Return values are covered by an output schema and safety semantics by annotations, so the description only needs to frame the concept — which it does by describing the journey contents. The remaining gap is routing guidance against the several sibling journey and results tools, which is not addressed.

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

Parameters3/5

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

Both parameters are fully documented in the schema, including the note that exam is "the starting exam," so the schema carries the load. The description reinforces that the exam is the starting point and that the journey is user-scoped, but adds no format, identifier-syntax, or disambiguation details beyond that. Baseline 3 is appropriate at 100% coverage.

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?

The description names a specific verb and resource ("Get the journey of a user started by an exam") and then enumerates the payload: status, current step with deadline and bundle progress, visited-step history with results and decisions, and educator manual changes. That is far more specific than the bare name. It stops short of 5 because it never names the adjacent journey tools (edubase_get_exam_journey, edubase_get_exam_journey_graph) it differs from.

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 by the wording: an agent can infer this is for per-user, per-exam journey inspection rather than aggregate journey definitions. There is no explicit when-to-use statement, no mention of alternatives such as edubase_get_exam_journey_graph or edubase_get_exam_results_user, and no stated prerequisites (e.g. the user must have started the exam).

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

Deploy Server

Other Tools