# Google Classroom MCP

> Google Classroom MCP connects your AI agent directly to your course data. Manage entire classes—from creating assignments and posting announcements to tracking submissions and grading work—all through conversation. It's the control panel for all things LMS, letting you handle student rosters and coursework deadlines without opening a browser.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** classroom-management, assignment-tracking, student-roster, grading, file-sharing, learning-management

## Description

Managing an educational environment involves juggling multiple moving parts: courses, due dates, who submitted what, and how many points they earned. This MCP lets your AI agent talk directly to Google Classroom. You can ask it to list all active classes or check the roster for a specific course. Need to grade? Your agent reviews submissions and returns work to students with a single command. It's built for people who manage classrooms, not just files. When you connect this MCP via Vinkius, your AI client gets access to an entire set of educational tools, letting you handle the full cycle from lesson planning to final grades through natural conversation.

## Tools

### create_announcement
Posts an important update or reminder to the course feed for all students.

### create_course
Sets up a new class container, generating a unique ID for future reference.

### create_course_work
Creates an assignment or quiz with specific points and due dates visible to the whole class.

### get_course
Retrieves detailed information about a single, specified course using its ID.

### get_submission
Fetches all the details for one student's specific attempt at an assignment.

### list_announcements
Lists recent important updates and announcements posted to the course stream.

### list_course_work
Provides a full list of all assignments, showing their title, due date, and if they're published or drafts.

### list_courses
Gets a master list of every course you are associated with in Google Classroom.

### list_students
Generates the current enrollment roster for a specific class, useful for auditing or grading.

### list_submissions
Checks all student submissions for one assignment, showing who submitted, their grade, and if it's late.

### list_teachers
Lists every teacher associated with a course to verify team roles.

### return_submission
Marks an assignment as graded and returns the work to the student, alerting them of the grade.

### turn_in_submission
Simulates a student clicking 'Turn In' on an assignment that they have already created.

### update_course
Allows you to make changes to the overall details of an existing course container.

## Prompt Examples

**Prompt:** 
```
List all my courses and show students in Math 101.
```

**Response:** 
```
📚 You have 3 courses: Math 101 (ID: 12345), Physics 201 (ID: 12346), Chemistry 301 (ID: 12347). Students in Math 101: Alice, Bob, Charlie, Diana (4 enrolled).
```

**Prompt:** 
```
Create an assignment called 'Chapter 5 Problems' due 2024-05-15 for course 12345, max 100 points.
```

**Response:** 
```
✅ Assignment created! 'Chapter 5 Problems' (CourseWork ID: cw_789) for Math 101, due May 15, 2024, max 100 points. All students can now see the assignment.
```

**Prompt:** 
```
Show me who turned in the Chapter 5 assignment.
```

**Response:** 
```
📊 Submissions for 'Chapter 5 Problems': ✅ Turned In: Alice, Bob (2) | ⏳ Late: Charlie (1) | ❌ Not Submitted: Diana (1).
```

## Capabilities

### Discover and modify courses
You can list all active classes or create a brand-new course within Google Classroom.

### Manage student rosters
Check the full enrollment list, identifying both students and assigned teachers for any given class.

### Set up assignments and quizzes
Create coursework with specific due dates, visible to every student in the course.

### Monitor assignment status
See exactly who has submitted work, who is late, or who hasn't started yet for any given assignment.

### Handle submissions and grades
The agent can retrieve specific student submissions, grade the work, and return it to them automatically.

## Use Cases

### The end-of-unit grading crunch
A teacher needs to grade 50 submissions from 'Midterm Project.' Instead of opening the web app, they ask their agent to run `list_submissions` for that assignment. The agent immediately returns a summary: 42 submitted, 3 late, and 5 missing. They then use `return_submission` on the graded work.

### Adding an emergency reminder
The admin realizes there's a policy change for next week. Instead of sending emails to every class list, they just tell their agent to call `create_announcement` for all relevant courses, making sure the update hits the course stream instantly.

