brightspace-mcp-server 1.2.5 → 1.5.0
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 +9 -2
- package/build/api/cache.d.ts +1 -1
- package/build/api/cache.js +1 -1
- package/build/api/client.d.ts +1 -1
- package/build/api/client.d.ts.map +1 -1
- package/build/api/client.js +25 -3
- package/build/api/client.js.map +1 -1
- package/build/api/errors.d.ts +2 -2
- package/build/api/errors.js +2 -2
- package/build/api/index.d.ts +1 -1
- package/build/api/index.js +1 -1
- package/build/api/rate-limiter.d.ts +2 -2
- package/build/api/rate-limiter.js +2 -2
- package/build/api/types.d.ts +1 -1
- package/build/api/types.js +1 -1
- package/build/api/version-discovery.d.ts +2 -2
- package/build/api/version-discovery.js +2 -2
- package/build/auth/auth-runner.d.ts +2 -2
- package/build/auth/auth-runner.d.ts.map +1 -1
- package/build/auth/auth-runner.js +61 -12
- package/build/auth/auth-runner.js.map +1 -1
- package/build/auth/browser-auth.d.ts +35 -1
- package/build/auth/browser-auth.d.ts.map +1 -1
- package/build/auth/browser-auth.js +219 -28
- package/build/auth/browser-auth.js.map +1 -1
- package/build/auth/index.d.ts +5 -2
- package/build/auth/index.d.ts.map +1 -1
- package/build/auth/index.js +4 -2
- package/build/auth/index.js.map +1 -1
- package/build/auth/purdue-sso.d.ts +30 -1
- package/build/auth/purdue-sso.d.ts.map +1 -1
- package/build/auth/purdue-sso.js +144 -17
- package/build/auth/purdue-sso.js.map +1 -1
- package/build/auth/session-store.d.ts +1 -1
- package/build/auth/session-store.js +1 -1
- package/build/auth/sso-flow.d.ts +24 -0
- package/build/auth/sso-flow.d.ts.map +1 -0
- package/build/auth/sso-flow.js +21 -0
- package/build/auth/sso-flow.js.map +1 -0
- package/build/auth/suny-sso.d.ts +49 -0
- package/build/auth/suny-sso.d.ts.map +1 -0
- package/build/auth/suny-sso.js +146 -0
- package/build/auth/suny-sso.js.map +1 -0
- package/build/auth/token-manager.d.ts +29 -2
- package/build/auth/token-manager.d.ts.map +1 -1
- package/build/auth/token-manager.js +83 -4
- package/build/auth/token-manager.js.map +1 -1
- package/build/auth/token-mint.d.ts +32 -0
- package/build/auth/token-mint.d.ts.map +1 -0
- package/build/auth/token-mint.js +71 -0
- package/build/auth/token-mint.js.map +1 -0
- package/build/auth-cli.d.ts +1 -1
- package/build/auth-cli.js +9 -4
- package/build/auth-cli.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +6 -2
- package/build/index.js.map +1 -1
- package/build/setup.d.ts +2 -2
- package/build/setup.js +30 -4
- package/build/setup.js.map +1 -1
- package/build/tools/download-file.d.ts +6 -2
- package/build/tools/download-file.d.ts.map +1 -1
- package/build/tools/download-file.js +27 -7
- package/build/tools/download-file.js.map +1 -1
- package/build/tools/get-announcements.d.ts +65 -2
- package/build/tools/get-announcements.d.ts.map +1 -1
- package/build/tools/get-announcements.js +69 -25
- package/build/tools/get-announcements.js.map +1 -1
- package/build/tools/get-assignments.d.ts +8 -2
- package/build/tools/get-assignments.d.ts.map +1 -1
- package/build/tools/get-assignments.js +76 -17
- package/build/tools/get-assignments.js.map +1 -1
- package/build/tools/get-classlist-emails.d.ts +2 -2
- package/build/tools/get-classlist-emails.js +2 -2
- package/build/tools/get-course-content.d.ts +2 -2
- package/build/tools/get-course-content.js +2 -2
- package/build/tools/get-discussions.d.ts +1 -1
- package/build/tools/get-discussions.js +1 -1
- package/build/tools/get-my-courses.d.ts +2 -2
- package/build/tools/get-my-courses.d.ts.map +1 -1
- package/build/tools/get-my-courses.js +10 -4
- package/build/tools/get-my-courses.js.map +1 -1
- package/build/tools/get-my-grades.d.ts +1 -1
- package/build/tools/get-my-grades.js +1 -1
- package/build/tools/get-roster.d.ts +2 -2
- package/build/tools/get-roster.js +2 -2
- package/build/tools/get-syllabus.d.ts +1 -1
- package/build/tools/get-syllabus.js +1 -1
- package/build/tools/get-upcoming-due-dates.d.ts +2 -2
- package/build/tools/get-upcoming-due-dates.d.ts.map +1 -1
- package/build/tools/get-upcoming-due-dates.js +121 -45
- package/build/tools/get-upcoming-due-dates.js.map +1 -1
- package/build/tools/index.d.ts +2 -2
- package/build/tools/index.js +2 -2
- package/build/tools/schemas.d.ts +3 -3
- package/build/tools/schemas.d.ts.map +1 -1
- package/build/tools/schemas.js +11 -5
- package/build/tools/schemas.js.map +1 -1
- package/build/tools/tool-helpers.d.ts +1 -1
- package/build/tools/tool-helpers.js +1 -1
- package/build/types/index.d.ts +12 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/index.js +2 -2
- package/build/update.d.ts +1 -1
- package/build/update.js +1 -1
- package/build/utils/config-store.d.ts +3 -2
- package/build/utils/config-store.d.ts.map +1 -1
- package/build/utils/config-store.js +2 -2
- package/build/utils/config-store.js.map +1 -1
- package/build/utils/config.d.ts +2 -2
- package/build/utils/config.d.ts.map +1 -1
- package/build/utils/config.js +3 -2
- package/build/utils/config.js.map +1 -1
- package/build/utils/course-filter.d.ts +2 -2
- package/build/utils/course-filter.js +2 -2
- package/build/utils/deep-links.d.ts +15 -0
- package/build/utils/deep-links.d.ts.map +1 -0
- package/build/utils/deep-links.js +31 -0
- package/build/utils/deep-links.js.map +1 -0
- package/build/utils/download-helpers.d.ts +2 -2
- package/build/utils/download-helpers.js +2 -2
- package/build/utils/errors.d.ts +2 -2
- package/build/utils/errors.js +2 -2
- package/build/utils/file-validator.d.ts +2 -2
- package/build/utils/file-validator.d.ts.map +1 -1
- package/build/utils/file-validator.js +21 -11
- package/build/utils/file-validator.js.map +1 -1
- package/build/utils/html-converter.d.ts +2 -2
- package/build/utils/html-converter.js +2 -2
- package/build/utils/logger.d.ts +2 -2
- package/build/utils/logger.js +2 -2
- package/build/utils/pdf-extractor.d.ts +2 -2
- package/build/utils/pdf-extractor.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Talk to your Brightspace courses with AI. Ask about grades, due dates, announcem
|
|
|
6
6
|
|
|
7
7
|
This is an [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that connects your AI to D2L Brightspace so it can pull your grades, assignments, syllabus, and course content on demand.
|
|
8
8
|
|
|
9
|
-
Works with any school that uses D2L Brightspace, including Purdue, USC, and hundreds more.
|
|
9
|
+
Works with any school that uses D2L Brightspace, including Purdue, SUNY, USC, and hundreds more.
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<img src="https://raw.githubusercontent.com/RohanMuppa/brightspace-mcp-server/main/docs/how-it-works.svg" alt="Architecture diagram" width="100%">
|
|
@@ -28,7 +28,7 @@ Paste this into Claude Code, Cursor, Windsurf, Copilot, Codex, or any AI coding
|
|
|
28
28
|
```
|
|
29
29
|
Install brightspace-mcp-server for me by following
|
|
30
30
|
https://github.com/RohanMuppa/brightspace-mcp-server/blob/main/LLMs.md
|
|
31
|
-
(use --purdue if I'm at Purdue).
|
|
31
|
+
(use --purdue if I'm at Purdue, or --suny if I'm at a SUNY campus).
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
**Option 2: Run it yourself**
|
|
@@ -43,6 +43,13 @@ Purdue students can add `--purdue` to skip entering the school URL:
|
|
|
43
43
|
npx brightspace-mcp-server setup --purdue
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
SUNY campuses share one Brightspace site, so `--suny` also asks which campus
|
|
47
|
+
you're at and skips SUNY's campus picker when you sign in:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx brightspace-mcp-server setup --suny
|
|
51
|
+
```
|
|
52
|
+
|
|
46
53
|
The wizard walks you through login, MFA, and auto configures Claude Desktop and Cursor. Restart your AI client when it finishes.
|
|
47
54
|
|
|
48
55
|
<details>
|
package/build/api/cache.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
export declare class TTLCache<T = unknown> {
|
|
7
7
|
private cache;
|
package/build/api/cache.js
CHANGED
package/build/api/client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import type { D2LApiClientOptions, ApiVersions } from "./types.js";
|
|
7
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAwB,MAAM,YAAY,CAAC;AAczF;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,OAAO,EAAE,mBAAmB;IA+BxC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;;OAGG;IACH,IAAI,WAAW,IAAI,WAAW,CAO7B;IAED;;;;;;;;OAQG;IACG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IA6BlE;;;;;;;;;OASG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuB7C;;;OAGG;YACW,aAAa;IAgB3B;;OAEG;YACW,WAAW;IAyHzB;;OAEG;YACW,cAAc;IA6F5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;OAIG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKxB;;;;;OAKG;IACH,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAK3C;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
|
package/build/api/client.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import { DEFAULT_CACHE_TTLS } from "./types.js";
|
|
7
7
|
import { TTLCache } from "./cache.js";
|
|
@@ -9,6 +9,11 @@ import { TokenBucket } from "./rate-limiter.js";
|
|
|
9
9
|
import { discoverVersions } from "./version-discovery.js";
|
|
10
10
|
import { ApiError, RateLimitError, NetworkError } from "./errors.js";
|
|
11
11
|
import { log } from "../utils/logger.js";
|
|
12
|
+
/**
|
|
13
|
+
* The marker in the HTML stub a dead session gets instead of a payload. D2L
|
|
14
|
+
* answers HTTP 200 on that path, so the status alone cannot detect it.
|
|
15
|
+
*/
|
|
16
|
+
const EXPIRED_SESSION_MARKER = "sessionExpired=1";
|
|
12
17
|
/**
|
|
13
18
|
* D2L API client with authentication, caching, rate limiting, and version discovery.
|
|
14
19
|
*
|
|
@@ -203,8 +208,25 @@ export class D2LApiClient {
|
|
|
203
208
|
const responseText = await response.text();
|
|
204
209
|
throw new ApiError(response.status, path, responseText);
|
|
205
210
|
}
|
|
206
|
-
// Parse and cache response
|
|
207
|
-
|
|
211
|
+
// Parse and cache response. The body is read as text first because a
|
|
212
|
+
// dead session does not answer 401: it answers HTTP 200 carrying an HTML
|
|
213
|
+
// stub that redirects to /d2l/login?sessionExpired=1. Cookie-authenticated
|
|
214
|
+
// requests take that path, so the marker, not the status, is the signal.
|
|
215
|
+
const responseBody = await response.text();
|
|
216
|
+
let data;
|
|
217
|
+
try {
|
|
218
|
+
data = JSON.parse(responseBody);
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
// Only now consider the stub: a real payload that merely mentions the
|
|
222
|
+
// marker still parses, so it can never be misread as a dead session.
|
|
223
|
+
if (responseBody.includes(EXPIRED_SESSION_MARKER)) {
|
|
224
|
+
log("DEBUG", "Response carried the session-expired stub, treating it as a 401");
|
|
225
|
+
await this.tokenManager.clearToken();
|
|
226
|
+
throw new ApiError(401, path, "Session expired. Please re-authenticate via brightspace-auth.");
|
|
227
|
+
}
|
|
228
|
+
throw new ApiError(response.status, path, `Expected JSON from ${path} but the body did not parse`);
|
|
229
|
+
}
|
|
208
230
|
if (options?.ttl) {
|
|
209
231
|
this.cache.set(path, data, options.ttl);
|
|
210
232
|
log("DEBUG", `Cached response for ${path} (TTL: ${options.ttl}ms)`);
|
package/build/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/build/api/errors.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import { AuthError } from "../utils/errors.js";
|
|
7
7
|
export declare class ApiError extends AuthError {
|
package/build/api/errors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import { AuthError } from "../utils/errors.js";
|
|
7
7
|
// Base class for all HTTP API errors
|
package/build/api/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
export { D2LApiClient } from "./client.js";
|
|
7
7
|
export { discoverVersions } from "./version-discovery.js";
|
package/build/api/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
// D2L API client and infrastructure - Phase 2 public exports
|
|
7
7
|
// Main client
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
export declare class TokenBucket {
|
|
7
7
|
private tokens;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
// Token bucket rate limiter - allows bursts up to capacity
|
|
7
7
|
// Conservative defaults: capacity 10, refill 3/sec
|
package/build/api/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import type { TokenData } from "../types/index.js";
|
|
7
7
|
import type { TokenManager } from "../auth/token-manager.js";
|
package/build/api/types.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
3
|
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
-
* Licensed under
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
// Default TTL values per user decision
|
|
7
7
|
export const DEFAULT_CACHE_TTLS = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import type { ApiVersions } from "./types.js";
|
|
7
7
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import { NetworkError } from "./errors.js";
|
|
7
7
|
import { log } from "../utils/logger.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
7
|
* Launches the brightspace-auth CLI as a child process to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-runner.d.ts","sourceRoot":"","sources":["../../src/auth/auth-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"auth-runner.d.ts","sourceRoot":"","sources":["../../src/auth/auth-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4CH;;;;;;;GAOG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;;IASrC;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;CAwD9B"}
|
|
@@ -1,17 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
4
|
-
* Licensed under
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
|
+
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { spawn } from "node:child_process";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import * as path from "node:path";
|
|
9
9
|
import { log } from "../utils/logger.js";
|
|
10
10
|
/**
|
|
11
|
-
* Timeout for the auth process.
|
|
12
|
-
*
|
|
11
|
+
* Timeout for the auth process. It has to outlast the child's own MFA wait,
|
|
12
|
+
* which is five minutes: a person has to find their phone, unlock it, and read
|
|
13
|
+
* a number off the screen. A shorter parent budget would kill the child in the
|
|
14
|
+
* middle of a sign-in the user was still completing.
|
|
13
15
|
*/
|
|
14
|
-
const AUTH_TIMEOUT_MS =
|
|
16
|
+
const AUTH_TIMEOUT_MS = 6 * 60 * 1000; // 6 minutes
|
|
17
|
+
/**
|
|
18
|
+
* Forward a child stream to the server log, one line at a time.
|
|
19
|
+
*
|
|
20
|
+
* The child writes its progress to stderr, including Entra's number-match
|
|
21
|
+
* digits, which the user cannot complete a sign-in without. Discarding the
|
|
22
|
+
* stream, as this used to, made an auto-reauth impossible to finish.
|
|
23
|
+
*/
|
|
24
|
+
function forwardLines(stream, emit) {
|
|
25
|
+
if (!stream)
|
|
26
|
+
return;
|
|
27
|
+
let buffered = "";
|
|
28
|
+
stream.setEncoding("utf-8");
|
|
29
|
+
stream.on("data", (chunk) => {
|
|
30
|
+
buffered += chunk;
|
|
31
|
+
const lines = buffered.split("\n");
|
|
32
|
+
buffered = lines.pop() ?? "";
|
|
33
|
+
for (const line of lines) {
|
|
34
|
+
if (line.trim())
|
|
35
|
+
emit(line.trimEnd());
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
stream.on("end", () => {
|
|
39
|
+
if (buffered.trim())
|
|
40
|
+
emit(buffered.trimEnd());
|
|
41
|
+
buffered = "";
|
|
42
|
+
});
|
|
43
|
+
}
|
|
15
44
|
/**
|
|
16
45
|
* Launches the brightspace-auth CLI as a child process to
|
|
17
46
|
* re-authenticate when the current session has expired.
|
|
@@ -44,20 +73,40 @@ export class AuthRunner {
|
|
|
44
73
|
try {
|
|
45
74
|
log("INFO", "Auto-launching brightspace-auth...");
|
|
46
75
|
return await new Promise((resolve) => {
|
|
47
|
-
|
|
76
|
+
const child = spawn(process.execPath, // use the same Node binary
|
|
48
77
|
[this.scriptPath], {
|
|
49
|
-
timeout: AUTH_TIMEOUT_MS,
|
|
50
78
|
cwd: this.projectRoot,
|
|
51
79
|
env: { ...process.env },
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
80
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
81
|
+
});
|
|
82
|
+
let timedOut = false;
|
|
83
|
+
const timer = setTimeout(() => {
|
|
84
|
+
timedOut = true;
|
|
85
|
+
child.kill("SIGTERM");
|
|
86
|
+
}, AUTH_TIMEOUT_MS);
|
|
87
|
+
forwardLines(child.stderr, (line) => log("INFO", line));
|
|
88
|
+
// Piped and drained rather than ignored: a full stdout pipe would
|
|
89
|
+
// block the child mid-login.
|
|
90
|
+
forwardLines(child.stdout, (line) => log("DEBUG", line));
|
|
91
|
+
child.on("error", (error) => {
|
|
92
|
+
clearTimeout(timer);
|
|
93
|
+
log("ERROR", "Auto-auth process failed", error.message);
|
|
94
|
+
resolve(false);
|
|
95
|
+
});
|
|
96
|
+
child.on("close", (code) => {
|
|
97
|
+
clearTimeout(timer);
|
|
98
|
+
if (timedOut) {
|
|
99
|
+
log("ERROR", `Auto-auth timed out after ${AUTH_TIMEOUT_MS / 60000} minutes`);
|
|
55
100
|
resolve(false);
|
|
56
101
|
}
|
|
57
|
-
else {
|
|
102
|
+
else if (code === 0) {
|
|
58
103
|
log("INFO", "Auto-auth completed successfully");
|
|
59
104
|
resolve(true);
|
|
60
105
|
}
|
|
106
|
+
else {
|
|
107
|
+
log("ERROR", `Auto-auth process failed with exit code ${code}`);
|
|
108
|
+
resolve(false);
|
|
109
|
+
}
|
|
61
110
|
});
|
|
62
111
|
});
|
|
63
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-runner.js","sourceRoot":"","sources":["../../src/auth/auth-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auth-runner.js","sourceRoot":"","sources":["../../src/auth/auth-runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,YAAY;AAEnD;;;;;;GAMG;AACH,SAAS,YAAY,CACnB,MAAuB,EACvB,IAA4B;IAE5B,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAClC,QAAQ,IAAI,KAAK,CAAC;QAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACpB,IAAI,QAAQ,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IACb,OAAO,GAAG,KAAK,CAAC;IACP,UAAU,CAAS;IACnB,WAAW,CAAS;IAErC;QACE,sFAAsF;QACtF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,OAAO,EAAE,kDAAkD,CAAC,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC;YACH,GAAG,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC;YAElD,OAAO,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;gBAC5C,MAAM,KAAK,GAAG,KAAK,CACjB,OAAO,CAAC,QAAQ,EAAE,2BAA2B;gBAC7C,CAAC,IAAI,CAAC,UAAU,CAAC,EACjB;oBACE,GAAG,EAAE,IAAI,CAAC,WAAW;oBACrB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;oBACvB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;iBAClC,CACF,CAAC;gBAEF,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,QAAQ,GAAG,IAAI,CAAC;oBAChB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC,EAAE,eAAe,CAAC,CAAC;gBAEpB,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxD,kEAAkE;gBAClE,6BAA6B;gBAC7B,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAEzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBACxD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;gBAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,QAAQ,EAAE,CAAC;wBACb,GAAG,CAAC,OAAO,EAAE,6BAA6B,eAAe,GAAG,KAAK,UAAU,CAAC,CAAC;wBAC7E,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;yBAAM,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;wBACtB,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;wBAChD,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,OAAO,EAAE,2CAA2C,IAAI,EAAE,CAAC,CAAC;wBAChE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Purdue Brightspace MCP Server
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2026 Rohan Muppa. All rights reserved.
|
|
4
4
|
* Licensed under MIT — see LICENSE file for details.
|
|
5
5
|
*/
|
|
6
6
|
import type { AppConfig, TokenData } from "../types/index.js";
|
|
@@ -60,11 +60,45 @@ export declare class BrowserAuth {
|
|
|
60
60
|
* Returns true if already authenticated (cookies valid), false if SSO login was performed.
|
|
61
61
|
*/
|
|
62
62
|
private navigateAndLogin;
|
|
63
|
+
/** Let the page finish loading, without letting a slow one fail the run. */
|
|
64
|
+
private settle;
|
|
65
|
+
/**
|
|
66
|
+
* Give the SSO chain a bounded window to finish with no human input.
|
|
67
|
+
* Returns true only when the session proves itself live.
|
|
68
|
+
*/
|
|
69
|
+
private awaitSilentSSO;
|
|
70
|
+
/**
|
|
71
|
+
* A POSITIVE session check, never "the URL doesn't look like a login page".
|
|
72
|
+
* Institutions bounce through intermediate SAML hops with a perfectly live
|
|
73
|
+
* session, and the login stub sets cookies of its own, so both the session
|
|
74
|
+
* cookie and a reachable D2L JS context are required.
|
|
75
|
+
*/
|
|
76
|
+
private hasLiveSession;
|
|
77
|
+
/**
|
|
78
|
+
* Click through the two surfaces that stand between a live Entra cookie and
|
|
79
|
+
* an authenticated D2L page. Neither involves a secret.
|
|
80
|
+
*/
|
|
81
|
+
private clickSilentSurfaces;
|
|
82
|
+
/** Visibility without the actionability wait, so a poll keeps its rhythm. */
|
|
83
|
+
private isOnScreen;
|
|
63
84
|
/**
|
|
64
85
|
* Try to extract Bearer token from D2L's localStorage.
|
|
65
86
|
* D2L stores API tokens in localStorage under "D2L.Fetch.Tokens".
|
|
66
87
|
*/
|
|
67
88
|
private extractLocalStorageToken;
|
|
89
|
+
/**
|
|
90
|
+
* Harvest the material that lets the token manager mint a fresh JWT later
|
|
91
|
+
* without relaunching this browser: the two D2L session cookies plus the
|
|
92
|
+
* XSRF token. Best effort. A missing piece only costs the cheap refresh
|
|
93
|
+
* path, so it is logged at DEBUG and the fields are left undefined.
|
|
94
|
+
*/
|
|
95
|
+
private harvestSessionMaterial;
|
|
96
|
+
/**
|
|
97
|
+
* Read the real XSRF token, and nothing else. Deliberately separate from
|
|
98
|
+
* extractXsrfToken: that one falls back to a loose localStorage scan which
|
|
99
|
+
* can return a JWT, and a JWT in the x-csrf-token header makes the mint 403.
|
|
100
|
+
*/
|
|
101
|
+
private extractXsrfOnly;
|
|
68
102
|
/**
|
|
69
103
|
* Try to extract XSRF/API token from D2L's JavaScript context.
|
|
70
104
|
* Brightspace stores auth tokens in the page's JS globals.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-auth.d.ts","sourceRoot":"","sources":["../../src/auth/browser-auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-auth.d.ts","sourceRoot":"","sources":["../../src/auth/browser-auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA2B9D,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAU;gBAEb,MAAM,EAAE,SAAS;IAK7B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAwB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC;;;;;;;;;;;;;OAaG;mBACkB,oBAAoB;IA8CzC;;;;OAIG;YACW,wBAAwB;IAoBhC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IA6KxC;;;;OAIG;YACW,eAAe;IAyD7B;;;OAGG;YACW,aAAa;IAmC3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;;OAGG;YACW,gBAAgB;IA8C9B,4EAA4E;YAC9D,MAAM;IAQpB;;;OAGG;YACW,cAAc;IAoB5B;;;;;OAKG;YACW,cAAc;IAiB5B;;;OAGG;YACW,mBAAmB;IAsCjC,6EAA6E;YAC/D,UAAU;IAIxB;;;OAGG;YACW,wBAAwB;IAyCtC;;;;;OAKG;YACW,sBAAsB;IAoCpC;;;;OAIG;YACW,eAAe;IAyC7B;;;OAGG;YACW,gBAAgB;IAgE9B;;;OAGG;YACW,kBAAkB;IAiChC;;;OAGG;YACW,gBAAgB;YA8FhB,gBAAgB;IAc9B;;;;;OAKG;YACW,sBAAsB;IA4DpC;;;;;;;;;OASG;YACW,yBAAyB;CAiExC"}
|