brightspace-mcp-server 3.0.0 → 3.0.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.
@@ -22,8 +22,6 @@ import { dirname, join, resolve, sep } from "node:path";
22
22
  import { PACKAGE_NAME, GLOBAL_INSTALL_COMMAND, AUTH_COMMAND } from "./commands.js";
23
23
  /** Whole-scan budget. A stalled network mount on PATH must not hang startup. */
24
24
  const SCAN_BUDGET_MS = 2000;
25
- /** Most sites named in one notice before it turns into noise. */
26
- const MAX_REPORTED = 3;
27
25
  async function defaultReadVersion(packageJsonPath) {
28
26
  try {
29
27
  const raw = await readFile(packageJsonPath, "utf-8");
@@ -123,20 +121,24 @@ export async function scanInstallSites(deps = {}) {
123
121
  const isWin = platform === "win32";
124
122
  if (!isWin) {
125
123
  const shims = ["brightspace-auth", PACKAGE_NAME];
126
- await Promise.allSettled((env.PATH ?? "").split(":").filter(Boolean).flatMap((entry) => shims.map(async (shim) => {
127
- const binPath = join(entry, shim);
128
- try {
129
- const target = await realpath(binPath);
130
- const marker = `${sep}node_modules${sep}${PACKAGE_NAME}${sep}`;
131
- const idx = target.indexOf(marker);
132
- if (idx === -1)
124
+ const pathEntries = (env.PATH ?? "").split(":").filter(Boolean);
125
+ await Promise.allSettled(shims.map(async (shim) => {
126
+ for (const entry of pathEntries) {
127
+ const binPath = join(entry, shim);
128
+ try {
129
+ const target = await realpath(binPath);
130
+ const marker = `${sep}node_modules${sep}${PACKAGE_NAME}${sep}`;
131
+ const idx = target.indexOf(marker);
132
+ if (idx === -1)
133
+ continue;
134
+ await record(target.slice(0, idx + marker.length - 1), "global", binPath);
133
135
  return;
134
- await record(target.slice(0, idx + marker.length - 1), "global", binPath);
136
+ }
137
+ catch {
138
+ // No such shim here.
139
+ }
135
140
  }
136
- catch {
137
- // No such shim here.
138
- }
139
- })));
141
+ }));
140
142
  }
141
143
  // npx cache entries.
142
144
  const npxRoot = join(home, ".npm", "_npx");
@@ -170,38 +172,26 @@ function shorten(path, home) {
170
172
  return path.startsWith(home) ? `~${path.slice(home.length)}` : path;
171
173
  }
172
174
  /**
173
- * A warning about copies that disagree with the running version, or null when
174
- * there is nothing worth saying.
175
+ * A warning about shell-resolved copies that disagree with the running
176
+ * version, or null when there is nothing worth saying.
175
177
  *
176
- * Deliberately quiet: it only speaks when another copy exists at a *different*
177
- * version, since a machine with several copies all in step is fine. Copies a
178
- * shell command actually resolves to are reported first, because those are the
179
- * ones a user can trip over.
178
+ * Dormant installs under inactive Node versions and old npx cache entries are
179
+ * harmless. Only report a mismatch when a command the user can type currently
180
+ * resolves to that copy.
180
181
  */
181
182
  export function formatSkewNotice(sites, runningVersion, home = homedir()) {
182
183
  const mismatched = sites
183
- .filter((s) => !s.isSelf && s.version !== null && s.version !== runningVersion)
184
- .sort((a, b) => Number(Boolean(b.binPath)) - Number(Boolean(a.binPath)));
184
+ .filter((s) => !s.isSelf &&
185
+ s.binPath !== undefined &&
186
+ s.version !== null &&
187
+ s.version !== runningVersion);
185
188
  if (mismatched.length === 0)
186
189
  return null;
187
- const shown = mismatched.slice(0, MAX_REPORTED);
188
- const lines = shown.map((s) => {
189
- const where = s.binPath
190
- ? `\`${shorten(s.binPath, home)}\` resolves to v${s.version}`
191
- : `v${s.version} at ${shorten(s.dir, home)}`;
192
- return ` - ${where}`;
193
- });
194
- const extra = mismatched.length - shown.length;
195
- if (extra > 0)
196
- lines.push(` - and ${extra} more`);
197
- const resolvable = shown.some((s) => s.binPath);
198
- const advice = resolvable
199
- ? `An out-of-date auth CLI fails during sign-in. Run \`${GLOBAL_INSTALL_COMMAND}\`, or use \`${AUTH_COMMAND}\`.`
200
- : `Run \`${GLOBAL_INSTALL_COMMAND}\` to bring them in line.`;
190
+ const lines = mismatched.map((s) => ` - \`${shorten(s.binPath, home)}\` resolves to v${s.version}`);
201
191
  return [
202
192
  `Version mismatch. This process is v${runningVersion}, but other copies of ${PACKAGE_NAME} are installed:`,
203
193
  ...lines,
204
- advice,
194
+ `An out-of-date auth CLI fails during sign-in. Run \`${GLOBAL_INSTALL_COMMAND}\`, or use \`${AUTH_COMMAND}\`.`,
205
195
  ].join("\n");
206
196
  }
207
197
  //# sourceMappingURL=install-sites.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-sites.js","sourceRoot":"","sources":["../../src/utils/install-sites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-sites.js","sourceRoot":"","sources":["../../src/utils/install-sites.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export interface CliMcpClient {
2
+ id: "codex" | "claude-code";
3
+ displayName: string;
4
+ command: string;
5
+ getArgs: string[];
6
+ addArgs: string[];
7
+ }
8
+ export type CommandRunner = (command: string, args: string[], stdio: "ignore" | "inherit") => number | null;
9
+ export declare function cliMcpClients(platform?: NodeJS.Platform): CliMcpClient[];
10
+ export declare function isCliAvailable(client: CliMcpClient, runCommand?: CommandRunner): boolean;
11
+ export declare function configureCliMcpClient(client: CliMcpClient, runCommand?: CommandRunner): "configured" | "already-configured" | "failed";
12
+ //# sourceMappingURL=mcp-client-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client-cli.d.ts","sourceRoot":"","sources":["../../src/utils/mcp-client-cli.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,GAAG,aAAa,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,QAAQ,GAAG,SAAS,KACxB,MAAM,GAAG,IAAI,CAAC;AAcnB,wBAAgB,aAAa,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,YAAY,EAAE,CAqB1F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,aAAiC,GAC5C,OAAO,CAET;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,aAAiC,GAC5C,YAAY,GAAG,oBAAoB,GAAG,QAAQ,CAQhD"}
@@ -0,0 +1,42 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { PACKAGE_NAME } from "./commands.js";
3
+ function defaultRunCommand(command, args, stdio) {
4
+ const result = spawnSync(command, args, {
5
+ stdio,
6
+ shell: process.platform === "win32",
7
+ });
8
+ return result.error ? null : result.status;
9
+ }
10
+ export function cliMcpClients(platform = process.platform) {
11
+ const serverCommand = platform === "win32"
12
+ ? ["cmd", "/c", "npx", "-y", `${PACKAGE_NAME}@latest`]
13
+ : ["npx", "-y", `${PACKAGE_NAME}@latest`];
14
+ return [
15
+ {
16
+ id: "codex",
17
+ displayName: "Codex Desktop and CLI",
18
+ command: "codex",
19
+ getArgs: ["mcp", "get", "brightspace"],
20
+ addArgs: ["mcp", "add", "brightspace", "--", ...serverCommand],
21
+ },
22
+ {
23
+ id: "claude-code",
24
+ displayName: "Claude Code",
25
+ command: "claude",
26
+ getArgs: ["mcp", "get", "brightspace"],
27
+ addArgs: ["mcp", "add", "--scope", "user", "brightspace", "--", ...serverCommand],
28
+ },
29
+ ];
30
+ }
31
+ export function isCliAvailable(client, runCommand = defaultRunCommand) {
32
+ return runCommand(client.command, ["--version"], "ignore") === 0;
33
+ }
34
+ export function configureCliMcpClient(client, runCommand = defaultRunCommand) {
35
+ if (runCommand(client.command, client.getArgs, "ignore") === 0) {
36
+ return "already-configured";
37
+ }
38
+ return runCommand(client.command, client.addArgs, "inherit") === 0
39
+ ? "configured"
40
+ : "failed";
41
+ }
42
+ //# sourceMappingURL=mcp-client-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client-cli.js","sourceRoot":"","sources":["../../src/utils/mcp-client-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAgB7C,SAAS,iBAAiB,CACxB,OAAe,EACf,IAAc,EACd,KAA2B;IAE3B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;KACpC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAA4B,OAAO,CAAC,QAAQ;IACxE,MAAM,aAAa,GAAG,QAAQ,KAAK,OAAO;QACxC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC;QACtD,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,SAAS,CAAC,CAAC;IAE5C,OAAO;QACL;YACE,EAAE,EAAE,OAAO;YACX,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC;YACtC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;SAC/D;QACD;YACE,EAAE,EAAE,aAAa;YACjB,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC;YACtC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;SAClF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,aAA4B,iBAAiB;IAE7C,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAoB,EACpB,aAA4B,iBAAiB;IAE7C,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/D,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;QAChE,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brightspace-mcp-server",
3
- "version": "3.0.0",
3
+ "version": "3.0.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",