home / mcp / school mcp server

School MCP Server

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

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "54yyyu-school-mcp": {
      "command": "python",
      "args": [
        "-m",
        "school_mcp"
      ]
    }
  }
}

You run the School MCP server to create a bridge between your academic tools and MCP-enabled clients. It fetches Canvas and Gradescope deadlines, lets you add items to Reminders, and provides access to Canvas course materials. This guide walks you through using, installing, and configuring the server so you can start syncing academic data right away.

How to use

Once the School MCP server is running, you interact with it through an MCP client. The server exposes tools you can call to fetch upcoming deadlines, download course materials, and manage reminders. Use the client to select a course, request upcoming deadlines, and trigger any available actions such as adding tasks to Reminders or exporting calendars.

How to install

Prerequisites you need before installation: and Python is installed on your system. You also need pip to install Python dependencies. You will run commands from your shell or terminal.

# Prerequisites check (example)
python3 --version
pip3 --version

Install the School MCP server package and its dependencies, then prepare the environment. Use the steps below to set up the server locally.

# 1) Install the package in editable mode
pip install -e .

# 2) Prepare environment (manual or via setup helper)
# If you have an environment template, copy it and edit your credentials
cp .env.template .env  # edit .env with your credentials

# 3) Run the server directly (alternative path shown below)
python -m school_mcp

If you prefer a direct run script, you can start the server using the convenience script.

./run_server.py

Configuration

The server looks for configuration in this order. First it checks environment variables, then a local .env file, and finally a config.json file in your home directory.

Environment variables provide runtime configuration. If you use the setup helper, it creates and configures a .env file and updates your environment paths accordingly.

Notes and troubleshooting

If you run into issues starting the server, verify that Python and pip are available, and that the working directory contains the server files. Ensure the environment file (.env) has the required credentials for Canvas and Gradescope access.

Tools and capabilities

The server exposes several practical tools you can call from an MCP client to automate academic workflows.

- 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.

Example run configuration

The server provides standard ways to start. If you prefer a development-friendly approach, you can run the server with Python as shown below.

Available tools

get_deadlines

Fetch upcoming assignment deadlines from Canvas and Gradescope, so you can stay ahead of due dates.

add_to_reminders

Add assignments to macOS Reminders to keep track of tasks from your MCP client.

list_courses

List all available Canvas courses to help you navigate course materials.

download_course_files

Download files from a Canvas course to your local workspace for offline access.

set_download_path

Configure the directory where downloaded course materials are stored.

get_download_path_info

Check the current location where downloaded files are saved.