CourseForge turns a syllabus into a real Canvas course. Hand your AI assistant a course outline and get back modules, pages, assignments, quizzes with questions, and discussions, imported straight into Canvas LMS or packaged as a standards-compliant .imscc file that any Canvas instance can import.
Existing Canvas MCP servers read courses well, and some create individual pages or assignments. CourseForge builds the whole course: it generates a Canvas-flavored IMS Common Cartridge (the same format Canvas itself exports) and pushes it through Canvas's content-migrations API, so one import call creates every module, page, assignment, and quiz. The content arrives unpublished, and you review it in Canvas before students see anything.
npx -y courseforge-mcp init # interactive: writes config for Claude Code/Desktop/CursorThen ask your assistant: “Here's my syllabus. Build it into Canvas course 12345.”
Manual config / Claude Code one-liner
claude mcp add courseforge \
-e CANVAS_BASE_URL=https://youruni.instructure.com \
-e CANVAS_API_TOKEN=your-token \
-- npx -y courseforge-mcpGet a token in Canvas: Account → Settings → + New access token.
npx -y @courseforge/imscc build examples/intro-to-chemistry.jsonUpload the resulting .imscc in Canvas under Settings → Import Course Content → Common Cartridge 1.x Package.
npx skills add jasp-nerd/courseforge # canvas-course-builder, imscc-editor, canvas-course-qc🏗️ build_course_from_spec |
One tool call: CourseSpec JSON → validated .imscc → imported into Canvas with progress and issue reporting |
📦 @courseforge/imscc |
Build, parse, modify, and validate Canvas cartridges (the export → edit → re-import loop), with QTI 1.2 quiz generation for 8 question types |
🔌 courseforge-mcp |
20 tools: course/module/page/assignment/quiz/discussion creation, import/export, migration progress, and a pre-publish QC linter |
| 🧠 Agent skills | Interview the teacher, apply university branding, preview the build plan, create everything unpublished. Portable across the open Agent Skills standard |
🌐 @courseforge/canvas-client |
Standalone Canvas REST client: token or browser-cookie auth, Link-header pagination, 429 retry, the 3-step upload dance |
| 🛡️ Tested | 61 tests: golden-file manifests, round-trips on real Canvas exports, zip-slip/zip-bomb/XXE guards, MSW-mocked API, MCP protocol integration |
flowchart LR
A["📄 Syllabus / course idea"] --> B["🤖 AI agent<br/>+ canvas-course-builder skill"]
B --> C["CourseSpec JSON<br/>Zod-validated"]
C -->|"@courseforge/imscc"| D["📦 .imscc<br/>Canvas cartridge"]
D -->|"content_migrations API"| E["🎓 Canvas course<br/>unpublished, ready for review"]
D -->|"manual upload"| E
C -->|"mode: api"| E
E -->|"export"| D
A plain JSON course description called the CourseSpec connects everything. Agents write it, the imscc package turns it into a cartridge with the same structure Canvas's own exports use (including the canvas_export.txt flag and cccv1p0 extension XMLs, which preserve module structure and assignment settings on import), and the MCP server pushes it through the same import pipeline as the Canvas UI.
| CourseForge | vishalsachdev/canvas-mcp | bruchris/canvas-lms-mcp | |
|---|---|---|---|
| Build a whole course in one call | ✅ | — | — |
Generate + import .imscc packages |
✅ | — | — |
| Modify existing Canvas exports | ✅ | — | — |
| Quiz generation incl. questions | ✅ QTI 1.2 | — | New Quizzes API |
| Course/content creation tools | ✅ | partial | ✅ |
| Grading / student-facing tools | — | ✅ | ✅ |
| Language | TypeScript | Python | TypeScript |
vishalsachdev's and bruchris's servers cover course management (grading, feedback, student workflows) far more deeply than CourseForge does. CourseForge covers creation. They run side by side without conflict.
packages/shared CourseSpec Zod schemas (the shared course format)
packages/imscc .imscc build / parse / modify / validate + CLI
packages/canvas-client Canvas REST client (zero MCP dependencies)
packages/mcp The courseforge-mcp server
skills/ Agent Skills (open SKILL.md standard)
fixtures/ Real .imscc exports used in round-trip tests
docs/ IMSCC format ground truth, specs, launch playbook
- Chrome extension (build courses from inside the Canvas UI, no token needed)
- Rubrics + outcomes in cartridges
- New Quizzes (QTI 2.x) authoring
- Course templates gallery
-
.mcpbone-click bundle on the MCP registries
Apache-2.0 © jasp-nerd. Not affiliated with Instructure. Canvas is a trademark of Instructure, Inc.
