
Canvas Lms Mcp Local
io.github.FireiscoolsoloPublished by GitHub account Fireiscoolsolov1.3.0Updated Nov 8, 2026
Student-focused Canvas LMS: 237 tools for grades, deadlines, planning, submissions and study plans.
Overview
Local Canvas LMS server giving an AI assistant 237 tools for grades, deadlines, study plans, course content, submissions and messaging.
- What you can do
- Plan the day, week and semester: daily briefing, week ahead, study plans, planner notes, deadline calendar export
- Analyze grades: final grade scenarios, what-if scores, grade impact ranking, GPA calculation
- Read assignments and course content: assignment briefs with rubrics, missing work, PDFs, Word docs, slides, pages, modules
- Submit and discuss: text, URL and file submissions, comments, discussion replies, inbox messages
- Look up courses, groups, rubrics, quizzes (read-only), calendar events and contacts
- Run raw requests to other Canvas endpoints and search across courses
- When to use it
- Useful for students who want an assistant to track Canvas deadlines, explain assignments and rubrics, plan study time and reason about grades on their own computer, without exposing anything to the internet.
- Requirements
- Runs locally over stdio via npx, so Node.js 18 or newer is needed (22 or newer to read PDFs); a Claude Desktop extension bundle avoids Node.js. Requires a Canvas account, a personal access token in CANVAS_API_TOKEN (or a token file or system keychain) and the school's Canvas address in CANVAS_BASE_URL. Network access to the school's Canvas instance.
Installation
In SourceWeft
- Open Canvas Lms Mcp Local in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[!TIP] Want it on your phone, on the web, or across several computers? Go to the Remote Edition → (website). It has the same 237 tools, served over a password-protected tunnel with a status page, phone alerts and automatic failover between computers.
Canvas LMS MCP: Local Edition
Use Canvas from your AI assistant on your own computer. No tunnel, no passwords, no background service.
237 tools · One-command setup · Nothing exposed to the internet
[npm] [npm downloads] [npm downloads per month] [Release downloads] [Tests] [Windows app] [Glama score] [GitHub stars] [Node.js] [MCP] [License: MIT] [Website] [PRs welcome]
Website · Quick start · Configuration · Tools · Troubleshooting · Changelog
[!TIP] On Windows? Skip the terminal. The free Canvas MCP Installer Assistant sets this up in Claude Desktop, the ChatGPT desktop app and other AI apps with pictures and a check after every step, or does every step for you. Download for Windows
[Example chat: asking what score is needed on the final and what's due this week (sample data)]
Local or Remote?
Highlights
- Your day and week:
daily_briefing,get_week_ahead,semester_snapshot, cross-course missing work in one call - Planner: add your own to-do notes, check items off your Canvas To Do list, export deadlines to Google, Apple or Outlook calendars
- Study plans:
study_planspreads study time before each deadline around your calendar;schedule_study_planputs it on your Canvas calendar - Grade intelligence:
final_grade_scenarios(what you need for each letter, with group weights),what_if_grade,grade_impact_ranking,calculate_gpa - Assignments:
assignment_briefgives the instructions, rubric, late policy and linked files in one call - Submissions, discussions and inbox: submit, post and message, always after you confirm (apps that support it ask you directly)
- Content: read lecture PDFs, Word docs and slides with
read_course_file, plus pages, modules, captions and full course export - Prompts and attachments: one-click prompts like Daily briefing, Start this assignment and Am I on track to pass?, and attach a syllabus or assignment to a chat
How it works
No web server, no ports, nothing to keep running. Your AI app starts the server when it opens and stops it when it closes.
Quick start
[!NOTE] Rather click than type? Download the Canvas MCP Installer Assistant for Windows. It walks you through these steps with pictures and checks each one as you go, for both the Local and Remote editions. See screenshots.
Windows may show "Windows protected your PC" because the app isn't code-signed yet. Click More info, then Run anyway.
You need: Node.js 18+ (22+ to read PDFs) and a Canvas account.
1. Create a Canvas access token
In Canvas, go to Account → Settings → Approved Integrations → + New Access Token. Canvas only shows the token once, so copy it right away. Student tokens usually expire after 30–120 days.
2. Add it to your AI app
Easiest: one command (Windows, macOS and Linux)
It asks for your school's Canvas address and your token, checks they work, then adds Canvas to the apps you pick: Claude Desktop, the ChatGPT desktop app, Claude Code, Cursor, VS Code, Windsurf, Gemini CLI and LM Studio. Your old settings are backed up first. It can also keep the token in Windows Credential Manager, the macOS Keychain or the Linux keyring instead of in each app's settings file.
Afterwards, fully quit and reopen your app (the command tells you how for each one).
Claude Desktop: one-click extension
- Download
canvas-lms.mcpbfrom the latest release. - Open it (double-click, or drag it into Claude Desktop's Settings → Extensions).
- Click Install, then enter your school's Canvas address and your token when Claude asks.
The extension includes everything it needs, so you don't have to install Node.js for it.
Desktop apps, by hand
-
Open your app's MCP config file. It's usually under Settings → Developer or Settings → MCP servers, and most apps use an
mcpServersJSON block.npx canvas-lms-mcp-local print-config <app>prints the exact snippet for each app. -
Add this
canvasentry with your token and school address (also inmcp_config.example.json): -
Fully quit the app: on Windows, right-click the tray icon and choose Quit; on macOS, press ⌘Q. Then reopen it. Closing the window isn't enough.
ChatGPT desktop app, by hand
-
Open Settings → Plugins, go to the MCPs tab, then click Add → Add MCP server.
-
Choose STDIO and fill in the form. On Windows, each argument goes in its own box:
-
Click Save, then start a new chat. Chats that were already open don't pick up new tools.
Command-line clients
Register this command as a stdio MCP server named canvas, with CANVAS_API_TOKEN and CANVAS_BASE_URL set in its environment:
For Claude Code, npx canvas-lms-mcp-local setup --apps claude-code does it for you. Then check your client's MCP status to confirm it's connected.
3. Try it
Ask your assistant: "Run test_connection." It checks your identity, courses, planner, inbox and missing submissions, and reports any features your school has disabled.
Then try: "Give me my daily briefing", "What do I need on the rest of Biology to get a B?", "Plan my study time for the next two weeks" or "Explain the Lab 4 assignment and its rubric."
If something isn't working, run npx canvas-lms-mcp-local doctor. It checks Node, each app's settings and your token, and says how to fix what it finds.
Prefer running from source?
Copy .env.example to .env in the same folder as index.js, fill in your token and school address, then point your config at the file instead of npx:
Forward slashes work on Windows. On macOS, the path looks like /Users/you/canvas-lms-mcp-local/index.js. On Windows, make sure the file is named .env, not .env.txt. To check, turn on View → File name extensions in File Explorer.
The tools live in core/, which is shared with the Remote Edition: change them here, then run npm run sync-core to copy them across. npm test runs every tool against a fake Canvas, so no token is needed.
Configuration
Put settings in the env block of your config, as in step 2. If you run from source, you can use .env next to index.js instead.
* One of CANVAS_API_TOKEN, CANVAS_API_TOKEN_FILE or CANVAS_TOKEN_STORE.
Tools
Long lists come one page at a time (limit and page), dates read like "Fri, Nov 7, 11:59 PM (in 2 days)", and Canvas errors are explained with the fix. In your token's last week, answers carry a heads-up so the assistant can remind you to renew it.
Prompts and attachments
The server also adds these to your AI app's menus. They don't count as tools.
- Prompts: Daily briefing, Plan my week, Plan my study blocks, What did I miss?, Start this assignment, Prep me for an exam, How are my grades?, Am I on track to pass?, Catch me up on a course, Draft an email to my professor and Semester wrap-up. Each one tells the assistant which tools to use, and course names autocomplete.
- Attachments: attach a course syllabus, or an assignment due in the next 14 days, to a chat the same way you'd attach a file.
Apps that support MCP prompts and resources, such as Claude Desktop, show them in the + menu.
Security
- Nothing is exposed: the server doesn't listen on any port. Only the app that started it can talk to it, through a private pipe.
- Confirmation gate: tools that send, submit, post, upload or delete need confirmation. Apps that can ask you directly always do, and nothing the AI sends can skip that. Other apps get a preview and a one-time token that only works for that exact request, for 5 minutes. The token can't prove you agreed, so keep your AI app's own "ask before running" setting on for these tools.
- Prompt-injection fencing: text other people wrote (posts, messages, comments, rubric notes) is wrapped in
<<<CANVAS_CONTENT>>>markers and labelled as untrusted. - Your token stays private: every request is checked, so it can only go to your school's Canvas. It's never written to logs, and can live in your system's password store instead of a config file.
- Safe downloads: files only go in your download folder, never replace another file, and have their names cleaned.
- Private files stay private: uploads refuse
.envfiles, keys, sign-in files, and the folders where browsers and AI apps keep their data. - No quiz-taking: quiz attempt endpoints are deliberately not included, and writes to them are refused for every tool, however the address is written.
Never commit
.env. It's already listed in.gitignore. See SECURITY.md.
Responsible use
This is a study and organization tool. It helps you see deadlines, understand your grades and plan your week. It never takes quizzes, and nothing is sent or submitted until you've confirmed it.
- Follow your school's academic integrity and acceptable-use policies. Some schools restrict personal API tokens or third-party tools.
- Want to be sure nothing in Canvas changes? Set
CANVAS_ALLOW_WRITES=falsefor read-only mode. Downloads still work, into your download folder.
Troubleshooting
Start with npx canvas-lms-mcp-local doctor: it checks everything below and says what to fix.
Known limits: a student token can't reach admin endpoints, gradebook history, course analytics or quiz statistics. smart_search is a Canvas beta feature and often returns 404. Canvas doesn't let other apps add ePortfolio entries.
License
MIT. This project isn't affiliated with Instructure.
Source: README.md at commit 8be2dad
Tools
0Version history
8- v1.3.0LatestNov 8, 2026
- v1.2.1Nov 5, 2026
- v1.2.0Nov 3, 2026
- v1.1.3Oct 31, 2026
- v1.1.2Oct 30, 2026
- v1.1.0Oct 29, 2026
- v1.0.1Oct 21, 2026
- v1.0.0Oct 14, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
