waterloo-mcp
Provides read-only tools for University of Waterloo course outlines, allowing users to list available outlines and retrieve details for specific outline sections.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
waterloo-mcp
An MCP server with read-only access to your University of Waterloo accounts.
Service | Tools |
LEARN |
|
WaterlooWorks |
|
Odyssey |
|
Crowdmark |
|
Outline |
|
Piazza |
|
SharePoint / OneDrive |
|
UW Flow |
|
|
Nothing here submits, posts or changes anything. Files and images come back as content the model can read.
Sign in
pip install -r requirements.txt playwright && playwright install chromium
python login.py # add --email you@uwaterloo.ca to have it fill the UW and Piazza sign-in formsA browser opens; sign in to each service as usual, Duo included. The session cookies are saved to data/. Your password never leaves that browser. When a session eventually expires, sign_in_status says so; run login.py again.
Related MCP server: UWaterloo MCP
Use it locally
Add it to any MCP client as a stdio server, e.g. Claude Code:
claude mcp add waterloo -- python /path/to/waterloo-mcp/server.pyHost it
To reach it from anywhere (phone, web), run it over HTTP behind any HTTPS reverse proxy. Fill in .env from .env.example (your URL, and a GitHub, Google or Discord OAuth app so only you can sign in), then:
docker compose up -d
python login.py --push <ssh-host>:<path-to-this-folder>--push sends the cookies straight into the container and keeps no local copy. Add https://<your-domain>/mcp to your client as a remote server. Hosted, every file also gets a one-time download link that streams through the server without touching disk.
Sign in automatically (optional)
To stop running login.py whenever a session ends, let the server sign in again by itself. This stores your passwords on the server, so only do it on a machine you trust.
cp login.env.example login.env && chmod 600 login.env # fill in your UW (and optionally Piazza) sign-in
echo AUTOLOGIN=1 >> .env
docker compose --profile autologin up -dA second container keeps a headless browser. When a service signs out, it signs in with your saved passwords and the server picks up the new cookies without a restart. UW still needs Duo: approve the push on your phone. If Duo asks for a code, sign_in_status and docker compose logs autologin show it. It tells Duo to remember its browser, so most sign-ins skip the push. It signs in at most every 15 minutes and backs off while sign-in keeps failing, so a wrong password can't lock you out. Only that container reads login.env; the MCP server never sees your passwords. Leave Piazza blank to keep signing in to it with login.py.
Contributing
Issues and PRs welcome, including from agents using the server.
Credits: the WaterlooWorks protocol is from waterloo-works-scraper; Piazza method names follow piazza-api.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP for Copart and IAA/IAAI search, history, filters, locations, shipping, and usage.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Research saved LinkedIn contacts, review monitored public activity, and prepare engagement campaigns. Four product/setup tools work anonymously. Company tools require OAuth or a scoped API key: explicitly sign in and refresh tools. Paid actions require a credit budget. MCP cannot post comments or start extension delivery. Setup and examples: https://opencomment.ai/mcp
Search university course materials, your flashcards, quizzes, streak and quota. All tools read-only.
Related MCP Servers
- AlicenseAqualityBmaintenanceRead-only MCP server for Canvas LMS that exposes tools to list courses, assignments, grades, submissions, syllabi, announcements, modules, pages, and files, without any write operations.1116 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables read-only access to University of Waterloo Learn and Piazza, allowing users to view courses, assignments, grades, submissions, discussions, and more through an MCP server.MIT
- AlicenseAqualityBmaintenanceGives Claude, Codex, Cursor and any other MCP client read access to your courses, content, files, grades, deadlines, announcements and discussions, using your own browser session.3139 npm5MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only Moodle access through MCP for querying courses, content, assignments, grades, forums, discussions, submissions, and calendar events, while supporting multiple profiles and local ICS export.358 npmMIT