MCP.so
Sign In
B

Brightspace Mcp Server

@RohanMuppa

About Brightspace Mcp Server

MCP server for Brightspace (D2L): check grades, due dates, announcements, rosters & more using Claude, ChatGPT, Cursor, or any MCP client. Built with TypeScript and the D2L REST API.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "brightspace": {
      "command": "npx",
      "args": [
        "-y",
        "brightspace-mcp-server@latest"
      ]
    }
  }
}

Tools

12

Check if you are authenticated with Brightspace. Run the brightspace-auth CLI first to authenticate. Use this when the user asks if they're logged in, if authentication is working, or when other tools return auth errors.

Fetch your enrolled Brightspace courses with names, codes, and IDs. Use this when the user asks about their courses, enrolled classes, what they're taking this semester, or needs a course ID for other queries.

Fetch upcoming due dates across all your courses. Shows assignments, quizzes, and other items due within the specified time window. Use this when the user asks about deadlines, what's due, upcoming work, or what they need to do this week.

Fetch your grade breakdown for a specific course or all enrolled courses. Shows grade items with points, percentages, and comments. Use this when the user asks about grades, scores, marks, GPA, academic performance, or how they're doing in a class.

Fetch recent announcements from your courses. Can filter to a specific course or get announcements across all courses. Use this when the user asks about announcements, news, updates from instructors, recent posts, or what professors said.

Fetch assignments and quizzes for a specific course or all enrolled courses. Shows dropbox submissions and quizzes with due dates, status, and rubric info. Use this when the user asks about assignments, homework, what to submit, quizzes, or assignment details and rubrics.

Fetch the content tree for a course showing modules, topics, files, and links. Use this when the user asks about course materials, lecture slides, uploaded files, content structure, or what's in a course module. Use moduleTitle to filter to a specific module (e.g. 'Labs', 'Staff', 'Homeworks') instead of fetching the entire tree. Use maxDepth to limit recursion depth for a table-of-contents view.

Download a file from course content or assignment submissions to a local directory. Use this when the user wants to download, save, or get a file from Brightspace course content or dropbox submissions. IMPORTANT: You MUST ask the user where they want to save the file before calling this tool. Never guess or assume a download directory. After identifying the file to download, suggest a clean readable filename to the user (e.g., 'Lecture 7 - Memory Management.pdf' instead of 'L07_CS251_2026SP_v2.pdf') and ask if they'd like to rename it. Pass their preferred name as customFilename, or omit it to keep the original.

Fetch all email addresses for everyone in a course — instructors, TAs, and students. Use this when the user wants a list of emails for a class, needs to email the whole class, or wants contact info for everyone enrolled.

Fetch the roster for a course including instructors, TAs, and optionally students with their names, emails, and roles. Use this when the user asks about classmates, instructor contact info, TA emails, professor names, or who's in a class. By default returns only instructors and TAs for privacy. Use includeStudents to get full class list.

Fetch the syllabus/overview text and optional attachment for a course. Returns the course overview description as markdown. If downloadPath is provided, also downloads the syllabus attachment (e.g. PDF). IMPORTANT: You MUST ask the user where they want to save the file before calling this tool with a downloadPath.

Fetch discussion board content for a course including forums, topics, and posts. Use this when the user asks about discussion boards, forum posts, class discussions, or wants to see what's been posted. Provide just courseId to list all forums and their topics. Add forumId to get topics and posts for a specific forum. Add both forumId and topicId to get all posts in a specific discussion topic.

Overview

What is Brightspace Mcp Server?

Brightspace Mcp Server is an MCP (Model Context Protocol) server that connects AI applications like Claude, ChatGPT, and Cursor to a student’s Brightspace learning management system. It allows users to query grades, assignments, announcements, course content, and more directly through natural language prompts. Built for any school using Brightspace, it runs locally via Node.js and handles authentication and session management.

How to use Brightspace Mcp Server?

Requires Node.js 18+. Run npx brightspace-mcp-server setup (add --purdue for Purdue University) to launch a wizard that handles credentials, MFA, and AI client configuration. After installation, restart the AI client and start asking questions. If a session expires, use npx brightspace-mcp-server auth to re-authenticate.

Key features of Brightspace Mcp Server

  • Query real-time grades across all courses
  • List upcoming assignments and due dates
  • Retrieve course announcements and discussion posts
  • Download lecture slides and course content
  • View course roster with instructor/TA contact info
  • Works with any Brightspace‑enabled institution
  • Automatic session re‑authentication and encrypted local storage

Use cases of Brightspace Mcp Server

  • “Am I passing all my classes?” – check current grades across courses.
  • “What’s due in the next 48 hours?” – summarize pending assignments.
  • “Download the midterm review slides and turn them into flashcards.”
  • “Build me a study schedule based on my upcoming due dates.”
  • “Summarize the latest discussion posts from my CS class.”

FAQ from Brightspace Mcp Server

What runtime or dependencies are required?

Node.js 18+ must be installed. On WSL or Docker, additional Playwright dependencies may be needed (npx playwright install-deps chromium).

Where are my credentials stored?

Credentials and session tokens remain on your local machine at ~/.brightspace-mcp/config.json. Session tokens are encrypted (AES‑256‑GCM), and all traffic to Brightspace uses HTTPS.

How does authentication work?

The setup wizard handles credentials and multi‑factor authentication (e.g., Duo push). Sessions re‑authenticate automatically; if auto‑reauth fails, run npx brightspace-mcp-server auth to retry.

What if the headless login fails on Windows?

The default login mode is headed (a browser window opens). If headless mode was enabled and fails, switch back to headed mode by removing the D2L_HEADLESS=true environment variable.

Is any data sent to third parties?

No. All data stays local or goes directly to your school’s Brightspace instance. Nothing is sent to any external server other than the login page and Brightspace API endpoints.

Frequently asked questions

What runtime or dependencies are required?

Node.js 18+ must be installed. On WSL or Docker, additional Playwright dependencies may be needed (`npx playwright install-deps chromium`).

Where are my credentials stored?

Credentials and session tokens remain on your local machine at `~/.brightspace-mcp/config.json`. Session tokens are encrypted (AES‑256‑GCM), and all traffic to Brightspace uses HTTPS.

How does authentication work?

The setup wizard handles credentials and multi‑factor authentication (e.g., Duo push). Sessions re‑authenticate automatically; if auto‑reauth fails, run `npx brightspace-mcp-server auth` to retry.

What if the headless login fails on Windows?

The default login mode is headed (a browser window opens). If headless mode was enabled and fails, switch back to headed mode by removing the `D2L_HEADLESS=true` environment variable.

Is any data sent to third parties?

No. All data stays local or goes directly to your school’s Brightspace instance. Nothing is sent to any external server other than the login page and Brightspace API endpoints.

Comments

More AI & Agents MCP servers