get_my_courses
My courses
List your active Canvas courses with their Canvas course IDs. Use a course ID or a course name in the other tools. Example: "What are my Canvas courses this term?"
無需輸入參數。

io.github.AnonymousOnyx22由 GitHub 帳號 AnonymousOnyx22 發布v0.1.10更新於 Nov 1, 2026
Canvas LMS MCP server for students. Read only Canvas courses, grades, due dates, plus .ics export.
唯讀的 MCP 伺服器,讓助理查詢學生在 Canvas 的課程、作業、截止日期、成績、公告與課程內容。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
參照 儲存庫 中的啟動說明。
Ask your AI what's actually left to do in Canvas.
Canvas LMS MCP is a free, open source MCP server for Claude, Cursor and other AI apps that run a local MCP server. It reads your Canvas courses, quizzes, files, due dates, grades and announcements, and it is read only in Canvas: it never submits, edits or deletes anything there. The one thing it writes is an .ics calendar file on your own computer, and only when you ask it to.
Install and run it with npx, no install step needed:
It reads two environment variables: CANVAS_BASE_URL, your school's Canvas address, and CANVAS_API_TOKEN, a token you create in Canvas.
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):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 21 tools read from Canvas LMS and none of them can submit, edit or delete anything there. Every tool description includes an example prompt your AI can copy, and the Ask like column repeats those prompts here. The last one, export_due_dates_calendar, writes an .ics file to a folder you name.
Where a tool works on one course, you can name the course instead of looking up its number. Give the Canvas course ID or the course name, for example "Networking 1", and the name is matched against the list get_my_courses shows. A name that fits no course says so and points back at get_my_courses.
export_due_dates_calendar turns your Canvas due dates and your Canvas calendar events into an iCalendar file. Name a folder and the file is saved there, for example "Save my Canvas due dates to my Documents folder as an .ics file". Open the file or import it in Google Calendar, Apple Calendar or Outlook.
The file holds the next 30 days and only the work you still owe. Use days_ahead for a longer window, course_id for one course by ID or name, and include_submitted to add the work you already handed in. Each event carries the course name, the points, the submission status, a link back to Canvas and a reminder the day before. Leave the folder out and the calendar text comes back instead, so you can save it under any name you like.
Errors from Canvas and from the connection say what went wrong and what to fix. The most common ones:
Tests run against a fake Canvas server, so they need no account or network. The doctor command, the error messages for a bad token, access denied, a rate limit and a reply that is not Canvas, the .ics calendar export and the lookup of a course by name are part of that suite. A metadata test keeps package.json, server.json, glama.json, llms.txt and the server code on one version number, checks that the tool list in the docs still matches the tools the server registers, counts the read only tools from the code so the number in the docs follows the tools, and checks that the registry entry lists the same environment variables the code reads. Pushing to main and opening a pull request run the same build and test, so the badge at the top of this page shows the current result.
The npm package ships two registry files: server.json for the Model Context Protocol registry and glama.json for the Glama directory. Both carry the name, the description, the version, the license, the keywords, the repository and the homepage, so a listing shows what the server does and where the code lives. The server.json entry also names npx as the runtime and lists the two environment variables a listing site should ask for, with CANVAS_API_TOKEN marked as a secret value. It carries the GitHub repository id as well, and that id stays the same when a repository is renamed.
If you searched for a Canvas MCP server, this is the one for Canvas. It is free, open source and read only: it can look at your courses, due dates, grades and announcements, and it cannot submit, edit or delete anything in Canvas. You sign in with a token you create in your own Canvas account, and you start it with one npx command.
Canvas (Instructure) and Brightspace (D2L) are separate products, so a server for one cannot sign in to the other or read its courses. If your school runs Brightspace instead, use Brightspace MCP (brightspace-d2l-mcp on npm), our Brightspace server, which is also read only. Neither one moves work or grades between the two systems.
Here is what the 21 tools cover on Canvas, so you can check that your question has a tool before you install it.
All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.
MIT
來源:README.md,提交 b6ec964
My courses
List your active Canvas courses with their Canvas course IDs. Use a course ID or a course name in the other tools. Example: "What are my Canvas courses this term?"
無需輸入參數。
To-do list
Your Canvas to-do list: assignments and discussions Canvas says still need attention, with due dates. Example: "What does Canvas say I still need to do?"
無需輸入參數。
Upcoming due dates
Upcoming assignments and events across every Canvas course, soonest first. Pass days_ahead to look only that many days ahead, for example 3. Leave it out and every upcoming due date Canvas returns is included. Example: "What is due in the next 3 days?"
days_aheadMissing assignments
Past-due Canvas assignments you have not submitted, with the course and the day each was due. Example: "What am I missing in Canvas?"
無需輸入參數。
Course assignments
Assignments for one Canvas course. Pass course_id as the Canvas course ID or as the course name, for example "Networking 1", and get due dates, points and submission status: not submitted, submitted, graded, missing or excused. Set bucket to filter, for example overdue. Example: "Which Canvas assignments in Networking 1 are overdue?"
bucketcourse_id必填My grades
Your current grade in each active Canvas course from the Canvas gradebook, with the assignments behind each grade: your score, the points possible and the submission status. Pass course_id as the Canvas course ID or as the course name to limit the grades and the breakdown to one course. Example: "What is my grade in each Canvas course and which assignments make it up?"
course_idCourse content
Modules and module items for one Canvas course. Pass course_id as the Canvas course ID or as the course name. Example: "Show me the Week 3 module in my Canvas Networking course."
course_id必填Syllabus
The syllabus text for one Canvas course, with HTML removed. Pass course_id as the Canvas course ID or as the course name. Example: "What does the Canvas syllabus say about grading in Scripting?"
course_id必填Announcements
Recent Canvas announcements, either for the course_ids you pass or for all your active courses. Each course id can be the Canvas course ID or the course name. Pass limit to show fewer or more than 20 announcements, and page to see the next ones. Example: "What did my instructors announce in Canvas lately?"
pagelimitcourse_idsWhat's new
One catch up across your Canvas courses: announcements posted in the last few days, assignments graded in that window and discussions that still have unread replies. Pass since_days to change the window, 7 by default, or course_id as the Canvas course ID or as the course name to check one course. Pass limit and page to step through long lists, 20 items per section by default. Example: "What's new in Canvas since last week?"
pagelimitcourse_idsince_daysDiscussions
Discussion topics for one Canvas course, with unread counts. Pass course_id as the Canvas course ID or as the course name. Example: "What discussions are open in my Canvas Networking course?"
course_id必填Calendar events
Canvas calendar events and assignment due dates. Pass start_date and end_date as YYYY-MM-DD to limit the range. Example: "What is on my Canvas calendar between 2026-10-01 and 2026-10-31?"
end_datestart_dateTarget grade
Work out what score is needed on the remaining Canvas work in one course to reach a target percent. Pass course_id as the Canvas course ID or as the course name and target_percent as a number from 0 to 100. If Canvas reports a current percent for that course, pass current_percent to use it instead of computing from graded points alone. Example: "What do I need on the rest of my work in Networking 1 to get an 85 percent?"
course_id必填target_percent必填current_percentAssignment files
List the files linked in one Canvas assignment's instructions, such as a handout or a rubric, with the file name, type, size and a link. Pass course_id as the Canvas course ID or as the course name and assignment as the assignment ID or its name. It does not download or open the files. Example: "What files come with the Lab 4 assignment in Networking 1?"
course_id必填assignment必填Submission feedback
The instructor's comments on your graded submission for one Canvas assignment, with the score and grade. Pass course_id as the Canvas course ID or as the course name and assignment as the assignment ID or its name. Example: "What did the teacher say about my Lab 4 submission in Networking 1?"
course_id必填assignment必填Export due dates calendar
Build an iCalendar (.ics) file of Canvas due dates and calendar events that opens in Google Calendar, Apple Calendar and Outlook. Give a folder in path and the file is saved there, or leave path out and the calendar text comes back so you can save it yourself. Each event carries the course name, the points, the submission status and a link back to Canvas, plus a reminder the day before. By default only work you still owe is in the file, set include_submitted to add the work you already handed in. Use days_ahead to change how far ahead to look, 30 days by default, or course_id as the Canvas course ID or as the course name for one course. Example: "Put my Canvas due dates in Google Calendar."
pathfilenamecourse_iddays_aheadinclude_submitted已滿足適用檢查項的 90%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
npx -y canvas-lms-student-mcp{ "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" } } }}npm installnpm run buildnpm test