NEWYour own Canvas LMS MCP is live — 308 agent-first tools.Get started →
v2.0308 agent tools · agent-ready

The MCP for Canvas LMS

Connect any AI agent to Canvas. Monitor deadlines, grades, and materials, submit work, and manage your courses. Built for students, teachers, and developers.

Capabilities

Everything in Canvas, exposed as clean agent tools.

One MCP server. Your AI client reads your whole course load and acts on it — no browser, no scraping.

READ

Deadlines & Planner

Pull every assignment, quiz, and event across all courses into one dated feed, with per-item submission status.

READ

Grades & Progress

Live current and projected scores per course. Know the exact moment a class crosses into passing.

WRITE

Assignments & Submissions

Submit text, URLs, or files through the full upload flow. Track attempts, comments, and lateness.

READ

Files & Materials

Browse modules and download every lecture file, slide deck, and resource for offline study.

READ/WRITE

Inbox & Announcements

Never miss a moved exam. Read conversations and announcements, post discussion replies.

READ

Calendar & GraphQL

Sync due dates to any calendar, or pull an entire term in a single GraphQL query.

Quickstart

Live in one command.

One npx line in any MCP client — Claude Desktop, Cursor, VS Code, Windsurf, Codex, or Claude Code. No install, runs on your own token.

1

Get a Canvas API token

Canvas → Account → Settings → Approved Integrations → + New Access Token. Copy it immediately.

2

Add it to your MCP client

Drop the config into claude_desktop_config.json (or Cursor / VS Code). One npx line, no install.

3

Ask your agent anything

“What’s due this week?” · “Have I banked a pass in every class?” · “Submit paper.pdf to Assignment 3.”

terminal
# list all 308 tools + the config snippet
npx -y canvaslmsmcpkit --help

# run the server (stdio)
CANVAS_API_TOKEN=… CANVAS_BASE_URL=https://school.instructure.com npx -y canvaslmsmcpkit
claude_desktop_config.json
{
"mcpServers": {
"canvas-lms": {
"command": "npx",
"args": ["-y", "canvaslmsmcpkit"],
"env": {
"CANVAS_API_TOKEN": "your-token",
"CANVAS_BASE_URL": "https://school.instructure.com",
"CANVAS_ROLE": "student"
}
}
}
}
Tool Reference

308 agent tools, role-scoped.

Set CANVAS_ROLE=student to expose only what a student needs. A sample of the surface:

term_snapshot ★Whole term in one GraphQL call
pass_status ★Banked-pass detection per course
whats_due ★Smart cross-course deadline triage
submit_assignment ★Text, URL, or file + pre-flight
download_course_materials ★Bulk-pull every file
get_gradesCurrent + projected scores
list_missing_submissionsPast-due, unsubmitted
list_assignmentsBy course, with due dates
get_assignmentLock windows, attempts
get_submissionStatus, attempts, lateness
list_coursesActive enrollments + terms
get_courseSyllabus + external-tool detect
list_modulesWith completion state
list_files+ download_file
list_announcementsPer-course, recent first
inboxThreads, non-mutating read
send_messageCanvas inbox message
post_discussion_replyParticipation points
create_calendar_eventDrop dates on your calendar
graphqlRaw query passthrough

Give your agent a Canvas login.

Free, open, and runs entirely on your own token. Set up in under a minute.