home / mcp / canvas academic mcp server

Canvas Academic MCP Server

Provides real-time access to Canvas data for assignments, grades, and calendar events via a local MCP server.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "akshsgaur-cmucanvasmcpserver": {
      "command": "python",
      "args": [
        "/path/to/your/canvas-mcp-server/src/canvas_server.py"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your_token_here"
      }
    }
  }
}

You can run Canvas Academic Assistant as an MCP server on your computer to query and manage Canvas data directly from Claude Desktop. This setup lets you ask questions about your courses, assignments, grades, and calendar, and get responses without logging into Canvas each time.

How to use

Set up the MCP server and connect it to Claude Desktop. Once connected, you can ask Claude natural questions about your Canvas data and receive answers that come from your own Canvas account.

Practical usage patterns you can try include: getting a list of all active courses, viewing upcoming assignments and deadlines, checking current grades across courses, pulling recent announcements, and inspecting calendar events for planned study sessions or exams.

How to install

Prerequisites: you need a Canvas account, Claude Desktop installed on your computer, and Python 3.10 or newer.

Step 1. Prepare your Canvas API token and environment.

# Step 1: Create and activate a Python virtual environment (example for Unix-like shells)
python3 -m venv venv
source venv/bin/activate

# Step 2: Install required Python packages
pip install mcp httpx python-dotenv pydantic

Additional configuration and setup

The server is designed to run locally and connect to Claude Desktop through a stdio MCP configuration. You will point Claude Desktop to the local Python process that runs the server.

Configure your Canvas API token in the environment when you start the server. The token is kept locally and is not sent to external services.

Configuration snippet (stdio MCP)

{
  "mcpServers": {
    "Canvas Academic Assistant": {
      "command": "/path/to/your/canvas-mcp-server/venv/bin/python",
      "args": [
        "/path/to/your/canvas-mcp-server/src/canvas_server.py"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your_token_here"
      },
      "enabled": true,
      "autostart": true
    }
  }
}

Troubleshooting and tips

If the MCP server cannot connect, verify that Python is correctly installed, the virtual environment is active, and the Canvas API token remains valid.

If you see no data, confirm you are enrolled in active courses and that your Canvas account has the necessary permissions.

Security and data access

Your Canvas token stays on your computer. No data is sent to external servers. All communication happens locally between Claude Desktop and your Canvas instance.

What you can access

You can access enrolled courses, assignment details and due dates, grades and submissions, course announcements, calendar events, and recent Canvas activity. You have the same permissions as you would when using Canvas directly.

Available tools

view_active_courses

Fetch and display all active courses you are enrolled in, including course details and enrollment information.

list_assignments

Retrieve upcoming assignments, due dates, and detailed information for selected courses.

grade_monitor

Show current grades across all courses and track submission statuses for assignments.

calendar_events

Access Canvas calendar events and upcoming due dates for planning.

announcements

Fetch recent announcements from your courses and display them for quick updates.

recent_activity

Show recent activity within Canvas to help you stay informed about course changes.