Canvas MCP
Read-only access to Canvas LMS study data, including user profile, courses, assignments, events, todo items, modules, pages, files, and submissions.
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., "@Canvas MCPlist my active 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.
Canvas MCP
Read-only FastMCP server for Canvas LMS study data.
This project is configured for CIAM Canvas by default:
https://ciam.instructure.comConfiguration
Set these environment variables before starting the server:
export CANVAS_BASE_URL="https://ciam.instructure.com"
export CANVAS_API_TOKEN="your-canvas-token"Do not commit real Canvas tokens.
Related MCP server: litmos-mcp
Install
cd /Users/zihanwang/Documents/Codex/canvas-mcp
uv sync --extra devRun
cd /Users/zihanwang/Documents/Codex/canvas-mcp
uv run canvas-mcpThe server speaks MCP over stdio.
MCP Client Config
Use this shape in an MCP client config. Replace your-canvas-token with your token in your local config only.
{
"mcpServers": {
"canvas": {
"command": "uv",
"args": [
"--directory",
"/Users/zihanwang/Documents/Codex/canvas-mcp",
"run",
"canvas-mcp"
],
"env": {
"CANVAS_BASE_URL": "https://ciam.instructure.com",
"CANVAS_API_TOKEN": "your-canvas-token"
}
}
}
}Tools
canvas_self: current Canvas user.canvas_courses: visible courses, defaulting to active enrollments.canvas_course_assignments: assignments for a course.canvas_upcoming_events: upcoming calendar events.canvas_todo: todo items for the current user.canvas_course_modules: modules and module items for a course.canvas_course_pages: wiki pages for a course, with optional search.canvas_course_files: files for a course, with optional folder filtering.canvas_submissions: assignment submissions or visible course submissions.canvas_raw_get: read-only escape hatch for/api/v1/...Canvas paths.
Local Verification
cd /Users/zihanwang/Documents/Codex/canvas-mcp
uv run pytest -v
uv run python -c "from canvas_mcp.server import mcp; print(mcp.name)"Expected output from the smoke test:
Canvas LMSLive API Smoke Test
After setting CANVAS_API_TOKEN, this should return your Canvas user profile:
cd /Users/zihanwang/Documents/Codex/canvas-mcp
uv run python - <<'PY'
from canvas_mcp.client import CanvasClient, CanvasConfig
client = CanvasClient(CanvasConfig.from_env())
try:
print(client.get("users/self", paginate=False))
finally:
client.close()
PYMaintenance
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/zihan1997/canvas-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server