CanvasPilot
Provides tools for interacting with the Canvas LMS API, enabling AI agents to manage courses, assignments, modules, pages, files, discussions, announcements, quizzes, submissions, inbox, and calendar events.
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., "@CanvasPilotWhat assignments are due this week for my Canvas courses?"
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.
CanvasPilot
Agentic Canvas LMS tools for LLMs — an MCP server + CLI that talks to Canvas's real REST API using the session your browser already has.
Most Canvas MCPs need a Personal Access Token. Many schools disable student PATs and hide Canvas behind SSO/MFA. CanvasPilot solves that with a stay-open session broker: you log in once in a real browser (Playwright, persistent profile), then every tool call rides that authenticated session — headless, for as long as the cookies live.
Same architecture as OpenCLI-style web agents (persistent browser session → site's real HTTP/JSON API), purpose-built for Canvas.
Features
Auth that works at real schools — session broker (SSO/MFA, no PAT needed) or classic
CANVAS_API_TOKENHeadless after one headed login —
session start --headlessreuses the saved profileFull REST surface — courses, assignments, modules, pages, files, discussions, announcements, planner, inbox, calendar, activity stream, submissions, and quizzes (list/questions/submissions/start/complete)
Agent-shaped digests —
assignment_brief(cleaned prompt + rubric),sync_summary(courses + upcoming),submission_statusFixture mode — offline dict backend for tests and CI; no Canvas required
28 MCP tools, one stdio server, zero config beyond
CANVAS_BASE_URL
Related MCP server: Canvas Assignment Assistant
Install
pip install "canvaspilot[browser]" # or: pip install -e ".[browser]" from a checkout
playwright install chromiumRequires Python 3.11+.
Quick start
export CANVAS_BASE_URL=https://<school>.instructure.com
# 1) Log in once (headed — finish SSO/MFA in the window), leave the broker running
canvaspilot session start
# 2) Later: restart headless on the same saved profile
canvaspilot session start --headless
# 3) Use it
canvaspilot whoami
canvaspilot courses
canvaspilot sync
canvaspilot brief <course_id> <assignment_id>With a PAT instead:
export CANVAS_API_TOKEN=... # broker not needed
canvaspilot coursesMCP server
canvaspilot mcp # stdioCursor / Claude Desktop / any MCP client:
{
"mcpServers": {
"canvas": {
"command": "canvaspilot",
"args": ["mcp"],
"env": { "CANVAS_BASE_URL": "https://<school>.instructure.com" }
}
}
}Tools exposed (all prefixed canvas_):
Area | Tools |
Identity |
|
Courses |
|
Assignments |
|
Discussions |
|
Quizzes |
|
Inbox / Calendar |
|
Auth modes
Mode | How | When |
session (default) | Playwright persistent profile + local broker on | School disables student PATs / SSO+MFA |
token |
| School allows PATs |
fixture |
| Tests, offline demos |
The broker only listens on loopback. Cookies never leave the Playwright profile directory; the MCP/CLI process never sees them — it asks the broker to make the request.
Configuration
Env | Default | Purpose |
|
| Your school's Canvas host |
| — | PAT (skips the broker) |
|
| Playwright persistent profile dir |
|
| Broker port |
|
| Output dir for |
Session broker commands
canvaspilot session start [--headless] [--base-url URL] [--profile DIR] [--port N]
canvaspilot session status
canvaspilot session stopScripts
scripts/readonly_sweep.py— live read-only smoke across the whole tool surface (needs a running broker)scripts/inventory_pass.py— per-course inventory: tabs, LTI/external tools, modules, third-party mentions
Development
pip install -e ".[dev]"
pytestTests run entirely in fixture mode.
Responsible use
CanvasPilot gives an agent the same access you have — including submitting assignments and starting quiz attempts. Write tools are clearly named; wire approval gates in your agent if you don't want autonomous submits. Follow your institution's academic integrity policy.
Origin
Extracted from the Suite monorepo (packages/canvaspilot), where it's synced via git subtree.
License
MIT
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Web search and page-reading for AI agents. One-click OAuth connect, or a Caesar API key.
OAuth 2.1 short-link tools for AI agents with scoped tokens, approvals, audit logs, and revocation.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Canvas LMS through 25 comprehensive tools. Supports course management, assignments, grades, messaging, calendar events, and file access through natural language.15913MIT
- FlicenseAqualityNot gradedmaintenanceEnables interaction with Canvas LMS courses and assignments directly from your LLM, allowing you to retrieve, search, and summarize course information, check due dates, and access assignment details without leaving your AI assistant.4159-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Canvas LMS and Gradescope, allowing users to query courses, assignments, modules, calendar events, and find relevant resources using natural language.19ISC
- AlicenseBqualityBmaintenanceEnables AI assistants to manage Canvas LMS courses, announcements, rubrics, assignments, modules, pages, and student data via the Canvas API.603212MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jacob-Met/canvaspilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server