Canvas LMS
Links AI tools to Canvas school dashboards.
Canvas API MCP Server
Connect Claude to your Canvas LMS. Ask natural questions like "What assignments do I have due this week?" or "What's my current grade in Biology?" and get real answers pulled directly from your Canvas account.
Works with Claude Desktop and Claude Code (the CLI).
Quick Install
Requires: Node.js 18+, Git, and a Canvas personal access token (how to get one)
git clone https://github.com/Kdude43ver/Canvas-API-MCP.git
cd Canvas-API-MCP
bash install.sh
The install script will:
- Install dependencies and build the project
- Ask for your Canvas URL and API token
- Add the server to Claude Code and/or Claude Desktop automatically
Manual Setup
1. Get your Canvas API token
- Log into your Canvas instance (e.g.
https://yourschool.instructure.com) - Click your profile picture → Account → Settings
- Scroll down to Approved Integrations
- Click + New Access Token
- Name it (e.g.
Claude MCP) and click Generate Token - Copy the token now — Canvas will never show it again
2. Clone and build
git clone https://github.com/Kdude43ver/Canvas-API-MCP.git
cd Canvas-API-MCP
npm install
npm run build
3. Create your .env file
cp .env.example .env
Edit .env:
CANVAS_TOKEN=your_token_here
CANVAS_BASE_URL=https://yourschool.instructure.com
4. Add to Claude Code
claude mcp add canvas \
-e CANVAS_TOKEN=your_token_here \
-e CANVAS_BASE_URL=https://yourschool.instructure.com \
-- node /absolute/path/to/Canvas-API-MCP/dist/index.js
Replace /absolute/path/to/Canvas-API-MCP with the actual path (run pwd inside the repo to get it).
5. Add to Claude Desktop
Edit ~/.config/claude/claude_desktop_config.json on Linux/Mac, or %APPDATA%\Claude\claude_desktop_config.json on Windows. Create the file if it doesn't exist.
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/absolute/path/to/Canvas-API-MCP/dist/index.js"],
"env": {
"CANVAS_TOKEN": "your_token_here",
"CANVAS_BASE_URL": "https://yourschool.instructure.com"
}
}
}
}
Restart Claude Desktop after saving. You should see a hammer icon in the chat interface indicating tools are available.
Available Tools
| Tool | What it does |
|---|---|
list_courses | List all your active courses |
get_course | Full details for a course (including syllabus) |
list_assignments | All assignments for a course with due dates and point values |
get_assignment | Full assignment details including description |
list_upcoming_assignments | Assignments due in the next N days across all your courses |
get_grades | Your current and final grade for a course |
list_submissions | Submission status for every assignment in a course |
list_announcements | Recent announcements for a course |
list_discussions | Discussion topics for a course |
list_calendar_events | Upcoming events and due dates in a date range |
list_files | Files available in a course with download links |
Example Prompts
Once installed, try asking Claude:
- "What assignments do I have due in the next 3 days?"
- "List all my courses this semester."
- "What's my current grade in each class?"
- "Are there any announcements in my CS class?"
- "Show me the discussion topics for course 12345."
- "What files are available in my Biology course?"
- "What's on my calendar this week?"
Verifying It Works (MCP Inspector)
Before adding to Claude, you can test the server directly:
npx @modelcontextprotocol/inspector node dist/index.js
Set CANVAS_TOKEN and CANVAS_BASE_URL in the Environment Variables section of the inspector, then call list_courses to confirm you get real data back.
Troubleshooting
"No courses found" or empty results
- Double-check your
CANVAS_BASE_URL— it should be your school's Canvas URL, notcanvas.instructure.com - Make sure your token was copied correctly (no extra spaces)
- Try generating a fresh token
Claude Desktop doesn't show Canvas tools
- Confirm the path in
claude_desktop_config.jsonis the absolute path todist/index.js - Make sure you ran
npm run buildand thatdist/index.jsexists - Restart Claude Desktop fully (quit from the system tray, not just close the window)
Claude Code can't find the server
- Run
claude mcp listto see registered servers - Run
claude mcp remove canvasthen re-add it if something looks wrong
403 errors from Canvas
- Your token may have expired — generate a new one in Canvas Settings
- Some Canvas instances restrict API access; contact your school's IT department
Security
- Your Canvas token is stored only in your local
.envfile (which is git-ignored) and/or your local Claude config files - The token gives read access to everything your Canvas account can see — treat it like a password
- To revoke access: go to Canvas → Account → Settings → Approved Integrations → delete the token
- Never share your
.envfile or commit it to version control
Development
# Install deps
npm install
# Build (uses esbuild, outputs to dist/)
npm run build
# Run directly (requires .env file)
node dist/index.js
# Dev mode with ts-node
npm run dev
The source is organized as:
src/
├── index.ts # Entry point — loads env, starts server
├── server.ts # McpServer setup, registers all tools
├── canvas-client.ts # Axios wrapper: auth headers, pagination, rate-limit backoff
└── tools/
├── courses.ts # list_courses, get_course
├── assignments.ts # list_assignments, get_assignment, list_upcoming_assignments
├── grades.ts # get_grades, list_submissions
├── announcements.ts # list_announcements
├── discussions.ts # list_discussions
├── calendar.ts # list_calendar_events
└── files.ts # list_files
Похожие серверы
Bright Data
спонсорDiscover, extract, and interact with the web - one interface powering automated access across the public internet.
Olostep MCP Server
A server for web scraping, Google searches, and website URL lookups using the Olostep API.
Anysite
Turn any website into an API
neo-vision
Spatial DOM maps for AI agent browser navigation with anti-bot stealth and human-like behavioral simulation
Browserless
Scrape and automate any webpage using headless browsers, captcha solving, and advanced stealth features, in an optimized infrastructure that works in seconds.
Outscraper
Extract data from Google Maps, including places and reviews, using the Outscraper API.
News MCP Server
Real-time news aggregation from AP, BBC, NPR, Hacker News, and Google News
Cloudflare Playwright
Control a browser for web automation tasks like navigation, typing, clicking, and taking screenshots using Playwright on Cloudflare Workers.
Skyvern
MCP Server to let Claude / your AI control the browser
Influship Influencer Marketing MCP
AI Influencer Search, Creator Data, & Live Scraping
Intelligence Aeternum (Fluora MCP)
AI training dataset marketplace — 2M+ museum artworks across 7 world-class institutions with on-demand 111-field Golden Codex AI enrichment. x402 USDC micropayments on Base L2. First monetized art/provenance MCP server. Research-backed: dense metadata improves VLM capability by +25.5% (DOI: 10.5281/zenodo.18667735)