Skip to main content
Glama
anasdevai

Classroom Suite MCP

by anasdevai
README.md
# πŸŽ“ 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.

[![PyPI version](https://badge.fury.io/py/classroom-suite-mcp.svg)](https://pypi.org/project/classroom-suite-mcp/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)

## ✨ 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!

## πŸš€ Installation

### Using uvx (Recommended)
```bash
uvx classroom-suite-mcp
```

### Using pip
```bash
pip install classroom-suite-mcp
```

### From Source
```bash
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
1. Go to [Google Cloud Console](https://console.cloud.google.com/)
2. Create a new project or select an existing one
3. Enable the following APIs:
   - Google Classroom API
   - Google Drive API
   - Google Docs API

### 2. Create OAuth Credentials
1. Go to **APIs & Services > Credentials**
2. Click **Create Credentials > OAuth client ID**
3. Select **Desktop app** as the application type
4. Download the credentials as `credentials.json`

### 3. Configure the Server
Place `credentials.json` in your working directory, or set the path:

```bash
export GOOGLE_CREDENTIALS_PATH=/path/to/credentials.json
```

On first run, a browser window will open for OAuth authentication.

## βš™οΈ Configuration

### Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `GOOGLE_CREDENTIALS_PATH` | `credentials.json` | Path to OAuth credentials file |
| `GOOGLE_TOKEN_PATH` | `token.json` | Path to store auth token |

### Claude Desktop Configuration

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "classroom-suite": {
      "command": "uvx",
      "args": ["classroom-suite-mcp"]
    }
  }
}
```

Or with pip installation:

```json
{
  "mcpServers": {
    "classroom-suite": {
      "command": "classroom-suite-mcp"
    }
  }
}
```

## πŸ› οΈ Available Tools

### Google Classroom (6 tools)

| Tool | Description |
|------|-------------|
| `list_courses` | List all enrolled courses |
| `get_course` | Get course details |
| `list_assignments` | List course assignments |
| `get_assignment` | Get assignment details |
| `list_submissions` | List assignment submissions |
| `submit_assignment` | Submit work with attachments |

### Google Drive (7 tools)

| Tool | Description |
|------|-------------|
| `list_files` | List files and folders |
| `search_files` | Search by name or content |
| `create_folder` | Create a new folder |
| `upload_file` | Upload a file |
| `download_file` | Download a file |
| `share_file` | Share with users or publicly |
| `delete_file` | Move to trash or delete |

### Google Docs (4 tools)

| Tool | Description |
|------|-------------|
| `create_doc` | Create a new document |
| `read_doc` | Read document content |
| `update_doc` | Append, prepend, or replace text |
| `export_pdf` | 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 file
```

**Organize course materials:**
```
1. create_folder β†’ Create organized folder
2. upload_file β†’ Upload materials
3. share_file β†’ Share with classmates
```

## πŸ§ͺ Development

### Running Locally

```bash
# 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 8000
```

### Testing with MCP Inspector

```bash
npx @anthropic-ai/mcp-inspector classroom-suite-mcp
```

## πŸ“„ License

MIT License - see [LICENSE](LICENSE) for details.

## 🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## πŸ“¬ Support

- **Issues:** [GitHub Issues](https://github.com/anasdevai/classroom-suite-mcp/issues)
- **Discussions:** [GitHub Discussions](https://github.com/anasdevai/classroom-suite-mcp/discussions)

---

Made with ❀️ for educators and students

TDQS

A3.8/5.0

Scored across 17 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues