brightspace-mcp-server 5.2.1 → 5.2.2

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.
package/README.md CHANGED
@@ -35,12 +35,11 @@ Works with Claude Desktop, Claude Code, Cursor, ChatGPT Desktop, Windsurf, and a
35
35
  **Rather have the AI install it?** Paste this into Claude Code, Cursor, Windsurf, Copilot, or Codex:
36
36
 
37
37
  ```
38
- Install brightspace-mcp-server for me by following
39
- https://github.com/RohanMuppa/brightspace-mcp-server/blob/main/LLMs.md
40
- (use --purdue at Purdue, --suny at SUNY, --western at Western University, --tudelft at TU Delft, --cuny at CUNY, --leiden at Leiden, --mcgill at McGill, --mun at Memorial University, --ngeeann at Ngee Ann Polytechnic, or --javeriana at Javeriana Cali).
38
+ Install the Brightspace MCP server for me. Follow the steps at
39
+ https://raw.githubusercontent.com/RohanMuppa/brightspace-mcp-server/main/LLMs.md
41
40
  ```
42
41
 
43
- The AI does everything it can by itself, then gives you one terminal command. That command asks for your password and waits for you to approve the sign-in on your phone. That's the only part that needs you. Afterwards the AI checks that it can see your courses.
42
+ The AI asks which school you attend and your username, does everything it can by itself, then gives you one terminal command. That command asks for your password and waits for you to approve the sign-in on your phone. That's the only part that needs you. Afterwards the AI checks that it can see your courses.
44
43
 
45
44
  Using a different AI app? Add the command `npx -y brightspace-mcp-server@latest` to its MCP settings (on Windows: `cmd /c npx -y brightspace-mcp-server@latest`). Codex and Claude Code commands, and general steps, are in [docs/troubleshooting.md](docs/troubleshooting.md).
46
45
 
