Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions developers/mcp-server.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
title: "MCP Server for AI Assistance"
description: "Configure and use the Model Context Protocol server to provide AI-powered assistance for course staff"
icon: "brain-circuit"
---

# MCP Server for AI Assistance

Pawtograder includes a Model Context Protocol (MCP) server that enables AI assistants to help course staff support students who are struggling with errors in their programming assignments.

## Overview

The MCP server provides AI assistants with secure, authenticated access to:

- Help requests and discussion threads
- Student submissions and test results
- Build output and error messages
- Assignment context and requirements

This allows course staff to leverage AI tools to quickly understand student issues and provide more effective assistance.

## Authentication

The MCP server uses Supabase OAuth authentication to ensure secure access. Only instructors and graders have access to the MCP server tools.

<Warning>
The MCP server never exposes sensitive user data such as the users table or private profile information. All data access is scoped to course-related information only.
</Warning>

## Available Tools

The MCP server provides the following tools for AI assistants:

### Help Request Tools

- **Fetch help requests**: Retrieve active and historical help requests
- **View help request details**: Access full context including chat history and student information
- **Get discussion threads**: Access discussion board posts and replies

### Submission Tools

- **Fetch submissions**: Retrieve student submissions for assignments
- **View test results**: Access autograder test output and results
- **Get build output**: View compilation and build logs

### Assignment Context

- **Assignment details**: Access assignment descriptions and requirements
- **Handout URL**: Retrieve assignment handout links for full context

## Configuration

To enable AI assistance for your course:

1. Ensure the MCP server is configured with Supabase OAuth credentials
2. Add the `handout_url` field to assignments in the assignments table to provide assignment context
3. Course staff will see an "AI Help" button in help request chats and discussion threads

## Using AI Assistance

When viewing a help request or discussion thread, course staff can click the "AI Help" button to:

1. Generate MCP context for the current conversation
2. Use any MCP-compatible AI client to analyze the situation
3. Get AI-powered insights and suggestions for helping the student

The AI assistant has access to all relevant context about the student's submission, test failures, and the assignment requirements.

## Privacy and Security

The MCP server is designed with privacy in mind:

- Only instructors and graders can access MCP tools
- Student personal information is protected
- All access is logged and auditable
- Data access is scoped to course-related information only

## MCP-Compatible Clients

The MCP server works with any MCP-compatible AI client, including:

- Claude Desktop
- Custom MCP clients
- Other AI assistants that support the Model Context Protocol

Refer to your AI client's documentation for instructions on connecting to an MCP server.
2 changes: 1 addition & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
},
{
"group": "Feature Documentation",
"pages": ["developers/surveys", "developers/polls"]
"pages": ["developers/surveys", "developers/polls", "developers/mcp-server"]
}
]
}
Expand Down
34 changes: 34 additions & 0 deletions staff/assignments/autograding.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,40 @@ The autograder system uses an "overlay grader" architecture that allows flexible

*Detailed documentation coming soon.*

## Test Insights and Error Analysis

Pawtograder provides powerful tools to help instructors understand and respond to common student errors:

### Error Explorer

The error explorer groups similar test failures together, allowing you to:

- View all students affected by a particular error pattern
- Copy affected students' email addresses for bulk communication
- Launch regrading workflows directly from error groups
- Identify systemic issues in assignments or test cases

### Regrade Workflow

When you need to regrade submissions, you can:

1. Launch regrade from the error explorer
2. Preselect affected submissions on the autograder page
3. Choose specific commits or enter a manual SHA in the regrade dialog
4. Auto-promote the new submission if desired

This streamlined workflow makes it easy to respond to discovered issues or updated test cases.

## Empty Submission Detection

The autograder automatically detects empty submissions to help identify students who may need assistance. Empty submissions are flagged when:

- No meaningful code changes are present
- Only starter code or template files exist
- The submission contains no substantive work

This feature helps instructors quickly identify students who may be struggling to get started on an assignment.

## Quickstart: Java and Python

