Connector Β· Learning management system

Canvas LMS MCP Server & Agent Skill

Last updated

ibl.ai publishes a free Canvas LMS agent skill: a SKILL.md that teaches an AI agent to read and write Canvas LMS data and expose it as an MCP tool. Download it, connect your own Canvas LMS credentials, and run the agent on ibl.ai Agentic OS, where you own all the code and the data.

Canvas is Instructure's learning management system for schools, universities and workforce training. It holds courses, enrollments, assignments, submissions, grades, modules, discussions, files and user messages.

What is the Canvas LMS API, and what can an agent read from it?

REST resources under /api/v1 cover courses, users, enrollments, assignments, submissions, grades and conversations. A GraphQL endpoint at /api/graphql covers a subset with the same permissions.

  • API: Canvas LMS REST API (plus Canvas GraphQL API and LTI 1.3 / LTI Advantage) (REST)
  • Access: Issued by your administrator
  • Base URL: https://{canvas-domain}/api/v1/
  • Authentication: OAuth 2.0 authorization code; Personal access token; OAuth 2.0 client credentials with signed JWT (LTI Advantage services)

On Instructure-hosted Canvas, an institution's admin issues developer keys (client ID and secret) scoped to its root account. A user can also generate a personal access token from /profile for testing.

Send Authorization: Bearer <token>. OAuth uses /login/oauth2/auth and /login/oauth2/token; tokens from post-2015 keys expire in 1 hour and need refresh. Admins can enforce per-endpoint scopes like url:GET|/api/v1/courses.

What can an agent read from Canvas LMS?

  • Courses β€” GET /api/v1/courses lists the caller's courses; GET /api/v1/courses/:id returns one course.
  • Enrollments and rosters β€” GET /api/v1/courses/:course_id/enrollments and GET /api/v1/courses/:course_id/users list students, teachers, TAs and observers.
  • Assignments β€” GET /api/v1/courses/:course_id/assignments lists assignments with due dates and points.
  • Submissions and grades β€” GET /api/v1/courses/:course_id/assignments/:assignment_id/submissions lists submissions, scores and grades.
  • Conversations (inbox) β€” GET /api/v1/conversations lists the current user's inbox conversations, newest first.

What can an agent write to Canvas LMS?

  • Assignments β€” POST /api/v1/courses/:course_id/assignments creates; PUT .../assignments/:id edits.
  • Grades and comments β€” PUT /api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id posts a grade or comment visible to the student. Confirm with the user first.
  • Enrollments β€” POST /api/v1/courses/:course_id/enrollments enrolls a user; DELETE .../enrollments/:id concludes, deactivates or deletes. Confirm with the user first.
  • Messages β€” POST /api/v1/conversations sends a message to one or more recipients. Confirm with the user first.
  • Assignment deletion β€” DELETE /api/v1/courses/:course_id/assignments/:id removes an assignment. Confirm with the user first.

Limits: Throttling is per access token. Each response carries X-Request-Cost and X-Rate-Limit-Remaining; an exhausted quota returns 429. Lists return 10 items by default; set per_page and follow the Link header.

Grades, submissions, enrollments and rosters held by a school are FERPA-protected education records. Workforce deployments hold employee training records.

How do I connect Canvas LMS to an AI agent over MCP?

As of October 2026 we found no MCP server published by Instructure itself.

The practical path is to host a small MCP server that wraps the Canvas LMS REST API (plus Canvas GraphQL API and LTI 1.3 / LTI Advantage), or to give the agent the calls directly with the SKILL.md below.

On ibl.ai an MCP connection is three records, and a working integration always needs all three:

  1. Register the server β€” POST …/mcp-servers/ with its URL, a transport (sse, websocket or streamable_http) and an auth_type of none, token or oauth2.
  2. Create a connection that holds the credential, scoped to the whole organization (platform), to a single agent, or to each user (user).
  3. Enable it on the agent β€” mcp-tool in tool_slugs and the server id in mcp_servers. Both lists are replaced, not merged, so read the settings first.

Canvas LMS supports per-user OAuth, so the server can use auth_type=oauth2 with auth_scope=user: each person connects their own Canvas LMS account in the chat the first time the agent needs it.

The field reference is in MCP server connections, and the /iblai-api-agent-mcp skill runs all three steps from a coding agent.

What does the Canvas LMS agent skill do?

The Canvas LMS skill is one SKILL.md file named iblai-connect-canvas. It gives an agent the auth conventions, what to read, which writes need a person's confirmation, the ibl.ai MCP wiring, example prompts and guardrails.

Download the Canvas LMS SKILL.md

Save it as .claude/skills/iblai-connect-canvas/SKILL.md, or in your agent's skills folder. The ibl.ai platform skills it calls come from one install:

$ npx skills add iblai/vibe --all

This connector skill is a starting point maintained on ibl.ai, not part of the iblai/vibe repository.

It was checked against Instructure's documentation on October 20, 2026. Test it against your own Canvas LMS setup before you rely on it.

What can I ask a Canvas LMS agent to do?

  • β€œList every student in BIO 101 who has not submitted the week 6 lab.”
  • β€œExtend the due date of Essay 2 by three days for the whole section.”
  • β€œShow the grade distribution for the last quiz in my Statistics course.”
  • β€œDraft a Canvas inbox message to students missing two or more assignments.”

How do I run a Canvas LMS agent on ibl.ai?

Agentic OS is where the agent runs on ibl.ai: it holds the Canvas LMS MCP connection, the model the agent uses, its instructions and its conversation history.

On ibl.ai you own all the code and the data, run it model-agnostic across any LLM, and pay with no per-seat pricing β€” so you can deploy anywhere, from your own cloud to a fully air-gapped network.

Which ibl.ai agents work with Canvas LMS data?

Where does ibl.ai describe the Canvas LMS integration?

Which ibl.ai platform skills does a Canvas LMS agent use?

What else should I know before connecting Canvas LMS to an AI agent?

Is there an official Canvas LMS MCP server?

Not that we found as of October 20, 2026: Instructure documents the Canvas LMS REST API (plus Canvas GraphQL API and LTI 1.3 / LTI Advantage), not an MCP server of its own.

The SKILL.md on this page gives an agent the integration directly, and any MCP server you host can be registered on ibl.ai.

Who can get Canvas LMS API credentials?

On Instructure-hosted Canvas, an institution's admin issues developer keys (client ID and secret) scoped to its root account. A user can also generate a personal access token from /profile for testing.

Does Canvas LMS data leave my infrastructure when an ibl.ai agent uses it?

On ibl.ai, you own all the code and the data. Self-hosted in your cloud or data center, the agent, its MCP connections and its conversation logs stay inside your perimeter.

Because the platform is model-agnostic, you can point the agent at a model you host, so Canvas LMS records need not reach a third-party model provider.

Is the Canvas LMS agent skill free to use?

Yes. The SKILL.md is a free download with no sign-up. It assumes you already have Canvas LMS credentials, and your agreement with Instructure still governs how you use its API.

Which other data sources can an AI agent connect to alongside Canvas LMS?

Which other Higher Education systems have a connector?

Which other K-12 systems have a connector?

Which other Enterprise systems have a connector?

Every connector, grouped by sector, is on the connectors hub.