agentleFS
AnonymousOnyx22AnonymousOnyx22/canvas-lms-student-mcp/llms.txt

canvas-lms-student-mcp

llms.txt0 starsChanged 19 days agoMITView on GitHub

Canvas LMS MCP is a free, open source, read only MCP server that lets AI apps (Claude, Cursor, VS Code and others) read a student's Canvas LMS by Instructure courses, quizzes, files, due dates, grades and announcements. It cannot submit, edit or delete anything. It can save your due dates as an .ics calendar file on your own computer. Version: 0.1.10

We split this llms.txt into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a token in Canvas under Account, Settings, New Access Token.

    line 9
  2. Very specific:

    Run with npx -y canvas-lms-student-mcp.

    line 10

≈ “Common” is an estimate: at least 1 in 5 of the 3,225 llms.txt files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
llms.txt
# canvas-lms-student-mcp

> Canvas LMS MCP is a free, open source, read only MCP server that lets AI apps (Claude, Cursor, VS Code and others) read a student's Canvas LMS by Instructure courses, quizzes, files, due dates, grades and announcements. It cannot submit, edit or delete anything. It can save your due dates as an .ics calendar file on your own computer.

Version: 0.1.10

## Setup
- Needs CANVAS_BASE_URL and CANVAS_API_TOKEN.
- Create a token in Canvas under Account, Settings, New Access Token.
- Run with npx -y canvas-lms-student-mcp. Run `npx canvas-lms-student-mcp doctor` to check the setup.

## Tools (twenty read only, one writes a calendar file)
- get_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?"
- get_todo: 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?"
- get_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?"
- get_quizzes: Canvas quizzes and exams with when each opens, when it is due and when it closes, the time limit, the attempts you used and your score. Pass course_id as the Canvas course ID or as the course name to check one course, or leave it out for all active courses. Set when to upcoming for quizzes not yet closed, or past for closed ones. Pass limit and page to step through long lists, 20 items by default. Example: "Which Canvas quizzes and exams are coming up and how long do I get?"
- get_missing_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?"
- get_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?"
- get_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?"
- get_course_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."
- get_course_modules: Your progress through the modules of one Canvas course. Each module shows its state (locked, unlocked, started or completed) and each item shows what Canvas requires of you (view it, submit it, contribute or reach a minimum score) and whether you have done it, so you can see what to study next. Pass course_id as the Canvas course ID or as the course name. Set only_open to true to hide completed modules. Example: "Which modules do I still have to finish in my Canvas Networking course?"
- get_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?"
- get_course_people: The teachers and teaching assistants of one Canvas course, with their role and email address when Canvas shows it. Pass course_id as the Canvas course ID or as the course name. Set role to teacher or ta to show only one kind, or leave it out for both. Canvas hides some email addresses from students, and those people are listed without one. Example: "Who teaches my Canvas Networking course and how do I email them?"
- get_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?"
- get_whats_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?"
- get_inbox: Your Canvas inbox, newest first, with the subject, who it is with, when the last message came and a short preview. Only unread conversations are shown by default. Set unread_only to false to include read ones too. Pass limit and page to step through long lists, 20 conversations by default. This tool only reads and never marks anything as read. Example: "Did any instructor message me in Canvas?"
- get_discussions: Discussion topics for one Canvas course, with unread counts. Pass course_id as the Canvas course ID or as the course name. Pass limit and page to step through long lists, 20 topics by default. Example: "What discussions are open in my Canvas Networking course?"
- get_calendar_events: Canvas calendar events and assignment due dates. Pass start_date and end_date as YYYY-MM-DD to limit the range. Pass limit and page to step through long lists, 20 events by default. Example: "What is on my Canvas calendar between 2026-10-01 and 2026-10-31?"
- get_target_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?"
- get_assignment_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?"
- get_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?"
- get_file: Read one file from Canvas by its file ID, such as a file found with get_assignment_files or get_course_content. Plain text, CSV, JSON and HTML files come back as text. PDF, Word, slide deck and image files return the name, type and size with a note, because their text is not extracted. Files over 5 MB are not downloaded. Example: "Open Canvas file 501 and summarize it."
- 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."

get_upcoming_due_dates takes optional days_ahead. get_assignments takes an optional bucket filter, for example overdue. get_announcements takes optional course_ids, limit and page. get_whats_new takes optional since_days, course_id, limit and page. get_calendar_events takes optional start_date and end_date as YYYY-MM-DD. get_course_modules takes optional only_open. get_course_people takes optional role. get_inbox takes optional unread_only, limit and page. get_quizzes takes optional course_id, when, limit and page. get_target_grade takes optional current_percent. export_due_dates_calendar takes optional days_ahead, course_id, include_submitted, path and filename.

A course can be named instead of numbered. Give the Canvas course ID or the course name, for example "Networking 1", wherever a tool takes course_id or course_ids. The name is looked up in the list get_my_courses shows, and a name that fits no course says so and points at get_my_courses.

## Links
- Source and README, https://github.com/AnonymousOnyx22/canvas-lms-student-mcp
- More free student MCP servers, https://brightspacemcp.com/more-mcps/

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.