Brightspace

Building a MCP server for Purdue students to connect their Brightspace accounts
  • python

4

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "pranav-vijayananth-brightspace-mcp-server": {
      "command": "/absolute/path/to/brightspace-mcp-server/venv/bin/python",
      "args": [
        "/absolute/path/to/brightspace-mcp-server/mcp_server.py"
      ],
      "env": {
        "PURDUE_PASSWORD": "YOUR_PASSWORD",
        "PURDUE_USERNAME": "YOUR_USERNAME"
      }
    }
  }
}

You can access your Purdue Brightspace data through Claude Desktop using a dedicated MCP server. This server authenticates with your Purdue account, navigates Brightspace via browser automation, and exposes tools that let you ask Claude natural-language questions about your courses and related data.

How to use

Use Claude Desktop to interact with Brightspace data through natural language. After you configure the MCP server, you can ask Claude questions like “What courses am I taking?” and Claude will fetch your course list from Brightspace. The server handles the login flow, including Duo Mobile 2FA, and returns your data so Claude can present it in a human-friendly way.

How to install

Prerequisites: Python 3.12, macOS (recommended), Purdue Career Account with Brightspace access, Duo Mobile configured, and Claude Desktop installed.

Step 1. Clone the project and set up the environment.

# Clone the repository
git clone https://github.com/your-username/brightspace-mcp-server.git
cd brightspace-mcp-server

# Run the automated setup to create a Python 3.12 virtual environment and install dependencies
python3 setup.py

# Activate the virtual environment
source venv/bin/activate  # macOS/Linux
# or
venv\Scripts\activate  # Windows

Step 2. Configure credentials.

PURDUE_USERNAME=your_purdue_username
PURDUE_PASSWORD=your_purdue_password

Step 3. Test the scraper optional checks (auth and course scraping) if you want to verify locally.

# Test basic connectivity and authentication
python testing/playwright_trial.py

# Test full course scraping
python brightspace_api.py

Configuration and MCP integration

Configure Claude Desktop to load the MCP server as a local process. You will run the Python interpreter from your virtual environment and point to the MCP server script.

{
  "mcpServers": {
    "brightspace": {
      "command": "/absolute/path/to/brightspace-mcp-server/venv/bin/python",
      "args": [
        "/absolute/path/to/brightspace-mcp-server/mcp_server.py"
      ],
      "env": [
        {"name": "PURDUE_USERNAME", "value": "YOUR_USERNAME"},
        {"name": "PURDUE_PASSWORD", "value": "YOUR_PASSWORD"}
      ]
    }
  }
}

Replace each "/absolute/path/to/" with your actual project path. For example, if your project is under /Users/you/Documents/brightspace-mcp-server, use that base path.

Troubleshooting and tips

If the MCP server does not show up in Claude Desktop, check that all paths are absolute, the Python version is 3.12, and you fully restart Claude Desktop after saving the config.

If authentication fails, ensure the credentials in the environment are correct, run the local test script, and approve Duo Mobile promptly when prompted.

If no courses are found, run the scraper directly and verify Brightspace enrollment. CSS selectors may need updates if Brightspace UI changes.

Development and available tools

The MCP server exposes tools that allow Claude to query Brightspace data. Available tools include a basic test tool and planned data-fetching tools.

Available tools described include:

  • hello: Test that the MCP server is working
  • get_courses: Retrieve the list of enrolled courses (planned/soon)
  • get_assignments: Retrieve assignments for courses (planned/soon)

Available tools

hello

Test that the MCP server is working and responds to basic queries.

get_courses

Fetch the list of courses the user is enrolled in (upcoming feature).

get_assignments

Fetch assignments for enrolled courses (upcoming feature).

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
Brightspace MCP Server - pranav-vijayananth/brightspace-mcp-server | VeilStrat