Enables the creation of Canvas Common Cartridge (.imscc) packages, allowing for the structured assembly of courses, modules, assignments, pages, and rubrics compatible with the Canvas Learning Management System.
Utilizes Instructure's canvas_cc framework to build standardized educational content cartridges that adhere to Canvas-profile Common Cartridge specifications.
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., "@imscc-mcpCreate a Canvas cartridge for 'English 101' including a rubric and two assignments."
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.
imscc-mcp
Repo: https://github.com/InquiryInstitute/imscc_mcp
MCP server that builds Canvas Common Cartridge (.imscc) packages using Instructure’s Ruby gem canvas_cc. Cartridges are Canvas-profile CC files; many LMSes (including Populi) can import valid Common Cartridge 1.x zip/imscc.
Prerequisites
Node.js ≥ 18
Ruby + Bundler
From this repo root:
bundle install(installs gems intovendor/bundleper.bundle/config)
Setup
cd ~/GitHub/imscc_mcp
bundle install
npm install
npm run buildTests
bundle install
npm install
npm testRuns integration checks on ruby/build_cartridge.rb: successful builds produce a ZIP with imsmanifest.xml; invalid specs are rejected.
Run
node dist/index.jsCursor / MCP client
Point command at node and args at the absolute path to dist/index.js after npm run build. No env vars are required.
Tools
Tool | Purpose |
| Build |
| Minimal JSON example for |
| Check |
| Links to |
Spec notes
output_directory: absolute path; created if missing.course.title: required.Assignments — Supported: groups, points,
submission_types(e.g.online_text_entry,online_upload), due dates, HTML body. Link a rubric withrubric_identifier(must match arubrics[].identifier), plus optionalrubric_use_for_grading/rubric_hide_score_total.Rubrics —
rubrics[]withidentifier,external_identifier(defaults toidentifier),title, optionalpoints_possible, andcriteria[]each withid,description,points, andratings[](id,description,points,criterion_idmatching the criterionid).Slides / decks — There is no separate “slides” type. Package files (e.g.
.pptx,.pdf) underfiles[]withidentifier,file_path(path inside the course files tree), andfile_location(absolute path on the machine that runs the build). Optionally add a module item withcontent_typeAttachmentandidentifierrefset to the file’sidentifier(see canvas_cc module item types).Module items — e.g.
WikiPage+identifierrefmatching a pageidentifier, orExternalUrl+url.Assignments → groups —
assignment_group_identifier_refmust match an assignment groupidentifier.
Importer support (Canvas vs Populi vs others) varies; test imports on your LMS.
For types not yet mapped in ruby/build_cartridge.rb (quizzes, question banks, full LTI, etc.), extend the script using the canvas_cc README.
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.