Skip to main content
Glama

canvas_enroll_user

Enroll a user in a Canvas course by specifying course ID, user ID, role, and enrollment state using the MCP server for Canvas API interactions.

Instructions

Enroll a user in a course

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYesID of the course
enrollment_stateNoState of the enrollment (active, invited, etc.)
roleNoRole for the enrollment (StudentEnrollment, TeacherEnrollment, etc.)
user_idYesID of the user to enroll

Implementation Reference

  • MCP CallToolRequest handler for canvas_enroll_user: validates input arguments and calls CanvasClient.enrollUser method.
    case "canvas_enroll_user": { const enrollArgs = args as unknown as EnrollUserArgs; if (!enrollArgs.course_id || !enrollArgs.user_id) { throw new Error("Missing required fields: course_id and user_id"); } const enrollment = await this.client.enrollUser(enrollArgs); return { content: [{ type: "text", text: JSON.stringify(enrollment, null, 2) }] }; }
  • src/index.ts:436-454 (registration)
    Tool registration entry in the TOOLS array, including name, description, and JSON schema for input validation. Used by ListToolsRequest handler.
    name: "canvas_enroll_user", description: "Enroll a user in a course", inputSchema: { type: "object", properties: { course_id: { type: "number", description: "ID of the course" }, user_id: { type: "number", description: "ID of the user to enroll" }, role: { type: "string", description: "Role for the enrollment (StudentEnrollment, TeacherEnrollment, etc.)" }, enrollment_state: { type: "string", description: "State of the enrollment (active, invited, etc.)" } }, required: ["course_id", "user_id"] } },
  • CanvasClient.enrollUser: Makes the actual Canvas API POST request to enroll a user in a course.
    async enrollUser(args: EnrollUserArgs): Promise<CanvasEnrollment> { const { course_id, user_id, role = 'StudentEnrollment', enrollment_state = 'active' } = args; const response = await this.client.post(`/courses/${course_id}/enrollments`, { enrollment: { user_id, type: role, enrollment_state } }); return response.data;
  • TypeScript type definition for EnrollUserArgs used in CanvasClient.enrollUser and MCP handler type casting.
    export interface EnrollUserArgs { course_id: number; user_id: number; role?: string; enrollment_state?: string; notify?: boolean; limit_privileges_to_course_section?: boolean; }

Other Tools

Related Tools

Latest Blog Posts

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/DMontgomery40/mcp-canvas-lms'

If you have feedback or need assistance with the MCP directory API, please join our Discord server