Fiveable for AP Teachers
What this MCP does
Helps AP teachers create assignments and classes, grade essays, review class performance, manage approvals, and export results to Google Classroom or Sheets.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId', 'students'], 'properties': {'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'students': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'First Last.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 254}}, 'additionalProperties': False}, 'maxItems': 200, 'minItems': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'all', 'approve'], 'properties': {'all': {'type': 'boolean', 'default': False}, 'approve': {'type': 'boolean', 'default': True}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'essayHandles': {'type': 'array', 'items': {'type': 'string', 'pattern': '^E-[a-f0-9]{6}$', 'description': 'Essay handle from get_grading_results, e.g. E-3b91c0.'}, 'maxItems': 200}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'archived'], 'properties': {'archived': {'type': 'boolean', 'default': True, 'description': 'false restores an archived draft.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId', 'archived'], 'properties': {'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'archived': {'type': 'boolean', 'default': True, 'description': 'false restores an archived class.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['previewId'], 'properties': {'previewId': {'type': 'string', 'maxLength': 200, 'minLength': 20, 'description': 'The previewId from the matching prepare_ tool, after the teacher said yes to that preview.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['previewId'], 'properties': {'previewId': {'type': 'string', 'maxLength': 200, 'minLength': 20, 'description': 'The previewId from the matching prepare_ tool, after the teacher said yes to that preview.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['previewId'], 'properties': {'previewId': {'type': 'string', 'maxLength': 200, 'minLength': 20, 'description': 'The previewId from the matching prepare_ tool, after the teacher said yes to that preview.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['previewId'], 'properties': {'previewId': {'type': 'string', 'maxLength': 200, 'minLength': 20, 'description': 'The previewId from the matching prepare_ tool, after the teacher said yes to that preview.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['previewId'], 'properties': {'previewId': {'type': 'string', 'maxLength': 200, 'minLength': 20, 'description': 'The previewId from the matching prepare_ tool, after the teacher said yes to that preview.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['title', 'subjectSlug', 'sections', 'requestId'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Default due time for every class.'}, 'title': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'classes': {'type': 'array', 'items': {'type': 'object', 'required': ['classId'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'ISO date-time with timezone offset.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}}, 'additionalProperties': False}, 'maxItems': 12, 'description': 'Classes to target, each with an optional due date.'}, 'sections': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['type', 'questionCount', 'style', 'units', 'avoidRepeats'], 'properties': {'type': {'type': 'string', 'const': 'multiple_choice'}, 'style': {'enum': ['exam', 'comprehension', 'vocabulary'], 'type': 'string', 'default': 'exam', 'description': 'exam = AP-style (with stimulus sets where the exam has them); comprehension or vocabulary checks.'}, 'units': {'type': 'array', 'items': {'type': 'object', 'required': ['unitId'], 'properties': {'unitId': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'description': 'Unit id from get_subject_outline; null = whole course.'}, 'topicIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 60, 'description': 'Topic ids to narrow to.'}, 'questionCount': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Omit to split the total evenly.'}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1}, 'skillId': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'description': 'Optional CED skill id to narrow to.'}, 'avoidRepeats': {'type': 'boolean', 'default': True, 'description': 'Skip questions this teacher already published.'}, 'questionCount': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Total questions in this section.'}, 'timeLimitMinutes': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'description': 'Omit for untimed.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'questionId'], 'properties': {'type': {'type': 'string', 'const': 'free_response'}, 'questionId': {'type': 'string', 'pattern': '^frq:[\\w-]+$|^saq:[\\w-]+(:[A-Za-z])?$', 'description': 'An frq: or saq: id from search_question_bank.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'resourceId', 'readingQuestions'], 'properties': {'type': {'type': 'string', 'const': 'reading'}, 'resourceId': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'A resource id from list_teaching_resources.'}, 'readingQuestions': {'type': 'boolean', 'default': False, 'description': 'Add reading-check questions (study guides and AMSCO guided notes).'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'unitIds'], 'properties': {'type': {'type': 'string', 'const': 'diagnostic'}, 'unitIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 15, 'minItems': 1, 'description': 'Unit ids from get_subject_outline.'}, 'unitLabels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 15}}, 'additionalProperties': False}]}, 'maxItems': 20, 'minItems': 1}, 'settings': {'type': 'object', 'properties': {'timerMode': {'enum': ['strict', 'flexible', 'none'], 'type': 'string'}, 'maxAttempts': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'scoringMode': {'enum': ['ai', 'self', 'teacher'], 'type': 'string', 'description': 'Who scores free responses.'}, 'notifications': {'type': 'object', 'properties': {'onPublish': {'type': 'boolean'}, 'dueReminder': {'type': 'boolean'}, 'onResultsRelease': {'type': 'boolean'}}, 'additionalProperties': False}, 'resultRelease': {'enum': ['immediate', 'manual', 'scheduled'], 'type': 'string', 'description': 'When students see results.'}, 'durationMinutes': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}]}}, 'additionalProperties': False}, 'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$', 'description': 'A unique id you generate for this action. Reuse it only when retrying the same action.'}, 'availableAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'When it opens, ISO with offset.'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Subject, e.g. apush or ap-bio.'}, 'instructions': {'type': 'string', 'maxLength': 5000}, 'courseVariant': {'enum': ['ap-calc-ab', 'ap-calc-bc'], 'type': 'string', 'description': 'AP Calculus only: ap-calc-ab or ap-calc-bc. Omit to use the course the target classes share.'}, 'resultRelease': {'enum': ['immediate', 'manual', 'scheduled'], 'type': 'string', 'description': 'When students see results.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classes', 'requestId'], 'properties': {'classes': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'subjectSlug'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'e.g. "Period 3 APUSH".'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Subject, e.g. apush or ap-bio.'}, 'courseVariant': {'enum': ['ap-calc-ab', 'ap-calc-bc'], 'type': 'string', 'description': 'AP Calculus only: ap-calc-ab or ap-calc-bc.'}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 1}, 'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$', 'description': 'A unique id you generate for this action. Reuse it only when retrying the same action.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'requestId'], 'properties': {'title': {'type': 'string', 'maxLength': 200}, 'prompt': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 20000, 'minLength': 20, 'description': 'The question exactly as the teacher assigned it.'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['data', 'mediaType'], 'properties': {'data': {'type': 'string', 'maxLength': 6000000, 'minLength': 1, 'description': 'Base64 image, no data: prefix.'}, 'mediaType': {'enum': ['image/jpeg', 'image/png', 'image/webp'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 4, 'description': 'Visuals the question depends on.'}, 'frqType': {'type': 'string', 'maxLength': 120, 'description': 'Question type as Fiveable names it, e.g. "Long Essay Question (LEQ)". Omit to get the list.'}}, 'description': "The teacher's own question, when not a Fiveable one.", 'additionalProperties': False}, 'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$', 'description': 'A unique id you generate for this action. Reuse it only when retrying the same action.'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'e.g. apush or ap-bio.'}, 'fiveableQuestionId': {'type': 'string', 'maxLength': 120, 'description': 'frq:â\x80¦ or saq:â\x80¦ from search_question_bank, or frq: plus the FRQ id from get_frq.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'requestId'], 'properties': {'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$', 'description': 'A unique id you generate for this action. Reuse it only when retrying the same action.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId'], 'properties': {'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId'], 'properties': {'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId'], 'properties': {'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['cheatsheetId', 'page', 'limit'], 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 32, 'minimum': 1}, 'limit': {'type': 'integer', 'default': 1, 'maximum': 3, 'minimum': 1}, 'cheatsheetId': {'type': 'string', 'pattern': '^cs_[a-f0-9]{24}$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId'], 'properties': {'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['days'], 'properties': {'days': {'type': 'integer', 'default': 0, 'maximum': 3650, 'minimum': 0, 'description': 'Look back this many days. 0 means this school year.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Limit to one class (id from list_classes).'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one subject, e.g. apush or ap-bio.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one assignment (id from list_coursework).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'query', 'maximumSections', 'maximumTokens'], 'properties': {'query': {'type': 'string', 'minLength': 2, 'description': 'The concept or question the student needs help with.'}, 'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'guideSlug': {'type': 'string', 'description': 'Optional exact guide reference from get_subject_outline or search_content.'}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio". A course name such as "AP Biology" also resolves.'}, 'maximumTokens': {'type': 'integer', 'default': 1800, 'maximum': 4000, 'minimum': 250}, 'maximumSections': {'type': 'integer', 'default': 3, 'maximum': 5, 'minimum': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'essayHandle', 'includeText'], 'properties': {'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'essayHandle': {'type': 'string', 'pattern': '^E-[a-f0-9]{6}$', 'description': 'Essay handle from get_grading_results, e.g. E-3b91c0.'}, 'includeText': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'unitNumber': {'type': 'integer', 'maximum': 99, 'minimum': 1}, 'subjectSlug': {'type': 'string', 'pattern': '^[a-z0-9-]+$', 'maxLength': 100}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['frqId'], 'properties': {'frqId': {'type': 'string', 'minLength': 1, 'description': 'FRQ id from list_frqs.'}, 'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'filter', 'offset', 'limit'], 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1}, 'filter': {'enum': ['all', 'needs_review', 'draft', 'approved', 'failed'], 'type': 'string', 'default': 'all'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug'], 'properties': {'chapterSlug': {'type': 'string', 'maxLength': 100, 'description': 'Chapter slug from the chapter list, e.g. chapter-1-1.'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['guideId'], 'properties': {'guideId': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Study guide document id, or study-guide: resource id from list_teaching_resources.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'termSlug'], 'properties': {'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'termSlug': {'type': 'string', 'minLength': 1, 'description': 'Key term slug or the term itself, e.g. "natural-selection".'}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'questionIds'], 'properties': {'purpose': {'enum': ['slides', 'worksheet', 'game', 'notes', 'quiz', 'other'], 'type': 'string', 'description': 'What the teacher is making. Used only to improve Fiveable; changes nothing in the result.'}, 'questionIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '^(mcq|stimulus-set|frq):[\\w-]+$|^saq:[\\w-]+:[A-Za-z]$', 'description': 'Question id from search_question_bank, e.g. mcq:64fâ\x80¦ or stimulus-set:64fâ\x80¦.'}, 'maxItems': 40, 'minItems': 1}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['days'], 'properties': {'days': {'type': 'integer', 'default': 0, 'maximum': 3650, 'minimum': 0, 'description': 'Look back this many days. 0 means this school year.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Limit to one class (id from list_classes).'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one subject, e.g. apush or ap-bio.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one assignment (id from list_coursework).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['days'], 'properties': {'days': {'type': 'integer', 'default': 0, 'maximum': 3650, 'minimum': 0, 'description': 'Look back this many days. 0 means this school year.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Limit to one class (id from list_classes).'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one subject, e.g. apush or ap-bio.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one assignment (id from list_coursework).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['handle', 'days'], 'properties': {'days': {'type': 'integer', 'default': 0, 'maximum': 3650, 'minimum': 0, 'description': 'Look back this many days. 0 means this school year.'}, 'handle': {'type': 'string', 'pattern': '^S-[a-f0-9]{6}$', 'description': "The student's handle, e.g. S-4f2a1c."}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Limit to one class (id from list_classes).'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one subject, e.g. apush or ap-bio.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one assignment (id from list_coursework).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'guideSlug'], 'properties': {'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'guideSlug': {'type': 'string', 'minLength': 2, 'description': 'Canonical guide reference from get_subject_outline, content slug, document id, or title, e.g. "/ap-bio/unit-2/cell-structure/study-guide/abc123" or "cell-structure".'}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug'], 'properties': {'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'submissionId', 'includeText'], 'properties': {'includeText': {'type': 'boolean', 'default': False}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework or list_submissions_to_review.'}, 'submissionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Submission id from list_submissions_to_review.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'unitSlug'], 'properties': {'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'unitSlug': {'type': 'string', 'minLength': 1, 'description': 'Unit slug from get_subject_outline, e.g. "unit-1".'}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'files', 'uploads'], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['fileName', 'mediaType', 'dataBase64'], 'properties': {'fileName': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'mediaType': {'type': 'string', 'maxLength': 120, 'description': 'e.g. application/pdf, image/jpeg.'}, 'dataBase64': {'type': 'string', 'maxLength': 4200000, 'minLength': 1}}, 'additionalProperties': False}, 'default': [], 'maxItems': 3}, 'uploads': {'type': 'array', 'items': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'file_name': {'type': 'string', 'maxLength': 200}, 'mime_type': {'type': 'string', 'maxLength': 120}, 'download_url': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}, 'additionalProperties': False}, 'default': [], 'maxItems': 3, 'description': 'Files the teacher attached in ChatGPT, passed by reference.'}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'courseId', 'courseWorkId', 'turnIns'], 'properties': {'turnIns': {'type': 'array', 'items': {'type': 'object', 'required': ['handle'], 'properties': {'text': {'type': 'string', 'maxLength': 50000, 'minLength': 1, 'description': 'Optional teacher-provided work. Omit to read the authorized Classroom file through Fiveable.'}, 'handle': {'type': 'string', 'pattern': '^T-[a-f\\d]{6}$', 'description': 'Turn-in handle from list_google_classroom_work.'}}, 'additionalProperties': False}, 'maxItems': 150, 'minItems': 1}, 'courseId': {'type': 'string', 'pattern': '^[\\w-]{1,64}$', 'description': 'Id from list_google_classroom_work.'}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'courseWorkId': {'type': 'string', 'pattern': '^[\\w-]{1,64}$', 'description': 'Id from list_google_classroom_work.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'essays', 'transcribedFromPhotos', 'teacherConfirmedTranscription'], 'properties': {'essays': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 60000, 'minLength': 1}, 'studentName': {'type': 'string', 'maxLength': 120, 'description': 'As written on the work. Omit if unknown.'}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'transcribedFromPhotos': {'type': 'boolean', 'default': False}, 'teacherConfirmedTranscription': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'classId', 'matches'], 'properties': {'classId': {'anyOf': [{'type': 'string', 'pattern': '^[a-f\\d]{24}$'}, {'type': 'null'}], 'description': 'Class id from list_classes, or null to unlink.'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['essayHandle', 'studentHandle'], 'properties': {'essayHandle': {'type': 'string', 'pattern': '^E-[a-f0-9]{6}$', 'description': 'Essay handle from get_grading_results, e.g. E-3b91c0.'}, 'studentHandle': {'type': 'string', 'pattern': '^S-[a-f0-9]{6}$'}}, 'additionalProperties': False}, 'default': [], 'maxItems': 200}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['limit'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'cursor': {'type': 'string', 'pattern': '^cs_[a-f0-9]{24}$'}, 'unitNumber': {'type': 'integer', 'maximum': 30, 'minimum': 0}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 2}, 'courseVariant': {'type': 'string', 'maxLength': 100, 'minLength': 2}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['includeArchived'], 'properties': {'includeArchived': {'type': 'boolean', 'default': False, 'description': 'List archived classes instead of active ones.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status', 'limit'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'Cursor from a previous page.'}, 'status': {'enum': ['all', 'draft', 'scheduled', 'active', 'needs_review', 'closed', 'handed_back', 'archived'], 'type': 'string', 'default': 'all', 'description': 'Ledger status filter. needs_review shows work waiting for the teacher.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'description': 'Limit to one subject, e.g. ap-bio or apush.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'limit'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Maximum prompts to list.'}, 'cursor': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{1,512}$'}, 'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'unitId': {'type': 'string', 'maxLength': 100, 'description': 'Unit ID or public unit slug from get_subject_outline.'}, 'frqType': {'type': 'string', 'description': 'Optional FRQ type filter, e.g. "DBQ", "LEQ", "SAQ". Varies by subject.'}, 'excludeIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 100}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio". A course name such as "AP Biology" also resolves.'}, 'courseVariant': {'enum': ['ab', 'bc'], 'type': 'string', 'description': "AP Calculus only (subject ap-calc): 'ab' hides BC-only units, topics and FRQs; 'bc' includes them. Pass the course of the class or assignment draft you are building for ('ab' for ap-calc-ab, 'bc' for ap-calc-bc)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'courseId': {'type': 'string', 'pattern': '^[\\w-]{1,64}$', 'description': 'Id from list_google_classroom_work.'}, 'courseWorkId': {'type': 'string', 'pattern': '^[\\w-]{1,64}$', 'description': 'Id from list_google_classroom_work.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['limit'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'page', 'limit', 'letter'], 'properties': {'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': '1-indexed page number.'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Terms per page.'}, 'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'letter': {'type': 'string', 'default': 'ALL', 'description': 'Filter to terms starting with one letter, or "ALL" for every term.'}, 'subjectSlug': {'type': 'string', 'minLength': 2, 'description': 'Fiveable subject slug, e.g. "ap-bio" or "apush". The course name or a close approximation such as "ap-biology" also resolves. Use list_subjects to find it.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'search': {'type': 'string', 'description': 'Optional case-insensitive filter on subject name, e.g. "bio" or "history".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['filter', 'limit'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 50, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 500}, 'filter': {'enum': ['all', 'review', 'handback'], 'type': 'string', 'default': 'all'}, 'subjectSlug': {'type': 'string', 'maxLength': 100}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework or list_submissions_to_review.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'offset', 'limit'], 'properties': {'kind': {'enum': ['study-guide', 'unit-review', 'guided-notes', 'key-terms', 'cheatsheet', 'visual-cheatsheet'], 'type': 'string'}, 'unit': {'type': 'string', 'maxLength': 200, 'description': "Exact unit label from the result's unit list."}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'essayHandle', 'part', 'points', 'reasonCategory', 'reason'], 'properties': {'part': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': 'Rubric part as shown in get_essay_feedback, e.g. "A" or "Thesis".'}, 'points': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'reason': {'type': 'string', 'default': '', 'maxLength': 2000}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'essayHandle': {'type': 'string', 'pattern': '^E-[a-f0-9]{6}$', 'description': 'Essay handle from get_grading_results, e.g. E-3b91c0.'}, 'reasonCategory': {'enum': ['evidence', 'reasoning', 'accuracy', 'rubric', 'teacher-judgment', 'other'], 'type': 'string', 'default': 'teacher-judgment'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'submissionId', 'itemId', 'part', 'points', 'reasonCategory', 'reason'], 'properties': {'part': {'type': 'string', 'maxLength': 20, 'minLength': 1}, 'itemId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'points': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'reason': {'type': 'string', 'default': '', 'maxLength': 2000}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework or list_submissions_to_review.'}, 'submissionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Submission id from list_submissions_to_review.'}, 'reasonCategory': {'enum': ['evidence', 'reasoning', 'accuracy', 'rubric', 'teacher-judgment', 'other'], 'type': 'string', 'default': 'teacher-judgment'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'sectionNumber', 'questionNumber', 'correctAnswers', 'shareCorrection'], 'properties': {'note': {'type': 'string', 'maxLength': 2000, 'description': 'A note for Fiveable with the shared fix.'}, 'explanation': {'type': 'string', 'maxLength': 5000, 'description': "Why this answer is right, in the teacher's words; defaults to the current explanation."}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework.'}, 'sectionNumber': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': "1 for the assignment's first section."}, 'correctAnswers': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Ha-h]$'}, 'maxItems': 8, 'minItems': 1, 'description': 'The right answer letters, e.g. ["C"].'}, 'questionNumber': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Question number within that section.'}, 'shareCorrection': {'type': 'boolean', 'default': False, 'description': 'Also send the fix to Fiveable so the question is corrected for everyone.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'classes', 'anyoneWithLink', 'timeZone'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Due time for the anyone-with-link publish.'}, 'classes': {'type': 'array', 'items': {'type': 'object', 'required': ['classId'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'opensAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'When students can start; omit for now.'}, 'resultsReleaseAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Only for scheduled release.'}}, 'additionalProperties': False}, 'default': [], 'maxItems': 12}, 'timeZone': {'type': 'string', 'default': 'America/New_York', 'maxLength': 64, 'description': "The teacher's IANA time zone, e.g. America/Chicago, so the preview shows their local times."}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework.'}, 'resultRelease': {'enum': ['immediate', 'manual', 'scheduled'], 'type': 'string', 'description': "Defaults to the draft's setting."}, 'anyoneWithLink': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId'], 'properties': {'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId'], 'properties': {'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'action', 'changes', 'timeZone'], 'properties': {'action': {'enum': ['close', 'reopen', 'change_dates'], 'type': 'string'}, 'changes': {'type': 'array', 'items': {'type': 'object', 'required': ['classId'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, 'classId': {'anyOf': [{'type': 'string', 'pattern': '^[a-f\\d]{24}$'}, {'type': 'null'}], 'description': 'Class id, or null for the anyone-with-the-link publication.'}, 'opensAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}}, 'additionalProperties': False}, 'default': [], 'maxItems': 12, 'description': 'For change_dates only.'}, 'timeZone': {'type': 'string', 'default': 'America/New_York', 'maxLength': 64, 'description': "The teacher's IANA time zone, e.g. America/Chicago, so the preview shows their local times."}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId'], 'properties': {'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Assignment id from list_coursework.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'questionId'], 'properties': {'questionId': {'type': 'string', 'pattern': '^(mcq|stimulus-set|frq):[\\w-]+$|^saq:[\\w-]+:[A-Za-z]$', 'description': 'Question id from search_question_bank, e.g. mcq:64fâ\x80¦ or stimulus-set:64fâ\x80¦.'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId', 'handles'], 'properties': {'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'handles': {'type': 'array', 'items': {'type': 'string', 'pattern': '^S-[a-f0-9]{6}$', 'description': 'Student handle from get_class, e.g. S-4f2a1c.'}, 'maxItems': 200, 'minItems': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contentType', 'contentId', 'description', 'requestId', 'confirmReport'], 'properties': {'contentId': {'type': 'string', 'maxLength': 250, 'minLength': 2, 'description': 'Exact guide/question/FRQ ID, or the exact canonical key-term path from Fiveable.'}, 'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$'}, 'contentType': {'enum': ['studyGuide', 'keyTerm', 'practiceQuestion', 'frq'], 'type': 'string'}, 'description': {'type': 'string', 'maxLength': 2000, 'minLength': 10, 'description': 'Only the issue the student wants reported; no conversation transcript or unrelated personal notes.'}, 'confirmReport': {'type': 'boolean', 'const': True, 'description': 'True only after the student explicitly requests sending this issue to Fiveable.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'essayHandle', 'requestId'], 'properties': {'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$', 'description': 'A unique id you generate for this action. Reuse it only when retrying the same action.'}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'essayHandle': {'type': 'string', 'pattern': '^E-[a-f0-9]{6}$', 'description': 'Essay handle from get_grading_results, e.g. E-3b91c0.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['undoId'], 'properties': {'undoId': {'type': 'string', 'pattern': '^undo_[\\w-]{8,40}$', 'description': 'undoId from update_assignment_draft.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['undoId'], 'properties': {'undoId': {'type': 'string', 'pattern': '^undo_[\\w-]{8,40}$', 'description': 'undoId from remove_students.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'submissionId'], 'properties': {'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework or list_submissions_to_review.'}, 'itemFeedback': {'type': 'array', 'items': {'type': 'object', 'required': ['itemId', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 10000}, 'itemId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'maxItems': 20}, 'submissionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Submission id from list_submissions_to_review.'}, 'overallFeedback': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId', 'submissionId', 'itemScores'], 'properties': {'itemScores': {'type': 'array', 'items': {'type': 'object', 'required': ['itemId', 'points'], 'properties': {'itemId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'points': {'type': 'number', 'maximum': 500, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1}, 'assignmentId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Assignment id from list_coursework or list_submissions_to_review.'}, 'itemFeedback': {'type': 'array', 'items': {'type': 'object', 'required': ['itemId', 'text'], 'properties': {'text': {'type': 'string', 'maxLength': 10000}, 'itemId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, 'maxItems': 20}, 'submissionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Submission id from list_submissions_to_review.'}, 'overallFeedback': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query', 'limit'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum results to return.'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'What to search for, e.g. "photosynthesis light reactions".'}, 'intent': {'enum': ['explain', 'quiz', 'notes', 'frq', 'research'], 'type': 'string', 'description': "Privacy-safe reason for the request. Use explain, quiz, notes, frq, or research; never send the student's raw prompt for analytics."}, 'subjectSlug': {'type': 'string', 'description': 'Optional: restrict the search to one subject.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subjectSlug', 'excludeAssigned', 'offset', 'limit'], 'properties': {'type': {'enum': ['mcq', 'question-set', 'saq', 'frq'], 'type': 'string', 'description': 'mcq = single question, question-set = stimulus set, saq, or frq (LEQ, DBQ and other FRQs).'}, 'unit': {'type': 'string', 'maxLength': 200, 'description': 'Exact unit label from filters.units.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 200, 'description': 'Words to match in the question.'}, 'skill': {'type': 'string', 'maxLength': 200, 'description': 'Exact skill label from filters.skills.'}, 'topic': {'type': 'string', 'maxLength': 200, 'description': 'Exact topic label from filters.topics.'}, 'format': {'enum': ['multiple-choice', 'free-response'], 'type': 'string'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0}, 'stimulus': {'enum': ['includes-stimulus', 'no-stimulus'], 'type': 'string'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Subject, e.g. ap-bio or apush.'}, 'courseVariant': {'enum': ['ap-calc-ab', 'ap-calc-bc'], 'type': 'string', 'description': 'AP Calculus only: ap-calc-ab or ap-calc-bc, the course of the class or draft you are building for.'}, 'excludeAssigned': {'type': 'boolean', 'default': False, 'description': 'Hide questions this teacher already published.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId', 'defaults'], 'properties': {'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'defaults': {'type': 'object', 'properties': {'timerMode': {'enum': ['strict', 'flexible', 'none'], 'type': 'string'}, 'maxAttempts': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'scoringMode': {'enum': ['ai', 'self', 'teacher'], 'type': 'string', 'description': 'Who scores free responses.'}, 'notifications': {'type': 'object', 'properties': {'onPublish': {'type': 'boolean'}, 'dueReminder': {'type': 'boolean'}, 'onResultsRelease': {'type': 'boolean'}}, 'additionalProperties': False}, 'resultRelease': {'enum': ['immediate', 'manual', 'scheduled'], 'type': 'string', 'description': 'When students see results.'}, 'durationMinutes': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}]}}, 'description': "The class's new defaults; unset fields fall back to Fiveable's.", 'additionalProperties': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId', 'retryFailed', 'requestId'], 'properties': {'requestId': {'type': 'string', 'pattern': '^[\\w-]{8,128}$', 'description': 'A unique id you generate for this action. Reuse it only when retrying the same action.'}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'retryFailed': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['assignmentId'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Default due time for every class.'}, 'title': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'classes': {'type': 'array', 'items': {'type': 'object', 'required': ['classId'], 'properties': {'dueAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'ISO date-time with timezone offset.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}}, 'additionalProperties': False}, 'maxItems': 12, 'minItems': 1, 'description': 'Replaces the class targets.'}, 'settings': {'type': 'object', 'properties': {'timerMode': {'enum': ['strict', 'flexible', 'none'], 'type': 'string'}, 'maxAttempts': {'type': 'integer', 'maximum': 1000, 'minimum': 1}, 'scoringMode': {'enum': ['ai', 'self', 'teacher'], 'type': 'string', 'description': 'Who scores free responses.'}, 'notifications': {'type': 'object', 'properties': {'onPublish': {'type': 'boolean'}, 'dueReminder': {'type': 'boolean'}, 'onResultsRelease': {'type': 'boolean'}}, 'additionalProperties': False}, 'resultRelease': {'enum': ['immediate', 'manual', 'scheduled'], 'type': 'string', 'description': 'When students see results.'}, 'durationMinutes': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}]}}, 'description': 'Merged into the current settings.', 'additionalProperties': False}, 'addSections': {'type': 'array', 'items': {'oneOf': [{'type': 'object', 'required': ['type', 'questionCount', 'style', 'units', 'avoidRepeats'], 'properties': {'type': {'type': 'string', 'const': 'multiple_choice'}, 'style': {'enum': ['exam', 'comprehension', 'vocabulary'], 'type': 'string', 'default': 'exam', 'description': 'exam = AP-style (with stimulus sets where the exam has them); comprehension or vocabulary checks.'}, 'units': {'type': 'array', 'items': {'type': 'object', 'required': ['unitId'], 'properties': {'unitId': {'anyOf': [{'type': 'string', 'maxLength': 200, 'minLength': 1}, {'type': 'null'}], 'description': 'Unit id from get_subject_outline; null = whole course.'}, 'topicIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 60, 'description': 'Topic ids to narrow to.'}, 'questionCount': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Omit to split the total evenly.'}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1}, 'skillId': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'description': 'Optional CED skill id to narrow to.'}, 'avoidRepeats': {'type': 'boolean', 'default': True, 'description': 'Skip questions this teacher already published.'}, 'questionCount': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Total questions in this section.'}, 'timeLimitMinutes': {'anyOf': [{'type': 'integer', 'maximum': 300, 'minimum': 1}, {'type': 'null'}], 'description': 'Omit for untimed.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'questionId'], 'properties': {'type': {'type': 'string', 'const': 'free_response'}, 'questionId': {'type': 'string', 'pattern': '^frq:[\\w-]+$|^saq:[\\w-]+(:[A-Za-z])?$', 'description': 'An frq: or saq: id from search_question_bank.'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'resourceId', 'readingQuestions'], 'properties': {'type': {'type': 'string', 'const': 'reading'}, 'resourceId': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'A resource id from list_teaching_resources.'}, 'readingQuestions': {'type': 'boolean', 'default': False, 'description': 'Add reading-check questions (study guides and AMSCO guided notes).'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'unitIds'], 'properties': {'type': {'type': 'string', 'const': 'diagnostic'}, 'unitIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 15, 'minItems': 1, 'description': 'Unit ids from get_subject_outline.'}, 'unitLabels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 15}}, 'additionalProperties': False}]}, 'maxItems': 20}, 'availableAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'When it opens, ISO with offset.'}, 'assignmentId': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'instructions': {'type': 'string', 'maxLength': 5000}, 'courseVariant': {'enum': ['ap-calc-ab', 'ap-calc-bc'], 'type': 'string', 'description': 'AP Calculus only: switch the draft to ap-calc-ab or ap-calc-bc. Its multiple choice, free-response and diagnostic sections must be removed in the same call (add new ones there too); readings stay.'}, 'resultRelease': {'enum': ['immediate', 'manual', 'scheduled'], 'type': 'string', 'description': 'When students see results.'}, 'removeSectionIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 20}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}, 'subjectSlug': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'courseVariant': {'enum': ['ap-calc-ab', 'ap-calc-bc'], 'type': 'string', 'description': 'AP Calculus only: ap-calc-ab or ap-calc-bc.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['sessionId'], 'properties': {'prompt': {'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'maxLength': 20000, 'minLength': 20, 'description': 'The question exactly as the teacher assigned it.'}, 'images': {'type': 'array', 'items': {'type': 'object', 'required': ['data', 'mediaType'], 'properties': {'data': {'type': 'string', 'maxLength': 6000000, 'minLength': 1, 'description': 'Base64 image, no data: prefix.'}, 'mediaType': {'enum': ['image/jpeg', 'image/png', 'image/webp'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 4, 'description': 'Visuals the question depends on.'}, 'frqType': {'type': 'string', 'maxLength': 120, 'description': 'Question type as Fiveable names it, e.g. "Long Essay Question (LEQ)". Omit to get the list.'}}, 'additionalProperties': False}, 'sessionId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Grading session id from list_grading_sessions or create_grading_session.'}, 'fiveableQuestionId': {'type': 'string', 'maxLength': 120}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['classId', 'handle'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Full name as the teacher wants it shown.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 254}, 'handle': {'type': 'string', 'pattern': '^S-[a-f0-9]{6}$', 'description': 'Student handle from get_class, e.g. S-4f2a1c.'}, 'classId': {'type': 'string', 'pattern': '^[a-f\\d]{24}$', 'description': 'Class id from list_classes.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['status'], 'properties': {'text': {'type': 'string', 'description': 'Readable tool result text for clients that consume structured output.'}, 'status': {'type': 'string', 'description': 'Operation status: completed, pending, partial, failed, unavailable, or a domain-specific outcome.'}}, 'additionalProperties': {}}
Recent tool changes
Similar MCP servers
ClusterHack
Supports hackathon operations including events, registrations, teams, submissions, judging, schedules, companies and leaderboards.
Fluid Recall
Manages spaced-repetition flashcards with decks, due schedules, reviews, deadline planning, notes, exports, and optional mailbox …
getjobzi-mcp
Searches UK jobs and supports resume analysis, job matching, cover letters, career planning, skill-gap analysis, and salary bench…
FoxForm
Creates, publishes, and analyzes scored forms and quizzes with branching screen logic, response collection, and CSV export.
ScholarNet — Study Plan & Thesis Tools
Creates study plans, thesis statements, citations, flashcards, quizzes, and tutor explanations for students.
Career Command
Provides paid interview practice and career preparation, including question generation, answer evaluation, story recovery, and in…
AnkiMCP Server
Exposes a local Anki flashcard collection to AI assistants.
Anki MCP Server
Manages Anki flashcards, notes, media, decks, and adaptive review through AnkiConnect.