Fetches upcoming assignment deadlines, lists available courses, and downloads course materials and files
Adds deadlines to macOS Calendar or Reminders using AppleScript and manages local file downloads
Click on "Install 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., "@School MCPwhat assignments are due this week?"
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.
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: Claude Canvas MCP
Quickstart
Installation
Installing via Smithery
To install School MCP for Claude Desktop automatically via Smithery:
Clone the repository:
Install the package:
Set up your environment variables by either:
Using the included setup helper (recommended)
Creating a
.envfile manually
Using the Setup Helper
Run the setup helper to configure Claude Desktop automatically:
The setup helper will:
Find your Claude Desktop configuration file
Create a
.envfile if neededConfigure the MCP server with proper paths
Add your environment variables to the Claude Desktop configuration
Manual Setup
If you prefer to set up manually:
Copy the environment template:
Configure Claude Desktop by following the Claude Desktop Integration Guide.
Running the server
Run directly:
Or use the convenience script:
Tools
get_deadlines: Fetch upcoming assignment deadlines from Canvas and Gradescopeadd_to_reminders: Add assignments to macOS Reminderslist_courses: List all available Canvas coursesdownload_course_files: Download files from a Canvas courseset_download_path: Configure where downloaded files are savedget_download_path_info: Check the current download location
Configuration
The server tries to find configuration in this order:
Environment variables
.envfile in the current directoryExisting
config.jsonfile in the home directory
License
MIT