@@ -81,7 +80,7 @@ School-specific quirks are in [docs/sign-in.md](docs/sign-in.md#per-school-notes
81
80
  | Calendar | "When is my midterm?" · "Is lab cancelled on Thursday?" |
82
81
  | Instructors and TAs | "Which students haven't submitted Lab 4 yet?" (students see "Instructor or TA access required" for these) |
83
82
 
84
- If Brightspace hides part of the data, such as a submission, quiz attempts, or part of the quiz list, the answer says "unknown" or "incomplete" rather than "missing" or "complete". Full tool reference: [LLMs.md](LLMs.md).
83
+ If Brightspace hides part of the data, such as a submission, quiz attempts, or part of the quiz list, the answer says "unknown" or "incomplete" rather than "missing" or "complete". Full tool reference: [docs/reference/tools.md](docs/reference/tools.md).
85
84
 
86
85
  ## Download a whole course
87
86
 
@@ -106,11 +105,11 @@ Every file in the course's Content area is saved into folders named after its mo
106
105
  - Each run is capped at 300 files and 5 GB. The assistant's version also stops cleanly after 8 minutes. Ask it again to continue. Ctrl-C stops the CLI cleanly (exit 130) with no partial file left behind.
107
106
  - Exit codes: 0 when everything was done, 1 if a file failed or wasn't attempted (including a sign-in that expired partway; saved files are kept), 2 for a usage error. Links and embedded videos aren't files, so the result counts them separately rather than as missing downloads.
108
107
 
109
- **Some folders are refused.** Downloads can't go to your home folder itself, a drive root, a hidden (dot) folder such as `~/.ssh`, `~/Library` (except cloud-drive and iCloud folders), system folders such as `/etc` or `/System`, or on Windows `Windows`, `Program Files`, `ProgramData` and `AppData`. Anything else is fine, including `/tmp`, external drives and `~/Documents`. Choose a folder like `~/Documents/Brightspace`; the refusal names the rule. The same rule applies to `download_file`, `get_syllabus` and every other tool that saves to disk. The person running the server can allow a folder anyway with `D2L_DOWNLOAD_ROOTS` (see [Settings](#settings-you-might-want)). Full rules: [LLMs.md](LLMs.md).
108
+ **Some folders are refused.** Downloads can't go to your home folder itself, a drive root, a hidden (dot) folder such as `~/.ssh`, `~/Library` (except cloud-drive and iCloud folders), system folders such as `/etc` or `/System`, or on Windows `Windows`, `Program Files`, `ProgramData` and `AppData`. Anything else is fine, including `/tmp`, external drives and `~/Documents`. Choose a folder like `~/Documents/Brightspace`; the refusal names the rule. The same rule applies to `download_file`, `get_syllabus` and every other tool that saves to disk. The person running the server can allow a folder anyway with `D2L_DOWNLOAD_ROOTS` (see [Settings](#settings-you-might-want)). Full rules: [docs/internals/downloads.md](docs/internals/downloads.md).
110
109
 
111
110
  ## Tools
112
111
 
113
- The server registers these 29 tools. Each tool's arguments and response fields are in [LLMs.md](LLMs.md#available-tools).
112
+ Every tool the server registers. Each tool's arguments and response fields are in [docs/reference/tools.md](docs/reference/tools.md).
114
113
 
115
114
  - **Courses and grades:** `get_my_courses`, `get_my_grades`, `get_upcoming_due_dates`, `get_calendar_events`
116
115
  - **Assignments and rubrics:** `get_assignments`, `get_assignment_rubric`, `get_assignment_files`, `get_rubrics_for_object`
@@ -153,7 +152,7 @@ Duo, authenticator codes, visible-browser mode, and running without a browser at
153
152
 
154
153
  ## Settings you might want
155
154
 
156
- All optional. Set them in your AI app's MCP `env` config or in your shell. The full list is in [LLMs.md](LLMs.md#environment-variables).
155
+ All optional. Set them in your AI app's MCP `env` config or in your shell. The full list is in [docs/reference/settings.md](docs/reference/settings.md).
157
156
 
158
157
  | Setting | What it does |
159
158
  |---------|--------------|
@@ -191,7 +190,9 @@ Your password is stored in your computer's password store, never in a plaintext
191
190
 
192
191
  ## For developers
193
192
 
194
- Tool reference, response fields, environment variables and the codebase map: [LLMs.md](LLMs.md). What's safe to build against: [STABILITY.md](STABILITY.md).
193
+ - **Changing the code:** start with [AGENTS.md](AGENTS.md). It says which doc to read before touching each area.
194
+ - **Exact behaviour:** [tools](docs/reference/tools.md), [commands](docs/reference/cli.md) and [settings](docs/reference/settings.md).
195
+ - **What's safe to build against:** [STABILITY.md](STABILITY.md). **What changed:** [CHANGELOG.md](CHANGELOG.md).
195
196
 
196
197
  ## License
197
198
 
package/build/index.js CHANGED
@@ -142,7 +142,7 @@ else {
142
142
  const { resolveHttpPort, resolveHttpToken, startHttpServer } = await import("./http-server.js");
143
143
  const running = await startHttpServer({ runtime, token: resolveHttpToken(), port: resolveHttpPort() });
144
144
  stopServing = running.close;
145
- log("INFO", `Brightspace MCP Server by Rohan Muppa — shared HTTP server listening on ${running.url} (29 tools, 4 prompts registered)`);
145
+ log("INFO", `Brightspace MCP Server by Rohan Muppa — shared HTTP server listening on ${running.url} (tools and prompts registered)`);
146
146
  log("INFO", "Leave this running; every MCP client on this computer connects to that URL. Press Ctrl+C to stop.");
147
147
  }
148
148
  catch (error) {
package/build/server.js CHANGED
@@ -104,7 +104,7 @@ export function createMcpServer(runtime) {
104
104
  registerGetDropboxFeedback(server, apiClient);
105
105
  registerGetRubricsForObject(server, apiClient);
106
106
  registerDownloadDropboxSubmissionFile(server, apiClient);
107
- log("DEBUG", "MCP tools registered (29 tools)");
107
+ log("DEBUG", "MCP tools registered");
108
108
  // Register MCP prompts — surfaced in clients (e.g. Claude Desktop) as a
109
109
  // picker, distinct from tools. Each one is a canned user message that
110
110
  // names our own tools by name, so a client with no idea what to ask
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brightspace-mcp-server",
3
- "version": "5.2.1",
3
+ "version": "5.2.2",
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",