get_or_create_referral_link
ChatGPTUse this after who_am_i when the student wants their referral link, or after get_referral_status for a locked feature. Returns the existing link or creates one if missing; it never sends an invitation or qualifies a referral.
get_referral_status
ChatGPTUse this after who_am_i when the student asks about referrals or a requested feature is locked. Returns qualified and pending counts, feature access, the next unlock, and any existing referral link; it never creates one.
get_study_plan_insights
ChatGPTPass requestedExam for the requested exam name, or requestedExam="secondary" when the student asks for their secondary exam; omit it only when no exam preference is stated. Both saved exams are supported. Never require making a configured secondary exam primary. For any other exam, stop and direct them to https://mockmentor.ai/settings. Call before creating or revising a study plan. Returns the selected exam, onboarding guidance, recent mock performance, a bounded set of vital memories, and up to seven active-plan days by default. Use dayCursor from daysPage.nextCursor to retrieve additional task IDs before revising later days.
get_take_my_mock_result
ChatGPTRead the authenticated student's completed mock report for the quiz view.
get_todays_study_tasks
ChatGPTCall when the student asks what to study today. Returns the active plan tasks scheduled for their supplied local date, or the server date when omitted.
grade_take_my_mock
ChatGPTCall once after checking every submitted answer against the retained answer key. The result count must match the requested question count. Saves the completed attempt and learning memories and returns the report for the existing quiz view. May qualify an existing referral and unlock the referrer's features. Updates activity and rewards and may reverse an existing conversation bonus, subtracting its points from leaderboard totals. Do not repeat its per-question review in conversational text.
prepare_check_my_answer
ChatGPTPass requestedExam for the requested exam name, or requestedExam="secondary" when the student asks for their secondary exam; omit it only when no exam preference is stated. Both saved exams are supported. Never require making a configured secondary exam primary. For any other exam, stop and direct them to https://mockmentor.ai/settings. Call after who_am_i and before checking a student-supplied answer. Pass only the inferred question type, topic, and any explicitly supplied attempt or year—never the question, answer, options, or uploaded content. Returns current exam context and verification rules; it does not decide correctness or save the review. Syllabus results are scoped and paginated; use syllabusPage.nextCursor with unchanged inputs or clarify unmatched labels. Example: {questionType: "multiple_choice", topic: "Algebra"}.
prepare_evaluate_my_mock
ChatGPTPass requestedExam for the requested exam name, or requestedExam="secondary" when the student asks for their secondary exam; omit it only when no exam preference is stated. Both saved exams are supported. Never require making a configured secondary exam primary. For any other exam, stop and direct them to https://mockmentor.ai/settings. Call after who_am_i before evaluating an external mock, scorecard, OMR sheet, answer sheet, or report. Pass only its general type, subject or paper, and any explicitly supplied attempt or year—never raw file contents, extracted scores, registration details, or answers. Returns current exam rules, syllabus hierarchy, scoring guidance, available rubrics, verified sources, and evidence limits for ChatGPT's evaluation. Syllabus results are scoped and paginated; use syllabusPage.nextCursor with unchanged inputs or clarify unmatched labels. Example: {reportType: "section_summary", subjectOrPaper: "Statistics"}.
prepare_study_material
ChatGPTPass requestedExam for the requested exam name, or requestedExam="secondary" when the student asks for their secondary exam; omit it only when no exam preference is stated. Both saved exams are supported. Never require making a configured secondary exam primary. For any other exam, stop and direct them to https://mockmentor.ai/settings. Call after who_am_i and before searching the web for study material. Supply the requested topic and only an exam, attempt, year, or resource types explicitly requested by the student. Omit requestedExam for the student's primary exam. Returns the matching published exam guidance, syllabus, official source metadata, and web-research rules; it does not search the internet itself. Syllabus results are scoped and paginated; use syllabusPage.nextCursor with unchanged inputs or clarify unmatched labels. Example: {topic: "Probability", resourceTypes: ["official_material", "video"]}.
prepare_take_my_mock
ChatGPTPass requestedExam for the requested exam name, or requestedExam="secondary" when the student asks for their secondary exam; omit it only when no exam preference is stated. Both saved exams are supported. Never require making a configured secondary exam primary. For any other exam, stop and direct them to https://mockmentor.ai/settings. Use this after who_am_i and topic selection to start Take My Mock. Pass the student's requested positive whole-number questionCount; omit it to default to 10. Returns the selected exam, language, syllabus topics, and generation rules; it does not save an attempt.
present_take_my_mock
ChatGPTUse this after prepare_take_my_mock to display the generated quiz with the exact requested question count. Put question text and options only in this tool call and never reproduce them in conversational text. Never send answer keys or explanations. After submission, grade the returned selections and call grade_take_my_mock.
save_study_plan
ChatGPTPass requestedExam for the requested exam name, or requestedExam="secondary" when the student asks for their secondary exam; omit it only when no exam preference is stated. Both saved exams are supported. Never require making a configured secondary exam primary. For any other exam, stop and direct them to https://mockmentor.ai/settings. Saves an agreed study plan with one time-bounded, chat-executable task per day. Only one plan can be active. Before replacing, load get_study_plan_insights, name the current plan, explain that it will be archived with its tasks and progress preserved, and obtain explicit confirmation. Then pass replaceActivePlan=true and expectedActivePlanId=activePlan.id. Otherwise omit both fields. Returns a compact summary and URL. Do not use to draft a plan.
set_study_task_status
ChatGPTCall after the student explicitly starts, completes, skips, or reopens a task. Updates that owned task and may overwrite or clear its completion note and timestamp. Completes the plan when no unresolved tasks remain. Identical retries preserve timestamps, including after plan completion. Completed plans accept only identical retries.
update_study_plan
ChatGPTCall when the student asks to revise their active plan, a day, or one or more tasks. Overwrites the supplied saved fields without retaining their previous content; task completion state is preserved. Confirm the intended edits before saving. Returns a compact plan summary and URL; use get_study_plan_insights for paginated day/task details.
who_am_i
ChatGPTUse this when the student asks about their connected MockMentor account, and once at the start of each new MockMentor workflow. Returns approved identity, onboarding, primary exam, and accessible feature keys; use get_referral_status for referral details.