A Model Context Protocol (MCP) server for academic tools, integrating with Canvas and Gradescope platforms.
- 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
To install School MCP for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @54yyyu/school-mcp --client claude- Clone the repository:
git clone https://github.com/yourusername/school-mcp.git
cd school-mcp- Install the package:
pip install -e .- Set up your environment variables by either:
- Using the included setup helper (recommended)
- Creating a
.envfile manually
Run the setup helper to configure Claude Desktop automatically:
python setup_helper.pyThe setup helper will:
- Find your Claude Desktop configuration file
- Create a
.envfile if needed - Configure the MCP server with proper paths
- Add your environment variables to the Claude Desktop configuration
If you prefer to set up manually:
- Copy the environment template:
cp .env.template .env
# Edit .env with your credentials- Configure Claude Desktop by following the Claude Desktop Integration Guide.
Run directly:
python -m school_mcpOr use the convenience script:
./run_server.pyget_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
The server tries to find configuration in this order:
- Environment variables
.envfile in the current directory- Existing
config.jsonfile in the home directory
MIT