canvas-mcp — Claude Code MCP server: what it does, how to install
Connects Claude Code to Canvas LMS for course data, assignments, grades, and content. It serves both student and educator workflows through MCP tools.
claude mcp add canvas-mcp -- uvx canvas-mcpWhat canvas-mcp does
canvas-mcp connects an agent to Canvas LMS through MCP. Its tools cover courses, assignments, due dates, grades, groups, announcements, calendars, pages, modules, files, and discussions. Educators can also create or update assignments, inspect submissions, post announcements, and manage course content. The server provides up to 128 tools, with 8 optional agent skills for multi-step workflows.
For Claude Code, add the server with claude mcp add canvas-mcp -- uvx canvas-mcp. Canvas access requires your Canvas URL and an API token, and the connection can be checked with canvas-mcp-server --test. Without those credentials, the server cannot connect to Canvas. The active profile controls the available tools, while extra feature-gated tools can expand the total.
What it helps with
- check upcoming assignment deadlines
- find missing submissions and review current grades
- create or change a course assignment
- update course pages and modules
- send an announcement to students
Example prompts for the agent
- Use
get_my_upcoming_assignmentsto show my upcoming deadlines. - Find the assignments I have not submitted and compare them with my current grades.
- Create a course assignment with an online text submission and the due date I provide.
How to install canvas-mcp
Platform CLI
claude mcp add canvas-mcp -- uvx canvas-mcpuvx runs the command named after the package; if the README names another one, use uvx --from canvas-mcp <command>
Platform CLI
codex mcp add canvas-mcp -- uvx canvas-mcpuvx runs the command named after the package; if the README names another one, use uvx --from canvas-mcp <command>
Config file
{
"mcpServers": {
"canvas-mcp": {
"command": "uvx",
"args": [
"canvas-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from canvas-mcp <command>
Config file
{
"servers": {
"canvas-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"canvas-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from canvas-mcp <command>
Platform CLI
gemini mcp add canvas-mcp uvx canvas-mcpuvx runs the command named after the package; if the README names another one, use uvx --from canvas-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about canvas-mcp
How do I install canvas-mcp in Claude Code?
Run claude mcp add canvas-mcp -- uvx canvas-mcp.
What does canvas-mcp do?
It connects Claude Code to Canvas LMS and exposes tools for courses, assignments, grades, content, submissions, and messages. It includes up to 128 tools plus 8 optional skills for multi-step workflows.
What does canvas-mcp need to connect to Canvas?
It needs your Canvas URL and an API token. You can check the connection with canvas-mcp-server --test.