Back to Directory/Developer Tools

io.github.AnonymousOnyx22/canvas-lms-student-mcp

Canvas LMS MCP server for students. Read only Canvas courses, grades, due dates and announcements.

Developer ToolsTypeScriptv0.1.4

Canvas MCP for students

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.

Quick start

  1. In Canvas, go to Account > Settings, scroll to Approved Integrations and click New Access Token. Copy it.
  2. Add this to your AI app's MCP config (for Claude Desktop that's 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"
      }
    }
  }
}
  1. Restart your AI app and ask something like "what's due this week?"

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.

What you can ask

  • "What's due this week?"
  • "Do I have anything missing or overdue?"
  • "What's my grade in each class?"
  • "What did my instructors announce lately?"
  • "Show me what's in the Week 3 module for Networking."

Tools

All tools are read only.

ToolWhat it does
get_my_coursesYour active courses and their IDs
get_todoYour Canvas to-do list
get_upcoming_due_datesUpcoming assignments and events, soonest first
get_missing_assignmentsPast due work you haven't submitted
get_assignmentsAssignments for a course with due dates and submission status
get_my_gradesCurrent grade for each course
get_course_contentModules and items for a course
get_syllabusA course's syllabus text
get_announcementsRecent announcements
get_discussionsDiscussion topics for a course
get_calendar_eventsCalendar events between two dates

Privacy and security

  • Your token stays on your computer. It is only sent to your own school's Canvas address.
  • Nothing is sent to any other server by this project.
  • Every tool is marked read only. Revoke the token any time in Canvas settings.

Troubleshooting

MessageFix
Not signed inYour token expired or was revoked. Make a new one.
Access deniedYour school turned that feature off for students.
Not foundCheck the course ID with get_my_courses.
Rate limitedWait a minute and try again.

Development

npm install
npm run build
npm test

Tests run against a fake Canvas server, so they need no account or network.

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

ServerWhat it does
Brightspace MCPD2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.
Moodle MCPRead-only Moodle for AI. Due dates, overdue work, grades and announcements.
Google Classroom MCPRead-only Google Classroom for AI. To-do, due dates, missing work and grades.
GPA Calculator MCPGPA, grade conversion and what-do-I-need-on-the-final math for AI. Works offline, no account.
Citations MCPAPA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account.
Study Planner MCPExam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.
Paper Finder MCPSearch scholarly papers, find open access copies and related work through OpenAlex. No key needed.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y canvas-lms-student-mcp

Set up in your AI client

Merge 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.

json
{
  "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 reference

Package

canvas-lms-student-mcpnpm

Compatible MCP Clients

io.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.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More