Build system integration guides for common programming languages.
Expand Down
11 changes: 11 additions & 0 deletions staff/assignments/grading-assignments.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,14 @@ You can choose to reuse existing grading assignments (e.g. if you want to assign
Lastly, you can choose to enforce that graders are **not** assigned to the same submission as they were on a prior assignment or rubric. This feature is useful to assign meta-graders, where the meta-grader is a different grader than the one who graded the submission.

You will be able to preview the assignments before creating them, and can manually tweak them through the drag-and-drop interface.

## Grading Status Dashboard

The grading status dashboard provides instructors with a comprehensive overview of grading progress across all assignments. This dashboard helps you:

- Monitor which assignments have pending grading tasks
- Track completion rates for each grader
- Identify bottlenecks in the grading workflow
- View grading assignments by staff member or by assignment

Access the grading status dashboard from the course navigation to get a real-time view of all grading activities and ensure timely completion of grading tasks.
4 changes: 4 additions & 0 deletions staff/assignments/handgrading.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ Instructors can define multiple handgrading rubrics for each assignment, althoug

Once all required rubric checks are done, the grader can click the "Complete Review" button to confirm that they have completed grading. This does **not** release the review to the student, but indicates to the instructor that it **could** be released (at the instructor's discretion).

<Tip>
TAs can edit or delete rubric scores even after completing a review, allowing for corrections and adjustments as needed.
</Tip>

## Grading Submissions That You Have Been Assigned

When you have submissions assigned to grade, you will see a summary of them on the assignment's landing page.
Expand Down
23 changes: 23 additions & 0 deletions staff/office-hours/intro.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,29 @@ This ensures students never miss updates, even while browsing the discussion boa

A help request can be marked as "Resolved" by either a staff member or a student.

## Student Notifications

Students receive multiple types of notifications to stay informed about their help requests:

- **Browser Notifications**: Desktop notifications when staff responds or starts helping
- **Title Bar Updates**: Browser tab title shows status updates
- **Sound Alerts**: Optional audio notifications for important events
- **Favicon Badge**: Visual indicator in browser tabs

Students can test notifications and adjust settings from the help request interface.

## AI Assistance for Staff

Course staff can use AI assistance tools to help support students who are struggling with errors in their programming assignments. The AI Help button appears in help request chats and discussion threads, providing staff with AI-powered insights based on:

- Student submissions and test results
- Build output and error messages
- Assignment context and requirements

<Note>
AI assistance requires configuration of the Model Context Protocol (MCP) server with Supabase OAuth authentication. Only instructors and graders have access to AI assistance tools.
</Note>

## Feedback and Analytics

After a help request is completed, the student can provide feedback on the help provided. This feedback is visible to instructors only and can be used to:
Expand Down
5 changes: 5 additions & 0 deletions students/assignments/create-submission.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,9 @@ The "Files" tab shows the files that your instructor configured for the submissi
<img src="/images/students/assignments/create-submission-1754510607368.png" alt="Files tab displaying submitted code files" />
</Frame>

The file viewer supports:
- **Binary files**: Images, PDFs, and other binary files are now supported in submissions
- **Markdown preview**: Markdown files (.md) are rendered with formatting for easier reading
- **Code syntax highlighting**: Source code files display with appropriate syntax highlighting

These pages also have a link to the specific GitHub commit that was used to create the submission, and a link to download that complete repository as a zip file.
4 changes: 4 additions & 0 deletions students/discussion-board.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ Click the **+ New Post** button in the top right to create a new discussion thre
3. **Select identity**: Post with your real name or pseudonym
4. **Mark as question or note**: Questions indicate you need an answer; notes are for sharing information

<Tip>
You can drag and drop images directly into the discussion board editor to upload them. This works for both new posts and replies.
</Tip>

## Engaging with Posts

Each post displays helpful metadata:
Expand Down
23 changes: 22 additions & 1 deletion students/office-hours.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,19 @@ Once you submit a help request:
Your active help request follows you around the site! You'll see status updates and video call notifications even while browsing the discussion board or other pages.
</Tip>

## Notifications

Pawtograder provides multiple notification options to keep you informed about your help request:

- **Browser Notifications**: Desktop notifications when staff responds or starts helping
- **Title Bar Updates**: Your browser tab title shows status updates
- **Sound Alerts**: Optional audio notifications for important events
- **Favicon Badge**: Visual indicator in your browser tab

<Note>
You may need to grant browser notification permissions when prompted. You can test notifications and adjust settings from the help request interface.
</Note>

## Help Request Status

Your help request will show different statuses:
Expand All @@ -94,4 +107,12 @@ Your help request will show different statuses:
- **In Progress**: A staff member is actively helping you
- **Resolved**: Your request has been marked as complete

After receiving help, you can provide feedback on the assistance you received. This feedback is visible only to instructors and helps improve the office hours experience.
## Resolving Your Request

When you're finished receiving help, you can resolve your help request by selecting a resolution status:

- **Resolved - Got help**: Your question was answered successfully
- **Resolved - No longer needed**: You figured it out on your own or no longer need help
- **Resolved - Other**: Other reasons for closing the request

You can resolve your request from the floating banner or the main chat view. After receiving help, you can provide feedback on the assistance you received. This feedback is visible only to instructors and helps improve the office hours experience.