Classroom Suite MCP
Allows management of Google Classroom courses, assignments, and submissions, including listing courses, getting details, and submitting work with attachments.
Enables creation, reading, updating (append, prepend, replace), and PDF export of Google Docs documents.
Provides tools for file operations on Google Drive: listing, searching, uploading, downloading, sharing, deleting files and folders.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Classroom Suite MCP list my Google Classroom courses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π Classroom Suite MCP
A unified MCP (Model Context Protocol) server for Google Workspace education tools - seamlessly integrate Google Classroom, Google Drive, and Google Docs with AI assistants like Claude.
β¨ Features
Service | Tools | Description |
π Classroom | 6 | Manage courses, assignments, and submissions |
π Drive | 7 | Create, upload, download, and share files |
π Docs | 4 | Create, read, edit documents and export to PDF |
17 tools total - Everything you need for education automation!
Related MCP server: mcp-google-gdrive
π Installation
Using uvx (Recommended)
uvx classroom-suite-mcpUsing pip
pip install classroom-suite-mcpFrom Source
git clone https://github.com/anasdevai/classroom-suite-mcp.git
cd classroom-suite-mcp
pip install -e .π Google Cloud Setup
Before using this server, you need to set up Google Cloud credentials:
1. Create a Google Cloud Project
Go to Google Cloud Console
Create a new project or select an existing one
Enable the following APIs:
Google Classroom API
Google Drive API
Google Docs API
2. Create OAuth Credentials
Go to APIs & Services > Credentials
Click Create Credentials > OAuth client ID
Select Desktop app as the application type
Download the credentials as
credentials.json
3. Configure the Server
Place credentials.json in your working directory, or set the path:
export GOOGLE_CREDENTIALS_PATH=/path/to/credentials.jsonOn first run, a browser window will open for OAuth authentication.
βοΈ Configuration
Environment Variables
Variable | Default | Description |
|
| Path to OAuth credentials file |
|
| Path to store auth token |
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"classroom-suite": {
"command": "uvx",
"args": ["classroom-suite-mcp"]
}
}
}Or with pip installation:
{
"mcpServers": {
"classroom-suite": {
"command": "classroom-suite-mcp"
}
}
}π οΈ Available Tools
Google Classroom (6 tools)
Tool | Description |
| List all enrolled courses |
| Get course details |
| List course assignments |
| Get assignment details |
| List assignment submissions |
| Submit work with attachments |
Google Drive (7 tools)
Tool | Description |
| List files and folders |
| Search by name or content |
| Create a new folder |
| Upload a file |
| Download a file |
| Share with users or publicly |
| Move to trash or delete |
Google Docs (4 tools)
Tool | Description |
| Create a new document |
| Read document content |
| Append, prepend, or replace text |
| Export as PDF |
π Usage Examples
With Claude
You: List my Google Classroom courses
Claude: I'll list your courses using the classroom-suite-mcp tools.
[Uses list_courses tool]
Here are your courses:
1. Introduction to Computer Science (ACTIVE)
2. Data Structures and Algorithms (ACTIVE)
...Common Workflows
Check assignments and submit:
1. list_courses β Get course ID
2. list_assignments β Find pending assignment
3. create_doc β Create solution document
4. submit_assignment β Submit with Drive fileOrganize course materials:
1. create_folder β Create organized folder
2. upload_file β Upload materials
3. share_file β Share with classmatesπ§ͺ Development
Running Locally
# Clone the repository
git clone https://github.com/anasdevai/classroom-suite-mcp.git
cd classroom-suite-mcp
# Install dependencies
pip install -e .
# Run with stdio transport (for MCP clients)
classroom-suite-mcp
# Run with HTTP transport (for testing)
classroom-suite-mcp --transport http --port 8000Testing with MCP Inspector
npx @anthropic-ai/mcp-inspector classroom-suite-mcpπ License
MIT License - see LICENSE for details.
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
π¬ Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Made with β€οΈ for educators and students
Available Tools
17 toolscreate_docA
Create a new Google Doc.
Args: title: Document title content: Optional initial text content folder_id: Folder to create the doc in
Returns: Document with id, title, and link
Inputs: title (required), content, folder_id. Returns: object
create_folderA
Create a new folder in Google Drive.
Args: name: Name of the folder parent_id: ID of parent folder (None for root)
Returns: Created folder with id and link
Inputs: name (required), parent_id. Returns: object
delete_fileA
Delete a file (move to trash or permanent).
Args: file_id: ID of the file permanent: Permanently delete if True
Returns: Deletion confirmation
Inputs: file_id (required), permanent. Returns: object
download_fileA
Download a file from Google Drive.
Args: file_id: ID of the file as_base64: Return content as base64 (for binary)
Returns: File with id, name, and content
Inputs: file_id (required), as_base64. Returns: object
export_pdfA
Export a Google Doc as PDF.
Args: document_id: ID of the document
Returns: PDF as base64 with filename and size
Inputs: document_id (required). Returns: object
get_assignmentA
Get detailed information about a specific assignment.
Args: course_id: The ID of the course assignment_id: The ID of the assignment
Returns: Assignment details including description, materials, and due date
Inputs: course_id (required), assignment_id (required). Returns: object
get_courseA
Get detailed information about a specific course.
Args: course_id: The ID of the course to retrieve
Returns: Course details including name, description, and links
Inputs: course_id (required). Returns: object
list_assignmentsA
List all assignments for a specific course.
Args: course_id: The ID of the course page_size: Maximum number of assignments to return
Returns: List of assignments with id, title, due date, and points
Inputs: course_id (required), page_size. Returns: result
list_coursesA
List all courses the authenticated user is enrolled in.
Args: page_size: Maximum number of courses to return (default: 20) course_states: Comma-separated states: ACTIVE, ARCHIVED, PROVISIONED, DECLINED, SUSPENDED
Returns: List of courses with id, name, section, and state
Inputs: page_size, course_states. Returns: result
list_filesB
List files and folders in Google Drive.
Args: folder_id: ID of folder to list (None for all files) page_size: Maximum number of files to return file_type: Filter by MIME type (e.g., "application/pdf")
Returns: List of files with id, name, type, and links
Inputs: file_type, folder_id, page_size. Returns: result
list_submissionsA
List all submissions for an assignment.
Args: course_id: The ID of the course assignment_id: The ID of the assignment page_size: Maximum number of submissions to return states: Comma-separated states: NEW, CREATED, TURNED_IN, RETURNED
Returns: List of submissions with state, grade, and links
Inputs: course_id (required), assignment_id (required), states, page_size. Returns: result
read_docA
Read the content of a Google Doc.
Args: document_id: ID of the document
Returns: Document with id, title, and text content
Inputs: document_id (required). Returns: object
search_filesC
Search for files by name or content.
Args: query: Search query string page_size: Maximum number of results
Returns: List of matching files
Inputs: query (required), page_size. Returns: result
submit_assignmentA
Submit work to an assignment.
Args:
course_id: The ID of the course
assignment_id: The ID of the assignment
submission_id: The ID of your student submission
drive_file_ids: Comma-separated Google Drive file IDs to attach
link_urls: Comma-separated URLs to attach as links
Returns: Updated submission with state and timestamp
Inputs: course_id (required), assignment_id (required), submission_id (required), link_urls, +1 more. Returns: object
update_docA
Update content in a Google Doc.
Args: document_id: ID of the document text: Text to add mode: "append" (end), "prepend" (start), or "replace"
Returns: Update confirmation
Inputs: text (required), document_id (required), mode. Returns: object
upload_fileA
Upload a file to Google Drive.
Args: name: Filename content: File content (text or base64 for binary) mime_type: MIME type of the file parent_id: Parent folder ID is_base64: True if content is base64-encoded
Returns: Uploaded file with id and link
Inputs: name (required), content (required), is_base64, mime_type, +1 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 17 tools
Each tool targets a distinct resource-action pair: courses, assignments, submissions, Drive files, and Docs all have clearly separated tools. Even similar tools like list_files and search_files are disambiguated by browsing vs. searching.
All tools follow a consistent snake_case verb_noun pattern (list_courses, get_assignment, create_folder, export_pdf). There are no mixed naming conventions or vague verbs.
17 tools is slightly above the ideal range, but the server covers two related domains: classroom workflows and Google Drive/Docs. The count feels heavy but still scoped; each tool has a clear role.
The set covers core student workflows well: viewing courses and assignments, listing and submitting work, and managing Drive files and Docs. Notable gaps exist on the teaching sideβno assignment creation, grading, or return submissionβand document deletion is absent, but these may be outside the intended scope.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Google Ads MCP server: run Search, Display, Demand Gen and PMax campaigns from AI.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to access and interact with Google Classroom data, allowing users to view courses, course details, and assignments through natural language commands.782 npm7MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to list, read, create, and manage files in Google Drive. It features automatic conversion of Google Workspace formats into Markdown, CSV, and plain text for seamless integration with AI workflows.35 npmMIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server integrating Google Docs, Sheets, Drive, Gmail, Calendar, and Apps Script APIs, featuring unique Apps Script support for AI-driven automation.10 npm8MIT
- AlicenseAqualityBmaintenanceMCP server integrating multiple Google Workspace services including Gmail, Calendar, Drive, Sheets, Docs, Tasks, People, Forms, and Slides, enabling users to manage emails, events, files, documents, and more through natural language.15MIT