
MCP server enabling AI assistants to interact with Gradescope — 34 tools for course management, batch grading, rubric CRUD, and smart reading strategies
概览
An MCP (Model Context Protocol) server for Gradescope that exposes course management, grading, regrade review, statistics, and AI-assisted grading workflows to MCP clients. The server is designed for instructors and TAs who want to use AI agents with real Gradescope data while keeping every write behind a preview and an explicit confirmation step. This repository also includes a reusable skill at skills/gradescope-assisted-grading/SKILL.md for human-approved grading workflows. - 39 MCP tools (24 read-only, 11 that write to Gradescope, 4 that only write to the private local cache) - 3 MCP resources (1 static resource, 2 URI templates) - 7 MCP prompts - Python 3.10+ - MCP Python SDK v2 (mcp>=2.2, =1.8.1 - Package manager: uv - Offline test suite: uv run pytest -q (the current count is recorded in DEVLOG.
README
以下为原文 README 节选,完整内容请查看原文。
Gradescope MCP Server
An MCP (Model Context Protocol) server for Gradescope that exposes course management, grading, regrade review, statistics, and AI-assisted grading workflows to MCP clients.
The server is designed for instructors and TAs who want to use AI agents with real Gradescope data while keeping every write behind a preview and an explicit confirmation step.
This repository also includes a reusable skill at
skills/gradescope-assisted-grading/SKILL.md for human-approved grading
workflows.
Current Status
- 39 MCP tools (24 read-only, 11 that write to Gradescope, 4 that only write to the private local cache)
- 3 MCP resources (1 static resource, 2 URI templates)
- 7 MCP prompts
- Python 3.10+
- MCP Python SDK v2 (
mcp>=2.2,=1.8.1 - Package manager:
uv - Offline test suite:
uv run pytest -q(the current count is recorded inDEVLOG.md)
What The Project Provides
Read-oriented workflows
- Course discovery and assignment listing
- Assignment outline parsing for online and scanned-PDF assignments
- Roster inspection with a custom HTML parser
- Submission listing for multiple assignment types
- Grading progress, rubric context, answer groups, regrades, and statistics
- Workflow helpers that write grading artifacts, answer-key snapshots and page images to a private per-user cache (see Local cache; the tools print the real path)
Write-oriented workflows
- Uploading submissions
- Setting student extensions
- Modifying assignment dates
- Renaming assignments
- Changing a programming assignment’s autograder Docker image
- Applying grades, one at a time or in batches
- Creating, updating, and deleting rubric items
- Batch grading answer groups
Every tool that writes to Gradescope returns a preview unless it is called
with confirm_write=True. See Write safety.
Tool Inventory
The Kind column matches the tool annotations clients see: read-only
(readOnlyHint), write (changes Gradescope data; destructiveHint, has
confirm_write), or local cache (reads Gradescope, writes files only to
the private local cache).
Courses And Assignments
| Tool | Kind | Description |
|---|---|---|
tool_list_courses |
read-only | List all courses grouped by role (instructor vs student) |
tool_get_assignments |
read-only | List a course’s assignments with dates; status and grade for student accounts (N/A for staff) |
tool_get_assignment_details |
read-only | One assignment’s name and dates (status and grade for student accounts) |
tool_upload_submission |
write | Upload local files as a new submission from the logged-in account (path restrictions and success check below) |
Instructor / TA Management
| Tool | Kind | Description |
|---|
安装
npx @modelcontextprotocol/inspector uv run python -m gradescope_mcp配置
{
"mcpServers": {
"gradescope": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/gradescope-mcp",
"python",
"-m",
"gradescope_mcp"
],
"env": {
"GRADESCOPE_EMAIL": "[email protected]",
"GRADESCOPE_PASSWORD": "your_password"
}
}
}
}