Skip to main content
Glama

Brightspace MCP Server

CHANGELOG.md2.34 kB
# Changelog ## [1.0.0] - 2025-10-14 ### Added - ✅ Initial release of Brightspace MCP Server - ✅ Playwright-based web scraper for Purdue Brightspace - ✅ Duo Mobile 2FA authentication support - ✅ Course list extraction functionality - ✅ MCP server integration with Claude Desktop - ✅ Automated setup script with Python 3.12 support - ✅ Environment-based credential management - ✅ Comprehensive README and setup guide - ✅ Example Claude Desktop configuration ### Features - **Authentication**: Automated login with Duo Mobile 2FA - **Course Scraping**: Extract list of enrolled courses with names, codes, and URLs - **MCP Tools**: `hello` tool for testing integration - **Data Export**: Save scraped data to JSON format ### Technical Details - Python 3.12 required (compatibility with greenlet dependency) - Playwright for browser automation - MCP Python SDK for Claude Desktop integration - Works on macOS (tested), should work on other platforms ### Known Issues - Assignment scraping needs CSS selector testing - Grade extraction not yet implemented - Course content/syllabus extraction not yet implemented ### Coming Soon - `get_courses` MCP tool - List all enrolled courses - `get_assignments` MCP tool - Get assignments for a course - `get_grades` MCP tool - Get grade information - `get_announcements` MCP tool - Get course announcements - Better error handling and retry logic - Session persistence and caching ## Development Notes ### What Worked - Playwright successfully handles Duo Mobile 2FA - Course scraping works with CSS selector: `d2l-enrollment-card .d2l-card-container` - MCP integration successful using `claude_desktop_config.json` (NOT `config.json`) - Python 3.12 resolves greenlet compatibility issues (3.13 doesn't work) ### Lessons Learned - Brightspace uses custom web components (`<d2l-my-courses>`) that load dynamically - Must wait for JavaScript to render before scraping - Claude Desktop's "Edit Config" button opens the correct MCP configuration file - MCP server configuration must be in `claude_desktop_config.json`, not `config.json` - Environment variables can be passed through Claude Desktop config or `.env` file ### Credits - Built for Purdue University students - Uses Model Context Protocol for Claude Desktop integration - Playwright for reliable browser automation

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pranav-vijayananth/brightspace-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server