Canvas LMS Integration
STDIOMCP server enabling AI assistants to interact with Canvas LMS for course management.
MCP server enabling AI assistants to interact with Canvas LMS for course management.
A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with Canvas LMS. This server provides tools for managing courses, announcements, rubrics, assignments, and student data through the Canvas API.
Clone this repository and install dependencies:
git clone <repository-url> cd canvas-mcp npm install
Build the TypeScript project:
npm run build
Configure your environment variables:
# Create a .env file echo "CANVAS_API_TOKEN=your_token_here" > .env # Optional: Set custom Canvas URL echo "CANVAS_DOMAIN=https://your-canvas-instance.com" >> .env
Open Claude Desktop's configuration file:
MacOS:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
code %AppData%\Claude\claude_desktop_config.json
Add the Canvas MCP server configuration:
{ "mcpServers": { "canvas": { "command": "node", "args": [ "/path/to/canvas-mcp/build/index.js" ], "env": { "CANVAS_API_TOKEN": "your_token_here", "CANVAS_DOMAIN": "https://your-canvas-instance.com" } } } }
Restart Claude Desktop to apply changes
Lists all active courses for the authenticated user
Posts an announcement to a specific course
Lists all rubrics for a specific course
Gets a complete list of students enrolled in a course
Gets all assignments in a course with submission status
Gets all student submissions for a specific assignment
Analyzes rubric statistics for formative assignments in a course and creates visualizations
Server not appearing in Claude Desktop:
Connection errors:
# MacOS tail -f ~/Library/Logs/Claude/mcp*.log # Windows type %AppData%\Claude\Logs\mcp*.log
The server logs errors to stderr. These can be viewed in Claude Desktop's logs or redirected when running manually:
node build/index.js 2> debug.log
API Token Security:
Permissions:
MIT License
Copyright (c) 2024
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.