
Canvas Lms Mcp Local
io.github.Fireiscoolsolo由 GitHub 账号 Fireiscoolsolo 发布v1.3.0更新于 Nov 8, 2026
Student-focused Canvas LMS: 237 tools for grades, deadlines, planning, submissions and study plans.
概览
本地运行的 Canvas LMS 服务器,为 AI 助手提供 237 个工具,涵盖成绩、截止日期、学习计划、课程内容、作业提交与消息。
- 可以做什么
- 规划日程:每日简报、一周概览、学期快照、学习计划、待办笔记、截止日期导出到日历
- 分析成绩:期末成绩情景、假设分数、成绩影响排序、GPA 计算
- 读取作业与课程内容:含评分标准的作业说明、缺交作业、PDF、Word 文档、幻灯片、页面、模块
- 提交与讨论:文本、链接和文件提交、评论、讨论回复、收件箱消息
- 查询课程、小组、评分标准、测验(只读)、日历事件与联系人
- 调用其他 Canvas 接口的原始请求,并跨课程搜索
- 适用场景
- 适合希望让助手在本机跟踪 Canvas 截止日期、解释作业与评分标准、安排学习时间并推算成绩的学生,且不向互联网暴露任何内容。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node.js 18 或更高版本(读取 PDF 需 22 以上);使用 Claude Desktop 扩展包则无需 Node.js。需要 Canvas 账号、在 CANVAS_API_TOKEN 中提供个人访问令牌(也可用令牌文件或系统钥匙串),并在 CANVAS_BASE_URL 中填写学校的 Canvas 地址。需要能访问学校 Canvas 的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Canvas Lms Mcp Local,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
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.
来源:README.md,提交 8be2dad
工具
0版本历史
8- v1.3.0最新Nov 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
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
