| tool_list_courses | List all Gradescope courses for the authenticated user. Returns courses grouped by role (instructor vs student),
including course ID, name, semester, and assignment count. |
| tool_get_assignments | Get all assignments for a specific Gradescope course. Returns a table of assignments with names, IDs, dates, status, and grades.
Args:
course_id: The Gradescope course ID (found via list_courses).
|
| tool_get_assignment_details | Get detailed information about a specific assignment. Returns the assignment name, dates, submission status, and grade.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID (found via get_assignments).
|
| tool_get_course_roster | Get the full roster (students, TAs, instructors) for a course. Returns a table grouped by role with name, email, SID, and submission count.
Requires instructor or TA access to the course.
Args:
course_id: The Gradescope course ID.
|
| tool_upload_submission | Upload files as a submission to a Gradescope assignment. Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
file_paths: List of absolute file paths to upload.
leaderboard_name: Optional leaderboard display name.
confirm_write: Must be True to perform the upload.
|
| tool_get_extensions | Get all student extensions for a specific assignment. Returns a table of extensions with user ID, name, and modified dates.
Requires instructor or TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_set_extension | Add or update an extension for a student on an assignment. If the student already has an extension, it will be overwritten.
At least one date must be provided. Dates must be in order:
release_date <= due_date <= late_due_date.
Requires instructor or TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
user_id: The student's Gradescope user ID (found via get_course_roster).
release_date: Extension release date (ISO format: YYYY-MM-DDTHH:MM).
due_date: Extension due date (ISO format: YYYY-MM-DDTHH:MM).
late_due_date: Extension late due date (ISO format: YYYY-MM-DDTHH:MM).
confirm_write: Must be True to apply the extension update.
|
| tool_modify_assignment_dates | Modify the dates of an assignment (release, due, late due). At least one date must be provided. Only the provided dates will be changed.
Requires instructor or TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
release_date: New release date (ISO format: YYYY-MM-DDTHH:MM), or None to keep unchanged.
due_date: New due date (ISO format: YYYY-MM-DDTHH:MM), or None to keep unchanged.
late_due_date: New late due date (ISO format: YYYY-MM-DDTHH:MM), or None to keep unchanged.
confirm_write: Must be True to apply the date change.
|
| tool_rename_assignment | Rename an assignment on Gradescope. Requires instructor or TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
new_title: The new title for the assignment.
confirm_write: Must be True to perform the rename.
|
| tool_get_assignment_submissions | Get all submissions for an assignment (instructor/TA only). Returns a list of submission IDs and file counts.
Note: May be slow for large classes as it fetches each submission individually.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_get_student_submission | Get a specific student's most recent submission (instructor/TA only). Returns links to the submission files.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
student_email: The student's email address.
|
| tool_get_assignment_graders | Get the list of graders assigned to a specific question (instructor/TA only). Args:
course_id: The Gradescope course ID.
question_id: The question ID within the assignment.
|
| tool_get_assignment_outline | Get the question/rubric outline for an assignment. Returns the hierarchical question structure with IDs, types, weights, and
question text. Essential for understanding how an assignment is structured.
Requires instructor/TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_export_assignment_scores | Export per-question scores for an assignment. Returns a summary table with student names, total scores, statistics,
and per-question breakdowns. Requires instructor/TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_get_grading_progress | Get the grading progress dashboard for an assignment. Shows each question's grading status: how many submissions have been graded,
assigned graders, and completion percentage. Requires instructor/TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_get_regrade_requests | List all regrade requests for an assignment. Returns a table of pending and completed regrade requests with student name,
question, grader, status, and identifiers for fetching details.
Requires instructor/TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_get_regrade_detail | Get detailed information about a specific regrade request. Shows the student's regrade message, the current rubric, applied rubric items,
the grader's response (if any), and submission page links. Use question_id and
submission_id from the regrade request listing.
Requires instructor/TA access.
Args:
course_id: The Gradescope course ID.
question_id: The question ID (from get_regrade_requests).
submission_id: The submission ID (from get_regrade_requests).
|
| tool_get_assignment_statistics | Get comprehensive statistics for an assignment. Returns assignment-level summary (mean, median, min/max, std dev) and
per-question breakdowns. Highlights low-scoring questions.
Requires instructor/TA access.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_get_submission_grading_context | Get full grading context for a question submission. Returns current rubric items (with IDs), applied evaluations, score,
comments, point adjustment, navigation URLs (next/prev/ungraded),
and submission page images. Use this before applying grades.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
submission_id: The question submission ID.
|
| tool_apply_grade | Apply a grade to a student's question submission. Can apply/remove rubric items, set point adjustments, and add comments.
**WARNING**: This modifies student grades.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
submission_id: The question submission ID.
rubric_item_ids: List of rubric item IDs to apply (checked). Items NOT
in this list will be unchecked. Pass None to keep unchanged.
point_adjustment: Submission-specific point adjustment. Pass None to keep.
comment: Grader comment. Pass None to keep unchanged.
confidence: Agent's self-assessed grading confidence (0.0-1.0).
Below 0.6 = rejected. 0.6-0.8 = warning. Above 0.8 = OK.
Pass None to skip confidence gating (manual mode).
confirm_write: Must be True to save the grade.
|
| tool_get_question_rubric | Get rubric items for a question without needing a submission ID. Auto-discovers a submission to extract rubric data. Use when you know
the question_id from outline but don't have a submission ID yet.
Args:
course_id: The Gradescope course ID.
question_id: The question ID from outline.
|
| tool_create_rubric_item | Create a new rubric item for a question. **WARNING**: Changes the rubric for ALL submissions.
Weight semantics depend on the question's scoring type:
- **Positive scoring:** Items ADD points (use positive weights).
- **Negative scoring:** Items DEDUCT from max (use negative weights).
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
description: Rubric item description.
weight: Point value — see scoring-type note above.
confirm_write: Must be True to create the rubric item.
|
| tool_get_next_ungraded | Navigate to the next ungraded submission. Returns the full grading context for the next ungraded submission,
or a message that all submissions are graded.
Args:
course_id: The current course ID.
question_id: The current question ID.
submission_id: The current Question Submission ID (optional).
If omitted or invalid (e.g. a Global Submission ID), the tool
will auto-discover a valid submission to navigate from.
output_format: "markdown" (default) or "json".
|
| tool_update_rubric_item | Update an existing rubric item's description or weight. **WARNING**: Changes cascade to ALL submissions with this item applied.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
rubric_item_id: The rubric item ID to update.
description: New description, or None to keep unchanged.
weight: New point value, or None to keep unchanged.
confirm_write: Must be True to apply the update.
|
| tool_delete_rubric_item | Delete a rubric item from a question. **WARNING**: Removes the item from ALL submissions and recalculates scores.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
rubric_item_id: The rubric item ID to delete.
confirm_write: Must be True to delete the item.
|
| tool_get_answer_groups | List all answer groups for a question (AI-Assisted Grading). Shows clusters of similar student answers. Grade one group to
grade all members at once — much more efficient than 1-by-1.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
output_format: "markdown" or "json" for structured output.
|
| tool_get_answer_group_detail | Get detail for one answer group: members, crops, graded status. Use this to inspect what answers are in a group before batch-grading.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
group_id: The answer group ID.
output_format: "markdown" or "json" for structured output.
|
| tool_grade_answer_group | Batch-grade ALL submissions in an answer group at once. **WARNING**: This grades N students at once. Use with caution.
Args:
course_id: The Gradescope course ID.
question_id: The question ID.
group_id: The answer group ID.
rubric_item_ids: Rubric item IDs to apply.
point_adjustment: Point adjustment.
comment: Grader comment.
confirm_write: Must be True to apply grades.
|
| tool_prepare_grading_artifact | Prepare a cached /tmp markdown artifact for grading a question. The artifact includes the prompt, rubric, reference-answer notes, page URLs,
crop regions, and a confidence gate for auto-grading.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
question_id: The question ID to prepare.
submission_id: Optional sample submission ID to use for rubric/page context.
|
| tool_assess_submission_readiness | Assess whether an agent should auto-grade a specific submission. Returns a crop-first read plan, fallback rules for whole-page/adjacent-page
reads, and a coarse confidence score that can be used to skip or escalate.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
question_id: The question ID.
submission_id: The question submission ID.
|
| tool_cache_relevant_pages | Download the crop page and neighboring pages to /tmp for local review. This is useful for scanned exams where the prompt is only available in page
images and where agents may need to inspect adjacent pages before grading.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
question_id: The question ID.
submission_id: The question submission ID.
|
| tool_prepare_answer_key | Prepare a complete answer key for an entire assignment. Extracts ALL questions from the outline (prompt text, reference answers,
explanations) and saves to /tmp/gradescope-answerkey-{assignment_id}.md.
Run this ONCE before grading to avoid re-fetching question details.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
|
| tool_smart_read_submission | Get a smart, tiered reading plan for a student's submission. Returns page URLs in priority order:
- Tier 1: Crop region only (read FIRST)
- Tier 2: Full page (if answer overflows crop)
- Tier 3: Adjacent pages (if still incomplete)
Also returns confidence score and recommended action.
Args:
course_id: The Gradescope course ID.
assignment_id: The assignment ID.
question_id: The question ID.
submission_id: The question submission ID.
|