Canvas MCP Server

by DMontgomery40
Verified
  • build
import { CanvasCourse, CanvasAssignment, CanvasSubmission, CanvasUser, CanvasEnrollment, CreateCourseArgs, UpdateCourseArgs, CreateAssignmentArgs, UpdateAssignmentArgs, SubmitGradeArgs, EnrollUserArgs, CanvasDiscussionTopic, CanvasModule, CanvasModuleItem, CanvasQuiz, CanvasAnnouncement, CanvasUserProfile, CanvasScope, CanvasAssignmentSubmission } from './types.js'; export declare class CanvasClient { private client; private baseURL; constructor(token: string, domain: string); private getNextPageUrl; listCourses(): Promise<CanvasCourse[]>; getCourse(courseId: number): Promise<CanvasCourse>; createCourse(args: CreateCourseArgs): Promise<CanvasCourse>; updateCourse(args: UpdateCourseArgs): Promise<CanvasCourse>; deleteCourse(courseId: number): Promise<void>; listAssignments(courseId: number): Promise<CanvasAssignment[]>; getAssignment(courseId: number, assignmentId: number): Promise<CanvasAssignment>; createAssignment(args: CreateAssignmentArgs): Promise<CanvasAssignment>; updateAssignment(args: UpdateAssignmentArgs): Promise<CanvasAssignment>; deleteAssignment(courseId: number, assignmentId: number): Promise<void>; getSubmissions(courseId: number, assignmentId: number): Promise<CanvasSubmission[]>; getSubmission(courseId: number, assignmentId: number, userId: number): Promise<CanvasSubmission>; submitGrade(args: SubmitGradeArgs): Promise<CanvasSubmission>; listUsers(courseId: number): Promise<CanvasUser[]>; getEnrollments(courseId: number): Promise<CanvasEnrollment[]>; enrollUser(args: EnrollUserArgs): Promise<CanvasEnrollment>; unenrollUser(courseId: number, enrollmentId: number): Promise<void>; getCourseGrades(courseId: number): Promise<CanvasEnrollment[]>; getUserProfile(): Promise<CanvasUserProfile>; listStudentCourses(): Promise<CanvasCourse[]>; listModules(courseId: number): Promise<CanvasModule[]>; getModule(courseId: number, moduleId: number): Promise<CanvasModule>; listModuleItems(courseId: number, moduleId: number): Promise<CanvasModuleItem[]>; getModuleItem(courseId: number, moduleId: number, itemId: number): Promise<CanvasModuleItem>; listDiscussionTopics(courseId: number): Promise<CanvasDiscussionTopic[]>; getDiscussionTopic(courseId: number, topicId: number): Promise<CanvasDiscussionTopic>; listAnnouncements(courseId: string): Promise<CanvasAnnouncement[]>; listQuizzes(courseId: string): Promise<CanvasQuiz[]>; getQuiz(courseId: string, quizId: number): Promise<CanvasQuiz>; createQuiz(courseId: number, quizData: Partial<CanvasQuiz>): Promise<CanvasQuiz>; updateQuiz(courseId: number, quizId: number, quizData: Partial<CanvasQuiz>): Promise<CanvasQuiz>; deleteQuiz(courseId: number, quizId: number): Promise<void>; listFiles(courseId: number): Promise<any[]>; getFile(fileId: number): Promise<any>; /** * List scopes for a given account. * This endpoint is BETA and may change. * * GET /api/v1/accounts/:account_id/scopes * Optional parameter: group_by (e.g., 'resource_name') */ listTokenScopes(accountId: number, groupBy?: string): Promise<CanvasScope[]>; submitAssignment(args: { course_id: string; assignment_id: number; user_id: number; submission_type: string; body?: string; }): Promise<CanvasAssignmentSubmission>; }