jonasneves/canvas-mcp-server
If you are the rightful owner of canvas-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Canvas MCP Server connects Claude Desktop to Canvas LMS data via a Chrome extension and native messaging host.
Canvas MCP Server
Connect Claude Desktop to your Canvas LMS data through a Chrome extension and native messaging host.
Architecture

The extension runs in your browser, fetches data via Canvas API, and forwards it to the native host which communicates with Claude Desktop using the MCP protocol.
Project Structure
canvas-mcp-server/
├── extension/ # Chrome extension
│ ├── manifest.json
│ ├── background.js # Service worker
│ ├── content.js # Canvas API integration
│ └── popup.* # Extension UI
└── native-host/ # MCP server
├── host.js # Main server
├── install.sh # Unix installer
└── install.bat # Windows installer
Features
- Access courses, assignments, and submissions
- View calendar events and upcoming deadlines
- Browse course modules and analytics
- Auto-detect Canvas instance URLs
- Real-time data synchronization
Quick Start
Option 1: Simple Installation (Recommended)
-
Install Claude Desktop integration:
- Download:
canvas-mcp-server-native-host.dxt - Open Claude Desktop → Extensions
- Drag the
.dxtfile into the extensions area - Done!
- Download:
-
Install Chrome Extension:
- Download: Latest Extension Release
- Extract
canvasflow-extension-v*.zip - Open Chrome →
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" → select extracted folder
-
Configure:
- Click the extension icon in Chrome
- Enter your Canvas URL or click "Auto-Detect"
- Click "Refresh Canvas Data"
-
Test:
- Ask Claude Desktop: "What are my Canvas courses?"
Option 2: Install from Source
git clone https://github.com/jonasneves/canvas-mcp-server.git
cd canvas-mcp-server
# Install native host
cd native-host
npm install
./install.sh # or install.bat on Windows
# Load extension from ./extension folder
# Follow Chrome extension steps above
Prerequisites
- Node.js 16 or higher
- Chrome or Edge browser
- Claude Desktop
- Active Canvas LMS account
Available MCP Tools
list_courses- Get all active coursesget_course_assignments- Get assignments for a specific courselist_all_assignments- Get all assignments with submission statusget_assignment_details- Get detailed assignment info including rubricslist_calendar_events- Get calendar events within a date rangeget_user_submissions- Get all submissions for a courselist_course_modules- Get course modules and itemslist_upcoming_events- Get upcoming assignments and eventsget_course_analytics- Get course analytics (if enabled)
Troubleshooting
Extension not syncing:
- Verify you're logged into Canvas in Chrome
- Check Canvas URL configuration in extension
- Inspect extension console:
chrome://extensions/→ Details → Inspect views
Claude Desktop not connecting:
- Check logs:
~/canvas-mcp-host.log(macOS/Linux) or%USERPROFILE%\canvas-mcp-host.log(Windows) - Restart Claude Desktop after configuration changes
- Verify native host installation ran successfully
Canvas API rate limiting:
- Extension caches data to minimize requests
- If rate limited, wait a few minutes before syncing
Analytics unavailable:
- The
get_course_analyticstool requires your Canvas instance to have analytics enabled
Security
- HTTP server only listens on localhost (127.0.0.1)
- No credentials stored; uses browser's Canvas session
- All data stays local on your machine
Contributing
Contributions welcome! Please open an issue before submitting major changes.
License
MIT