brightspace-mcp-server 3.9.7 → 3.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +61 -0
  2. package/package.json +8 -2
package/README.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Brightspace MCP Server
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/brightspace-mcp-server.svg)](https://www.npmjs.com/package/brightspace-mcp-server)
4
+ [![npm downloads](https://img.shields.io/npm/dm/brightspace-mcp-server.svg)](https://www.npmjs.com/package/brightspace-mcp-server)
5
+ [![CI](https://img.shields.io/github/actions/workflow/status/RohanMuppa/brightspace-mcp-server/ci.yml?branch=main)](https://github.com/RohanMuppa/brightspace-mcp-server/actions/workflows/ci.yml)
6
+ [![License: MIT](https://img.shields.io/github/license/RohanMuppa/brightspace-mcp-server.svg)](LICENSE)
7
+ [![Node >= 20](https://img.shields.io/node/v/brightspace-mcp-server.svg)](package.json)
8
+
9
+ **Official repo:** github.com/RohanMuppa/brightspace-mcp-server · [npm](https://www.npmjs.com/package/brightspace-mcp-server) — forks of this README are not maintained.
10
+
11
+ **Contents:** [Try It](#try-it) · [Install](#install) · [Supported schools](#supported-schools) ·
12
+ [Session Expired?](#session-expired) · [No browser?](#no-browser-paste-a-session-cookie-or-token) ·
13
+ [Troubleshooting](#troubleshooting) ·
14
+ [Does it work with ChatGPT, Cursor, Windsurf or Claude Code?](#does-it-work-with-chatgpt-cursor-windsurf-or-claude-code) ·
15
+ [Is my password safe?](#is-my-password-safe) · [Does my school work?](#does-my-school-work) ·
16
+ [Why do I have to approve MFA sometimes?](#why-do-i-have-to-approve-mfa-sometimes) ·
17
+ [What You Can Ask About](#what-you-can-ask-about)
18
+
3
19
  > **By [Rohan Muppa](https://github.com/rohanmuppa), ECE @ Purdue**
4
20
 
5
21
  Talk to your Brightspace courses with AI. Ask about grades, due dates, quizzes, announcements, and more. Works with Claude Desktop, Claude Code, Cursor, ChatGPT Desktop, Windsurf, and any MCP client.
@@ -115,6 +131,18 @@ Building against this server or opening a PR? See [STABILITY.md](STABILITY.md) f
115
131
 
116
132
  **Running from a source checkout or fork?** When a newer release is published, the server tells a source checkout to `git pull` and `npm run build` rather than to install the npm package. For a fork you maintain, set `D2L_NO_UPDATE_CHECK=1` in the server's environment to turn off upstream update notices.
117
133
 
134
+ ## Supported schools
135
+
136
+ | School | Login flow | Setup preset |
137
+ |--------|-----------|--------------|
138
+ | Purdue | Microsoft Entra (number matching, authenticator code, or visible browser) | `--purdue` |
139
+ | SUNY | Shared tenant with a campus picker | `--suny` |
140
+ | Western University | Microsoft Entra | `--western` |
141
+ | TU Delft | NetID via SURFconext (headless, no MFA) | `--tudelft` |
142
+ | CUNY | CUNY Login, with an authenticator code on every full sign-in | `--cuny` |
143
+ | Leiden University | SURFconext → Microsoft Entra | `--leiden` |
144
+ | Any other D2L school | Paste your Brightspace URL; unsupported login pages fall back to the visible browser | run `setup` with no flag |
145
+
118
146
  ## Session Expired?
119
147
 
120
148
  There's no login step — asking a question signs you in.
@@ -160,6 +188,39 @@ If this is a Docker or other headless setup with no `~/.brightspace-mcp/config.j
160
188
 
161
189
  **Which version am I running:** ask the assistant anything that calls `get_server_info` — it reports the running version, Node runtime, and config/session paths with no network call. If you're on a source checkout instead of the published npm package, that version comes from the local `build/` output, so it only reflects your latest `npm run build`, not what's on npm.
162
190
 
191
+ ## Does it work with ChatGPT, Cursor, Windsurf or Claude Code?
192
+
193
+ Yes — it's a standard MCP server, so it works with Claude Desktop, Claude Code, Cursor, ChatGPT Desktop,
194
+ Windsurf, Codex, and any other MCP client. The setup wizard auto-configures Claude Desktop, Cursor, and
195
+ Codex Desktop/CLI, and uses `claude mcp add` for Claude Code, when it detects them on your machine. Any
196
+ other client just needs the same `npx -y brightspace-mcp-server@latest` command added to its MCP config
197
+ (see "Using a different client?" above for exact steps).
198
+
199
+ ## Is my password safe?
200
+
201
+ Your password is saved in your operating system's native credential store (macOS Keychain, Windows
202
+ Credential Manager, or Linux Secret Service) — never in a plaintext file. Session state on disk is
203
+ encrypted with AES-256-GCM. None of the server's tools submit, edit, or delete anything in your
204
+ courses; they only read grades, assignments, and course content. The second factor itself (an
205
+ approval tap, a number match, or a TOTP code) stays on your phone or authenticator app — the server
206
+ never sees or stores it.
207
+
208
+ ## Does my school work?
209
+
210
+ If your school runs D2L Brightspace, yes. Purdue, SUNY, Western University, TU Delft, CUNY, and Leiden
211
+ have dedicated setup presets with automated sign-in; see [Supported schools](#supported-schools) above
212
+ for which flag to use. Any other Brightspace school works too — run `setup` without a flag and paste
213
+ your school's Brightspace URL, and an unsupported login page falls back to a visible browser window
214
+ you complete by hand.
215
+
216
+ ## Why do I have to approve MFA sometimes?
217
+
218
+ How often you're asked is your school's sign-in frequency setting, not something this server controls —
219
+ the same approval you'd see signing in through a regular browser. Set `D2L_REMEMBER_MFA=true` to have
220
+ the server tick Microsoft's "Don't ask again" box during sign-in so later logins can skip the second
221
+ factor for as long as your school's tenant allows; it's opt-in and off by default, so leave it off on a
222
+ shared machine.
223
+
163
224
  ## What You Can Ask About
164
225
 
165
226
  | Topic | Examples |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brightspace-mcp-server",
3
- "version": "3.9.7",
3
+ "version": "3.9.8",
4
4
  "mcpName": "io.github.rohanmuppa/brightspace",
5
5
  "description": "MCP server for Brightspace (D2L). Check grades, due dates, assignments, announcements, syllabus, rosters and more via Claude, ChatGPT, Cursor, Windsurf, or any MCP client.",
6
6
  "type": "module",
@@ -83,6 +83,12 @@
83
83
  "ai",
84
84
  "duo",
85
85
  "sso",
86
- "d2l-brightspace"
86
+ "d2l-brightspace",
87
+ "claude-code",
88
+ "due-dates",
89
+ "suny",
90
+ "tu-delft",
91
+ "cuny",
92
+ "leiden"
87
93
  ]
88
94
  }