Skip to main content
Glama

School MCP

A Model Context Protocol (MCP) server for academic tools, integrating with Canvas and Gradescope platforms.

Features

  • Assignment Deadlines: Fetch and display upcoming deadlines from Canvas and Gradescope

  • Calendar Integration: Add deadlines to macOS Calendar or Reminders using AppleScript

  • File Management: Download course materials from Canvas

Related MCP server: macOS Calendar MCP Server

Quickstart

Installation

Installing via Smithery

To install School MCP for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @54yyyu/school-mcp --client claude
  1. Clone the repository:

git clone https://github.com/yourusername/school-mcp.git
cd school-mcp
  1. Install the package:

pip install -e .
  1. Set up your environment variables by either:

    • Using the included setup helper (recommended)

    • Creating a .env file manually

Using the Setup Helper

Run the setup helper to configure Claude Desktop automatically:

python setup_helper.py

The setup helper will:

  • Find your Claude Desktop configuration file

  • Create a .env file if needed

  • Configure the MCP server with proper paths

  • Add your environment variables to the Claude Desktop configuration

Manual Setup

If you prefer to set up manually:

  1. Copy the environment template:

cp .env.template .env
# Edit .env with your credentials
  1. Configure Claude Desktop by following the Claude Desktop Integration Guide.

Running the server

Run directly:

python -m school_mcp

Or use the convenience script:

./run_server.py

CLI: cw / coursework

pip install -e . also installs a command-line tool, cw (long name coursework):

cw deadlines                 # unsubmitted work due in the next 14 days (Canvas + Gradescope)
cw deadlines -s canvas -d 7  # Canvas only, next week
cw announcements -u          # unread course announcements
cw inbox -u                  # unread Canvas inbox conversations
cw message 512758            # read a thread (does not mark it read)
cw grades 20.201             # per-assignment scores for one course
cw files 6.7810 --compare ~/Desktop/MIT/6.7810 --missing   # what's not filed locally yet
cw download crispr           # download a course's files (or --id ID ... for a selection)
cw use columbia              # switch the active account

Courses can be named by code, name fragment or Canvas id. Every command has -h, --json, and (where it talks to a school) -a ACCOUNT.

A Claude Code skill for the CLI lives in skill/coursework/; symlink it into ~/.claude/skills/ to make it available in every session.

MCP Tools

  • get_deadlines: Fetch upcoming assignment deadlines from Canvas and Gradescope

  • add_to_reminders: Add assignments to macOS Reminders

  • list_courses: List all available Canvas courses

  • download_course_files: Download files from a Canvas course

  • set_download_path: Configure where downloaded files are saved

  • get_download_path_info: Check the current download location

Configuration

The server tries to find configuration in this order:

  1. Environment variables

  2. .env file in the current directory

  3. Existing config.json file in the home directory

License

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that connects AI coding agents to your Moodle LMS. Fetch assignments, grades, deadlines, and sync everything to Obsidian automatically.
    -