Get the FREE Ultimate OpenClaw Setup Guide →

brightspace

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

Installation
Run this command in your terminal to add the MCP server to Claude Code.
Run in terminal:
Command
claude mcp add --transport stdio pranav-vijayananth-brightspace-mcp-server python /absolute/path/to/brightspace-mcp-server/mcp_server.py \
  --env PURDUE_PASSWORD="your_purdue_password" \
  --env PURDUE_USERNAME="your_purdue_username"

How to use

This MCP server provides controlled access to your Purdue Brightspace data through Claude Desktop. Built with Playwright, it logs into Brightspace, handles Purdue Duo Mobile 2FA, and exposes data via the MCP interface so Claude can respond to natural language queries about your courses, assignments, and grades. At the moment, the project focuses on course list extraction and authentication flow, with ongoing development for assignments and grade tracking. Once running, you can ask Claude questions like, "What courses am I taking?" and Claude will route the request through the Brightspace MCP server to fetch your enrolled courses. The server is designed to be used with Claude Desktop by adding a configured tool named brightspace, which points Claude to the local MCP server you run with Python.

To verify the integration, you can use the built-in hello tool and later expand to additional tools (e.g., get_courses). The server authentication uses your local environment credentials, stored securely in a .env file, and prompts for Duo Mobile verification during the login flow. As features mature, more tools will be added to retrieve assignments, grades, and other Brightspace data, all while respecting your privacy and Purdue's terms of service.

How to install

Prerequisites

  • Python 3.12 installed
  • macOS (recommended; other platforms may work with Playwright, but testing shown on macOS)
  • Claude Desktop installed
  • Purdue Career Account with Brightspace access
  • Duo Mobile app configured for your account

Step 1: Clone the repository

git clone https://github.com/your-username/brightspace-mcp-server.git
cd brightspace-mcp-server

Step 2: Set up a Python virtual environment and install dependencies

# Create a Python 3.12 virtual environment
python3 -m venv venv

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

# Install dependencies (assumes setup.py handles setup tasks)
pip install -r requirements.txt

Step 3: Configure credentials Create a .env file in the project root with your Brightspace credentials:

PURDUE_USERNAME=your_purdue_username
PURDUE_PASSWORD=your_purdue_password

⚠️ Do not commit this file to version control. It is included in .gitignore.

Step 4: Run the MCP server locally

# Start the server (example; ensure the path to mcp_server.py is correct in mcp_config)
python mcp_server.py

Step 5: Configure Claude Desktop (once the server is running)

  • Open Claude Desktop > File > Settings > Developer > Edit Config
  • Add a configuration pointing to the local MCP server, e.g.:
{
  "mcpServers": {
    "brightspace": {
      "command": "/absolute/path/to/brightspace-mcp-server/venv/bin/python",
      "args": [
        "/absolute/path/to/brightspace-mcp-server/mcp_server.py"
      ]
    }
  }
}
  • Replace /absolute/path/to/ with your actual project path. Save and restart Claude Desktop.

Step 6: Test the integration

  • In Claude Desktop, try:
    • "What tools do you have available?"
    • "Can you use the hello tool?"

Notes: The setup script in the repository (setup.py) can automate creating a Python 3.12 virtual environment and installing dependencies. If you prefer, you can manually set up a venv and install requirements before running the MCP server.

Additional notes

Tips and caveats:

  • The scraper relies on Playwright and may require updating CSS selectors if Brightspace UI changes; if a failure occurs, re-run the authentication flow to refresh the session.
  • Duo Mobile prompts appear during automated login; ensure you have access to approve promptly.
  • Environment variables are read from a .env file; keep it secure and never commit it to git.
  • The current MCP tool set centers on basic data retrieval (e.g., course lists) with expansion planned for assignments and grades as development progresses.
  • Absolute paths are required in Claude Desktop configurations to ensure the server is correctly located by the tool.
  • If you encounter issues, check Claude Desktop logs and verify Python version is 3.12.

Related MCP Servers

Sponsor this space

Reach thousands of developers