Canvas LMS

by kdude43ver

Not rated
GitHub

About

Links AI tools to Canvas school dashboards.

Details

Author
kdude43ver
Categories
Web Scraping

Setup

Install Canvas LMS in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/kdude43ver/Canvas-API-MCP

Follow the installation instructions in the repository README, then restart your MCP client.

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 withClaude DesktopandClaude Code(the CLI).

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

- Install dependencies and build the project
- Ask for your Canvas URL and API token
- Add the server toClaude Codeand/orClaude Desktopautomatically
- Log into your Canvas instance (e.g.https://yourschool.instructure.com)
- Click your profile picture →AccountSettings
- Scroll down toApproved Integrations
- Click+ New Access Token
- Name it (e.g.Claude MCP) and clickGenerate Token
- Copy the token now— Canvas will never show it again

git clone https://github.com/Kdude43ver/Canvas-API-MCP.git cd Canvas-API-MCP npm install npm run build
CANVAS_TOKEN=your_token_here CANVAS_BASE_URL=https://yourschool.instructure.com
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-MCPwith the actual path (runpwdinside the repo to get it).

Edit~/.config/claude/claude_desktop_config.jsonon Linux/Mac, or%APPDATA%\Claude\claude_desktop_config.jsonon 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 Desktopafter saving. You should see a hammer icon in the chat interface indicating tools are available.

- "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?"

Before adding to Claude, you can test the server directly:

npx @modelcontextprotocol/inspector node dist/index.js

SetCANVAS_TOKENandCANVAS_BASE_URLin the Environment Variables section of the inspector, then calllist_coursesto confirm you get real data back.

"No courses found" or empty results

- Double-check yourCANVAS_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 inclaude_desktop_config.jsonis theabsolutepath todist/index.js
- Make sure you rannpm run buildand thatdist/index.jsexists
- Restart Claude Desktop fully (quit from the system tray, not just close the window)

- Runclaude mcp listto see registered servers
- Runclaude mcp remove canvasthen re-add it if something looks wrong

- Your token may have expired — generate a new one in Canvas Settings
- Some Canvas instances restrict API access; contact your school's IT department

- 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

# 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
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

Enable AI agents to get structured data from unstructured web with AgentQL.

Web scraping, crawling, and change detection with AI

Official Apify MCP server for AI agents to run Actors, extract website data, and automate web scraping and crawling workflows.

1GB Free Trial, World's Leading Proxy Service Platform, Efficient Data Collection

Discover, extract, and interact with the web - one interface powering automated access across the public internet.

Automate browser interactions in the cloud (e.g. web navigation, data extraction, form filling, and more)

Easy web data access. Simplified retrieval of information from websites and online sources.

Adds powerful web scraping and search capabilities to LLM clients like Cursor and Claude.

Real-time web data, structured for agents

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.