MCP server for Canvas LMS that lets AI assistants read and manage course, assignment, discussion, page, module, grading, and accessibility-related data through natural language. It supports student, educator, learning designer, and developer workflows with role-based tool filtering and bulk operations.
From the registry: Canvas LMS integration for students and educators with FERPA-compliant analytics and workflows

$ pip install canvas-mcphttps://pypi.org/project/canvas-mcp/Please install the `canvas-mcp` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Python 3.10+** — Python 3.10 or higher is required
- **Install via pip** — Install canvas-mcp from PyPI Run: `pip install canvas-mcp` (https://pypi.org/project/canvas-mcp/)
- **Get a Canvas API token** — Canvas → Account → Settings → New Access Token
Canonical MCP server config (stdio transport):
- command: `canvas-mcp-server`
- args: []
- required environment variables:
- `CANVAS_API_TOKEN`: Your Canvas LMS API access token (example: `<your-canvas-api-token>`)
- `CANVAS_API_URL`: Your institution's Canvas API URL (e.g., https://canvas.illinois.edu/api/v1) (example: `<your-canvas-url>/api/v1`)
- optional environment variables:
- `CANVAS_ROLE`: Filter tools by role: student, educator, or admin (example: `student`)
- `ENABLE_DATA_ANONYMIZATION`: Anonymize student PII for FERPA compliance (example: `true`)
- `LOG_REDACT_PII`: Redact PII from logs (example: `true`)
- `LOG_ACCESS_EVENTS`: Enable structured audit logging (example: `false`)
- `ENABLE_TS_SANDBOX`: Enable TypeScript execution sandbox (example: `true`)
Note: 87 tools for Canvas LMS. A hosted version is also available at https://mcp.illinihunt.org/mcp (HTTP) requiring X-Canvas-Token and X-Canvas-URL headers.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.CANVAS_ROLErequiredSets the visible tool set to student, educator, or adminENABLE_DATA_ANONYMIZATIONrequiredEnables local data anonymization for student dataMCP server that exposes GraphQL operations as tools for AI models.