- Home
- MCP servers
- Canvas
Canvas
- python
1
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"jon-vii-canvas-student-mcp": {
"command": "python",
"args": [
"ABSOLUTE_PATH_TO/src/canvas-student/run_server.py"
],
"env": {
"CANVAS_BASE_URL": "https://your-institution.instructure.com",
"CANVAS_API_TOKEN": "your_canvas_api_token"
}
}
}
}You can interact with Canvas LMS data and content through a dedicated MCP server. This setup lets you retrieve courses, search content, access assignments and files, and preview PDFs or links directly from your MCP-enabled client. It supports both local execution and PDF-friendly workflows, so you can tailor it to how you work with Canvas.
How to use
Install and run the server, then connect your MCP client to the local or remote endpoint to access Canvas data. You can retrieve courses, search across all content, filter assignments, view course content, and get links for non-text files like PDFs and images. For documents you can preview or open directly when available.
How to install
Prerequisites you need before installing: Python 3.10 or newer and UV Python package manager.
Option 1: Simple Installation (Recommended) Run the following commands from your shell. Ensure you are in the project’s canvas-student directory.
# Navigate to the canvas-student directory
cd src/canvas-student
# Run the installer Python script
python install.py
Option 2: Manual Installation Install dependencies with UV or standard pip.
# Navigate to the canvas-student directory
cd src/canvas-student
# Install with UV (including PDF support)
uv pip install -e ".[pdf]"
# Or with standard pip
pip install -e ".[pdf]"
Configuration and running notes
Configure your MCP client to launch the server using Python and the appropriate script. You provide environment variables for your Canvas instance API access.
Two local execution options are commonly used. You can run the main entry point or a server that includes enhanced PDF support.
# Start the main MCP entry point
python ABSOLUTE_PATH_TO/src/canvas-student/main.py
# Start the PDF-friendly server (ensures PDF extraction libraries are present)
python ABSOLUTE_PATH_TO/src/canvas-student/run_server.py
Configuration for MCP clients (Claude Desktop example)
Add an MCP server configuration to your Claude Desktop config. The example below demonstrates a local stdio server that runs the main entry point and shares the necessary Canvas credentials.
{
"mcpServers": {
"canvas": {
"command": "python",
"args": ["ABSOLUTE_PATH_TO/src/canvas-student/main.py"],
"env": {
"CANVAS_API_TOKEN": "your_canvas_api_token",
"CANVAS_BASE_URL": "https://your-institution.instructure.com"
}
}
}
}
Additional configuration notes
Place environment variables in a .env file or your system environment as shown, then restart your MCP client to apply changes.
CANVAS_API_TOKEN=your_token_here
CANVAS_BASE_URL=https://your-institution.instructure.com
CANVAS_CLIENT_ID=your_oauth_client_id
CANVAS_CLIENT_SECRET=your_oauth_client_secret
REDIRECT_URI=http://localhost:8000/oauth/callback
Troubleshooting and tips
If you run into authentication or URL issues, verify that your API token is valid, the Canvas base URL is correct, and the URL does not include a trailing slash or api path. Check your environment variable configuration and ensure Python 3.10+ is in use.
Examples of common requests
Ask Claude to show your courses, search for assignments, or extract content from course materials. You can request previews or links to PDFs and other file types when direct content extraction isn’t available.
Available tools
courses
Retrieve and list courses in your Canvas account.
assignments
Find, filter, and retrieve assignments across courses.
content
Access course content such as files, modules, and pages.
search
Search across all available Canvas content.
utils
Helper utilities used by the MCP server.
file_content
Extract or provide access to text content from files (including PDFs when available).
todos
Show to-do items and missing assignments.
quizzes
Fetch quiz information and related details.