home / mcp / canvas lms mcp server
Provides access to Canvas LMS data through MCP endpoints for courses, assignments, quizzes, syllabus, modules, files, and planner items.
Configuration
View docs{
"mcpServers": {
"ahnopologetic-canvas-lms-mcp": {
"command": "uvx",
"args": [
"canvas-lms-mcp"
],
"env": {
"CANVAS_BASE_URL": "https://your-institution.instructure.com",
"CANVAS_API_TOKEN": "YOUR_CANVAS_API_TOKEN"
}
}
}
}You can access Canvas LMS data through a lightweight MCP server that bridges your Canvas instance with AI tools. This server exposes core Canvas data such as courses, assignments, quizzes, modules, syllabus, and files, enabling you to query and explore your educational data from compatible MCP clients.
Connect your MCP client to the Canvas LMS MCP Server to start querying data. You can request information about courses, assignments, quizzes, modules, and files, or list planner items within a date range. Use the client’s standard MCP workflows to search, filter, and paginate results. The server runs locally by default and exposes its API through an interactive interface you can access in your browser at the provided docs path.
Typical usage patterns include listing your active courses, fetching a course’s syllabus and modules, listing assignments and quizzes for a course, and listing files in a course or folder. You can also retrieve planner items for a given date range. Use these capabilities to build educational data queries that power your AI workflows or integration projects.
Prerequisites you need before installation:
Choose an installation method from the options below.
Option 1: Install with uvx (Recommended) to run in an isolated environment without permanent installation.
uvx canvas-lms-mcpOption 2: Install from Source to run locally in a virtual environment.
Clone the project, create a virtual environment, and install dependencies.
# Clone the repository
git clone https://github.com/yourusername/canvas-lms-mcp.git
cd canvas-lms-mcp
# Install uv if you don't have it yet
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a virtual environment and install dependencies
uv venv
uv pip install -e .
# Alternative traditional method
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .Set the required environment variables for Canvas access and run the MCP server.
Start the server using the uv command:
uv run src/canvas_lms_mcp/main.pyIf you installed with uvx, you can start the server with the generated shortcut.
canvas-lms-mcpSet the following environment variables before starting the server:
export CANVAS_API_TOKEN="your_canvas_api_token"
export CANVAS_BASE_URL="https://your-institution.instructure.com" # Default: https://canvas.instructure.comIf you use Cursor to query Canvas data, add an MCP server entry in your project so Cursor can reach the Canvas LMS MCP Server.
{
"mcpServers": {
"canvas": {
"command": "uvx",
"args": [
"canvas-lms-mcp"
],
"env": {
"CANVAS_API_TOKEN": "your_canvas_api_token",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}Ask your MCP client to list courses you are enrolled in, fetch a course’s syllabus, or pull upcoming assignments and quizzes for a given course. You can also retrieve files from a course folder or list planner items for a date range.
List the courses the authenticated user is enrolled in.
Retrieve details for a single course by its ID.
Fetch the syllabus for a specific course.
Retrieve modules for a course.
List assignments for a specific course with filtering and pagination.
Get a single assignment by its ID within a course.
List quizzes for a specific course.
Fetch a single quiz by ID within a course.
List files for a course or folder.
List planner items for the authenticated user within a date range.