Canvas LMS MCP server for students. Read only Canvas courses, grades, due dates and announcements.
Ask your AI what's actually left to do in Canvas.
This is a free, open source MCP server. It lets Claude, ChatGPT, Cursor and other AI apps read your Canvas courses, due dates, grades and announcements. It is read only. It can never submit, edit or delete anything.
Works with any school that uses Canvas. Not affiliated with Instructure.
Free forever. No sign up and no subscription. Your login details only ever go to your own school.
claude_desktop_config.json):{
"mcpServers": {
"canvas": {
"command": "npx",
"args": ["-y", "canvas-lms-student-mcp"],
"env": {
"CANVAS_BASE_URL": "https://yourschool.instructure.com",
"CANVAS_API_TOKEN": "paste-your-token-here"
}
}
}
}
To check your setup first, run npx canvas-lms-student-mcp doctor with the two environment variables set.
Some schools turn off student access tokens. If you don't see the New Access Token button, your school has disabled it and this server can't connect to your account.
All tools are read only.
| Tool | What it does |
|---|---|
get_my_courses | Your active courses and their IDs |
get_todo | Your Canvas to-do list |
get_upcoming_due_dates | Upcoming assignments and events, soonest first |
get_missing_assignments | Past due work you haven't submitted |
get_assignments | Assignments for a course with due dates and submission status |
get_my_grades | Current grade for each course |
get_course_content | Modules and items for a course |
get_syllabus | A course's syllabus text |
get_announcements | Recent announcements |
get_discussions | Discussion topics for a course |
get_calendar_events | Calendar events between two dates |
| Message | Fix |
|---|---|
| Not signed in | Your token expired or was revoked. Make a new one. |
| Access denied | Your school turned that feature off for students. |
| Not found | Check the course ID with get_my_courses. |
| Rate limited | Wait a minute and try again. |
npm install
npm run build
npm test
Tests run against a fake Canvas server, so they need no account or network.
All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.
| Server | What it does |
|---|---|
| Brightspace MCP | D2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files. |
| Moodle MCP | Read-only Moodle for AI. Due dates, overdue work, grades and announcements. |
| Google Classroom MCP | Read-only Google Classroom for AI. To-do, due dates, missing work and grades. |
| GPA Calculator MCP | GPA, grade conversion and what-do-I-need-on-the-final math for AI. Works offline, no account. |
| Citations MCP | APA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account. |
| Study Planner MCP | Exam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline. |
| Paper Finder MCP | Search scholarly papers, find open access copies and related work through OpenAlex. No key needed. |
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y canvas-lms-student-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-anonymousonyx22-canvas-lms-student-mcp": {
"command": "npx",
"args": [
"-y",
"canvas-lms-student-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecanvas-lms-student-mcpnpmio.github.AnonymousOnyx22/canvas-lms-student-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.