# Canvas

Canvas MCP is a collection of Canvas LMS tools for the model context protocol. This allows you to query your courses and get help for your assignments in the AI app of your choice!

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add aryankeluskar/canvas-mcp

# Browse available tools
npx -y @smithery/cli@latest tool list aryankeluskar/canvas-mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get aryankeluskar/canvas-mcp get_courses

# Call a tool
npx -y @smithery/cli@latest tool call aryankeluskar/canvas-mcp get_courses '{}'
```

## Direct MCP Connection

Endpoint: `https://canvas-mcp--aryankeluskar.run.tools`

**Required config:**
- `canvasApiKey` (query) — Open Canvas > Account > Settings > Approved Integrations > New Access Token
- `canvasBaseUrl` (query) — Something like `https://canvas.asu.edu/` or `https://canvas.illinois.edu/`

**Optional config:**
- `gradescopeEmail` (query)
- `gradescopePassword` (query)

## Tools (13)

- `get_courses` — Retrieve all available Canvas courses for the current user. Returns a dictionary mapping course names to their correspo…
- `get_modules` — Retrieve all modules within a specific Canvas course.
- `get_module_items` — Retrieve all items within a specific module in a Canvas course.
- `get_file_url` — Get the direct download URL for a file stored in Canvas.
- `get_course_assignments` — Retrieve all assignments for a specific Canvas course.
- `get_assignments_by_course_name` — Retrieve all assignments for a Canvas course using its name.
- `get_canvas_courses` — Alias for get_courses - retrieve all Canvas courses.
- `get_gradescope_courses` — Retrieve all Gradescope courses for the current user.
- `get_gradescope_course_by_name` — Find a Gradescope course by name.
- `get_gradescope_assignments` — Retrieve all assignments for a Gradescope course.
- `get_gradescope_assignment_by_name` — Find a Gradescope assignment by name.
- `get_cache_stats` — Get cache statistics for debugging purposes. Returns hit/miss counts and cache size.
- `clear_cache` — Clear all cached data. Use this if you need fresh data from Canvas or Gradescope.

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get aryankeluskar/canvas-mcp <tool-name>
```

## Resources

- `canvas://courses` — List of all Canvas courses for the authenticated user
- `gradescope://courses` — List of all Gradescope courses for the authenticated user

## Prompts (3)

- `find_resources` (resource_type, course_name) — Navigate the Canvas hierarchy to find course resources (files, pages, assignments). Follow the order: get_courses -> ge…
- `list_upcoming_assignments` (days) — Get a summary of upcoming assignments across all courses
- `course_overview` (course_name) — Get an overview of a specific course including modules and assignments