### Verifying student enrollment
Before starting a new semester, an admin needs to confirm the official list of students. They ask their agent to use `list_students` for Course ID 12345; it returns the full roster and confirms all necessary staff are listed using `list_teachers`.

### Setting up a new curriculum module
The department head needs to launch a brand-new elective. They ask their agent to use `create_course`, get the ID, and then immediately follow up by calling `list_course_work` to ensure they set the initial mandatory assignments.

## Benefits

- Stop manually checking grade books. By calling `list_submissions`, your agent instantly shows who turned in work, who's late, and the current status for all students on one screen.
- Never miss a student enrollment detail again. Use `list_students` to quickly pull up an accurate roster or verify if a specific student was assigned to the course.
- Keep everyone updated without opening the web app. Posting important reminders is as simple as calling `create_announcement`, and it lands right in the class feed.
- Grade cycles are faster than ever. After reviewing work, you just need to run `return_submission` to give back grades and notify students immediately.
- Creating new material takes seconds. You can use `create_course_work` to set up a quiz or assignment with due dates for the whole class without leaving your chat window.

## How It Works

The bottom line is that once it's connected, all of Google Classroom's core functions become natural commands for your AI client.

1. First, subscribe to this MCP and provide your Google Classroom OAuth Access Token.
2. Next, connect that token to your preferred AI client (Claude, Cursor, etc.).
3. Then, you start by asking your agent a direct question, like 'What submissions are due for Math 101?' The agent runs the necessary tool calls and gives you the answer.

## Frequently Asked Questions

**How do I use list_courses to find all my classes?**
Running `list_courses` provides a master overview of every course you have access to. This is essential because it gives you the specific Course IDs you'll need for almost every subsequent action, like listing students or checking announcements.

**Can I check student grades using list_submissions?**
Yes, `list_submissions` shows key data points including the grade and whether the submission was late. It’s your central tool for tracking performance against an assignment's due date.

**What is the difference between create_course_work and get_course?**
`create_course_work` builds a new assignment or quiz, giving it a deadline. `get_course` just pulls all the general details about an existing course container; it doesn't deal with specific lessons.

**How do I post an announcement without going to Google Classroom?**
You use the `create_announcement` tool. Just tell your agent what you want to say and which course, and it posts the update directly into the course stream for everyone to see.

**How do I use list_teachers to find out who can grade work in a course?**
The tool lists all teachers assigned to your specific Google Classroom. This confirms which users have the permissions needed for grading actions, like returning submissions or viewing grades.

**What is the prerequisite before I use turn_in_submission?**
You must ensure the student has first created a submission draft. Running this tool finalizes the work, mimicking the 'Turn In' button click in the Classroom UI and making it ready for grading.

**Using update_course, what data fields can I modify on an existing class?**
You need to provide the course ID and specify which metadata field you want to change. This lets you maintain or adjust core details about a course without needing to recreate it.

**If I use get_submission, what specific data points will I receive?**
You retrieve detailed information on one student's work. This includes the grade assigned, the submission state (e.g., returned or new), and key metadata about that specific assignment.

**How do I get a Google Classroom access token?**
Go to [Google Cloud Console](https://console.cloud.google.com/), enable the Google Classroom API, create OAuth 2.0 credentials, and generate an access token with scopes: `classroom.courses`, `classroom.rosters`, `classroom.profile`. Use Google's OAuth Playground for quick testing.

**Can I create and grade assignments?**
Yes! Use `create_course_work` to create assignments with due dates and max points. Use `list_submissions` to see who turned in work, then `get_submission` to review individual student work. After grading, use `return_submission` to send it back to the student.

**Can I manage student enrollment?**
This MCP focuses on read-only operations for safety: listing students/teachers, viewing assignments, and tracking submissions. To add/remove students, use the Google Classroom web interface directly.