brightspace-mcp-server 1.0.8 → 1.1.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/build/index.js CHANGED
@@ -38,12 +38,12 @@ else {
38
38
  // Create MCP server instance
39
39
  const server = new McpServer({
40
40
  name: "brightspace",
41
- version: "1.0.7",
41
+ version: "1.1.0",
42
42
  description: "Brightspace MCP Server — by Rohan Muppa (github.com/rohanmuppa/brightspace-mcp-server)",
43
43
  });
44
44
  log("INFO", "");
45
45
  log("INFO", "========================================");
46
- log("INFO", " Brightspace MCP Server v1.0.7");
46
+ log("INFO", " Brightspace MCP Server v1.1.0");
47
47
  log("INFO", " By Rohan Muppa — ECE @ Purdue");
48
48
  log("INFO", " github.com/rohanmuppa/brightspace-mcp-server");
49
49
  log("INFO", "========================================");
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Background update checker — non-blocking git fetch on startup.
3
- * If new commits exist on origin/main, produces a one-time notice
2
+ * Background npm update checker — non-blocking fetch on startup.
3
+ * Compares installed version against latest on npm registry.
4
+ * If a newer version exists, produces a one-time notice
4
5
  * that gets appended to the first check_auth response.
5
6
  */
6
7
  export declare function initUpdateChecker(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../src/utils/update-checker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,wBAAgB,iBAAiB,IAAI,IAAI,CAkBxC;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAI/C"}
1
+ {"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../src/utils/update-checker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAI/C"}
@@ -1,28 +1,47 @@
1
1
  /**
2
- * Background update checker — non-blocking git fetch on startup.
3
- * If new commits exist on origin/main, produces a one-time notice
2
+ * Background npm update checker — non-blocking fetch on startup.
3
+ * Compares installed version against latest on npm registry.
4
+ * If a newer version exists, produces a one-time notice
4
5
  * that gets appended to the first check_auth response.
5
6
  */
6
7
  import { execFile } from "node:child_process";
8
+ import { readFileSync } from "node:fs";
7
9
  import { fileURLToPath } from "node:url";
8
10
  import { dirname, resolve } from "node:path";
9
11
  const __filename = fileURLToPath(import.meta.url);
10
12
  const projectRoot = resolve(dirname(__filename), "..", "..");
11
13
  let notice = null;
14
+ function getInstalledVersion() {
15
+ try {
16
+ const pkg = JSON.parse(readFileSync(resolve(projectRoot, "package.json"), "utf-8"));
17
+ return pkg.version ?? "0.0.0";
18
+ }
19
+ catch {
20
+ return "0.0.0";
21
+ }
22
+ }
12
23
  export function initUpdateChecker() {
13
- execFile("git", ["fetch", "origin", "main"], { cwd: projectRoot }, (err) => {
24
+ const installed = getInstalledVersion();
25
+ execFile("npm", ["view", "brightspace-mcp-server", "version"], { timeout: 10000, shell: true }, (err, stdout) => {
14
26
  if (err)
15
27
  return;
16
- execFile("git", ["rev-list", "--count", "HEAD..origin/main"], { cwd: projectRoot }, (err, stdout) => {
17
- if (err)
18
- return;
19
- const count = parseInt(stdout.trim(), 10);
20
- if (count > 0) {
21
- notice =
22
- `Update available (${count} new commit${count === 1 ? "" : "s"}). ` +
23
- "Run `brightspace-update` in your terminal to update.";
24
- }
25
- });
28
+ const latest = stdout.trim();
29
+ if (!latest)
30
+ return;
31
+ if (latest !== installed) {
32
+ execFile("npm", ["install", "-g", "brightspace-mcp-server@latest"], { timeout: 60000, shell: true }, (installErr) => {
33
+ if (installErr) {
34
+ notice =
35
+ `Update available: v${installed} v${latest}. ` +
36
+ "Run `npx brightspace-mcp-server@latest` or clear your npx cache to update.";
37
+ }
38
+ else {
39
+ notice =
40
+ `Auto-updated from v${installed} to v${latest}. ` +
41
+ "Restart your MCP client to use the new version.";
42
+ }
43
+ });
44
+ }
26
45
  });
27
46
  }
28
47
  export function getUpdateNotice() {
@@ -1 +1 @@
1
- {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/utils/update-checker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7D,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,MAAM,UAAU,iBAAiB;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;QACzE,IAAI,GAAG;YAAE,OAAO;QAChB,QAAQ,CACN,KAAK,EACL,CAAC,UAAU,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAC5C,EAAE,GAAG,EAAE,WAAW,EAAE,EACpB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,GAAG;gBAAE,OAAO;YAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,MAAM;oBACJ,qBAAqB,KAAK,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK;wBACnE,sDAAsD,CAAC;YAC3D,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,GAAG,IAAI,CAAC;IACd,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/utils/update-checker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7D,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IAExC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC9G,IAAI,GAAG;YAAE,OAAO;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,+BAA+B,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE;gBAClH,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM;wBACJ,sBAAsB,SAAS,OAAO,MAAM,IAAI;4BAChD,4EAA4E,CAAC;gBACjF,CAAC;qBAAM,CAAC;oBACN,MAAM;wBACJ,sBAAsB,SAAS,QAAQ,MAAM,IAAI;4BACjD,iDAAiD,CAAC;gBACtD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC;IACtB,MAAM,GAAG,IAAI,CAAC;IACd,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brightspace-mcp-server",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "mcpName": "io.github.rohanmuppa/brightspace",
5
5
  "description": "MCP server for Brightspace (D2L). Check grades, due dates, announcements, rosters and more via Claude, ChatGPT, Cursor, or any MCP client.",
6
6
  "type": "module",