How vishalsachdev/canvas-mcp works
Canvas MCP is an MCP server that lets AI assistants perform role-specific Canvas LMS work. The main workflow is an agent request, server-side tool dispatch, and a Canvas operation whose result is returned to the agent; educators, students, learning designers, and developers use different tool families. Supporting layers include Canvas API access, shared policy and data-safety utilities, resources, and access controls. The README documents broad capabilities, while sampled source and the source index confirm selected internal links; unsampled tool implementations are represented at their listed paths without asserting unverified calls.
Main entry points: __init__.py Tool registry · server.py MCP server · client.py Canvas HTTP client · resources.py Canvas resources
Components 22
MCP entry
- MCP server
src/canvas_mcp/server.py - Tool registry
src/canvas_mcp/tools/__init__.py - Canvas resources
src/canvas_mcp/resources/resources.py
Canvas workflows
- Student tools
src/canvas_mcp/tools/student_tools.py - Course tools
src/canvas_mcp/tools/courses.py - Assignment tools
src/canvas_mcp/tools/assignments.py - Discussion tools
src/canvas_mcp/tools/discussions.py - Course content
src/canvas_mcp/tools/modules.py - Messaging tools
src/canvas_mcp/tools/messaging.py - Accessibility tools
src/canvas_mcp/tools/accessibility.py - Peer review tools
src/canvas_mcp/tools/peer_reviews.py - Review comment tools
src/canvas_mcp/tools/peer_review_comments.py
Developer API
- TypeScript execution
src/canvas_mcp/tools/code_execution.py - Code API client
src/canvas_mcp/code_api/client.ts
Shared core
- Peer review analytics
src/canvas_mcp/core/peer_reviews.py - Comment analysis
src/canvas_mcp/core/peer_review_comments.py - Canvas HTTP client
src/canvas_mcp/core/client.py - Policy and safety
src/canvas_mcp/core
Access control
- Approval routes
src/canvas_mcp/core/access/routes.py - Access store
src/canvas_mcp/core/access/store.py
Other components
- AI clients
- Canvas LMS
Connections 24
- AI clients → MCP server: send requests
- MCP server → Tool registry: registers tools
src/canvas_mcp/server.py - MCP server → Canvas resources: serves resources
src/canvas_mcp/server.py - Tool registry → Student tools: offers student workflows
- Tool registry → Course tools: offers course workflows
- Tool registry → Assignment tools: offers grading
- Tool registry → Discussion tools: offers discussions
- Tool registry → Course content: offers content management
- Tool registry → Messaging tools: offers messaging
- Tool registry → Accessibility tools: offers accessibility review
- Tool registry → Peer review tools: offers peer review
- Peer review tools → Peer review analytics: calls analytics
src/canvas_mcp/tools/peer_reviews.py - Review comment tools → Comment analysis: analyzes comments
src/canvas_mcp/tools/peer_review_comments.py - MCP server → Canvas HTTP client: configures API access
src/canvas_mcp/server.py - Canvas resources → Canvas HTTP client: reads Canvas data
src/canvas_mcp/resources/resources.py - Peer review analytics → Canvas HTTP client: requests Canvas data
src/canvas_mcp/core/peer_reviews.py - Comment analysis → Canvas HTTP client: requests Canvas data
src/canvas_mcp/core/peer_review_comments.py - Canvas HTTP client → Canvas LMS: calls Canvas API
src/canvas_mcp/core/client.py - Tool registry → TypeScript execution: offers code execution
- TypeScript execution → Code API client: uses code API
- Code API client → Canvas LMS: calls Canvas API
src/canvas_mcp/code_api/client.ts - MCP server → Policy and safety: configures tool policy
src/canvas_mcp/server.py - MCP server → Approval routes: routes approvals
src/canvas_mcp/server.py - Approval routes → Access store: reads and grants access
src/canvas_mcp/core/access/routes.py