Classroom Suite MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_TOKEN_PATH | No | Path to store auth token | token.json |
| GOOGLE_CREDENTIALS_PATH | No | Path to OAuth credentials file | credentials.json |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {
"tasks": {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| submit_assignmentA | Submit work to an assignment. Args:
course_id: The ID of the course
assignment_id: The ID of the assignment Returns: Updated submission with state and timestamp |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| share_fileA | Share a file with users or make it public. Args: file_id: ID of the file to share email: Email address to share with role: Permission level (reader, writer, commenter) anyone: Make accessible to anyone with link Returns: File link after sharing |
| 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 |
| create_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 |
| read_docA | Read the content of a Google Doc. Args: document_id: ID of the document Returns: Document with id, title, and text content |
| 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 |
| export_pdfA | Export a Google Doc as PDF. Args: document_id: ID of the document Returns: PDF as base64 with filename and size |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.