@rishblob/canvas-mcp-server
Provides tools for interacting with Canvas LMS, including courses, assignments, submissions, modules, pages, discussions, announcements, files, users, enrollments, conversations, and calendar events.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@rishblob/canvas-mcp-serverlist my courses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@rishblob/canvas-mcp-server
TypeScript MCP server for Canvas LMS. It runs over stdio and exposes Canvas API workflows for courses, assignments, submissions, modules, pages, discussions, announcements, files, users, enrollments, conversations, calendar, and utility endpoints.
This package is published to npm as @rishblob/canvas-mcp-server.
Requirements
Node.js
>=18Canvas API token
Related MCP server: canvas-parent-mcp
Environment variables
CANVAS_API_TOKENrequired: Canvas bearer token for API authentication.CANVAS_BASE_URLoptional: Canvas host URL (example:https://school.instructure.com).
If CANVAS_BASE_URL is omitted, the server defaults to https://houstonisd.instructure.com.
Install and run locally
npm install
npm run build
npm startFor one-shot local development:
npm run devUse as a published npm package
npx -y @rishblob/canvas-mcp-server
# or
bunx @rishblob/canvas-mcp-serverMCP client configuration
Option 1: Run from local build
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/absolute/path/to/canvas-mcp-server/dist/index.js"],
"env": {
"CANVAS_API_TOKEN": "your-canvas-token",
"CANVAS_BASE_URL": "https://school.instructure.com"
}
}
}
}Option 2: Run from npm (recommended)
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": ["-y", "@rishblob/canvas-mcp-server"],
"env": {
"CANVAS_API_TOKEN": "your-canvas-token",
"CANVAS_BASE_URL": "https://school.instructure.com"
}
}
}
}Available MCP tools
Courses:
list_courses,get_course,list_students,get_course_settingsAssignments/submissions:
list_assignments,get_assignment,create_assignment,update_assignment,list_submissions,get_submission,grade_submissionUsers:
get_user_profile,get_user,list_course_usersAnnouncements:
list_announcements,create_announcementModules:
list_modules,get_module,list_module_itemsDiscussions:
list_discussions,get_discussion,create_discussion,list_discussion_entriesCalendar:
list_calendar_events,create_calendar_eventFiles:
list_files,get_file,list_foldersPages:
list_pages,get_page,create_page,update_pageEnrollments:
list_enrollments,get_user_enrollmentsConversations:
list_conversations,get_conversation,create_conversationMisc:
list_todo_items,search_courses,get_course_activity_stream
Publish to npm
npm login
npm publishprepack runs npm run build, so package artifacts are built automatically before publish.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/risnake/canvas-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server