Leverage on
to quickly scan through your courses, find assignments and related content & stay up to date with your academics.
📋 Available Tools
list_assignments- List assignments for a courseget_assignment- Get assignment detailslist_courses- List your enrolled coursesget_course- Get details about a specific courseget_profile- Get your user profilelist_users- List users in a courseget_dashboard_cards- Get your dashboard cardslist_calendar_events- List calendar eventsget_file_metadata- Get information about a Canvas fileget_file_content- Extract text content from Canvas files (DOCX, TXT, and more)
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": ["-y", "canvas-mcp-tool"],
"env": {
"CANVAS_API_URL": "https://your-schools-canvas-url.com",
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_API_VERSION": "v1",
"CANVAS_API_TIMEOUT": "30000",
"CANVAS_MAX_RETRIES": "3"
}
}
}
}
# Simple usage (if env vars are already set in your shell):
claude mcp add canvas -- npx -y canvas-mcp-tool
# Or inline specify all required and optional variables:
CANVAS_API_URL="https://your-schools-canvas-url.com" \
CANVAS_API_TOKEN="your_canvas_api_token_here" \
CANVAS_API_VERSION="v1" \
CANVAS_API_TIMEOUT=30000 \
CANVAS_MAX_RETRIES=3 \
claude mcp add canvas -- npx -y canvas-mcp-tool
Add to your ~/.gemini/settings.json:
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": ["-y", "canvas-mcp-tool"],
"env": {
"CANVAS_API_URL": "https://your-schools-canvas-url.com",
"CANVAS_API_TOKEN": "your_token_here",
"CANVAS_API_VERSION": "v1",
"CANVAS_API_TIMEOUT": "30000",
"CANVAS_MAX_RETRIES": "3"
}
}
}
}
Note: Gemini CLI requires all environment variables to be explicitly defined in the configuration.
After installation, you'll need to configure your Canvas URL and API token:
Warning: Your Canvas API token is sensitive - treat it like a password and never share it or commit it to source control.
- Log into your Canvas account
- Go to Account → Settings
- Scroll to "Approved Integrations"
- Click "+ New Access Token"
- Enter a purpose and click "Generate Token"
- Copy the token and use in it your preferred setup.
You can add these to your shell profile (~/.zshrc, ~/.bashrc, etc.) so they're loaded automatically:
# ~/.zshrc or ~/.bashrc
export CANVAS_API_URL="https://your-schools-canvas-url.com"
export CANVAS_API_TOKEN="your_canvas_api_token_here"
export CANVAS_API_VERSION="v1"
export CANVAS_API_TIMEOUT=30000
export CANVAS_MAX_RETRIES=3-
Clone this repository
-
Install dependencies:
npm install
-
Create a
.envfile with your Canvas credentials:cp .env.example .env
-
Edit
.envand add your Canvas API token:CANVAS_API_URL=https://your-schools-canvas-url.com CANVAS_API_TOKEN=your_canvas_api_token_hereAdd optional cache and logging settings (defaults shown):
CACHE_ENABLED=true # Enable response caching (set to false to disable) CACHE_TTL=300 # Cache time-to-live in seconds LOG_LEVEL=info # Logging level: debug, info, warn, error LOGGING_ENABLED=true # Enable logging (set to false to disable)
npm run build