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.
- package/README.md +24 -4
- package/build/auth/browser-auth.d.ts +2 -0
- package/build/auth/browser-auth.d.ts.map +1 -1
- package/build/auth/browser-auth.js +33 -5
- package/build/auth/browser-auth.js.map +1 -1
- package/build/auth/credential-store.d.ts.map +1 -1
- package/build/auth/credential-store.js +12 -2
- package/build/auth/credential-store.js.map +1 -1
- package/build/auth/purdue-sso.js +7 -7
- package/build/auth/purdue-sso.js.map +1 -1
- package/build/auth/sso-flow.d.ts +1 -1
- package/build/auth/sso-flow.d.ts.map +1 -1
- package/build/auth/sso-flow.js +1 -1
- package/build/auth/sso-flow.js.map +1 -1
- package/build/auth/suny-sso.js +1 -1
- package/build/auth/suny-sso.js.map +1 -1
- package/build/setup.js +44 -6
- package/build/setup.js.map +1 -1
- package/build/tools/get-assignments.d.ts.map +1 -1
- package/build/tools/get-assignments.js +157 -82
- package/build/tools/get-assignments.js.map +1 -1
- package/build/utils/install-sites.d.ts +5 -6
- package/build/utils/install-sites.d.ts.map +1 -1
- package/build/utils/install-sites.js +27 -37
- package/build/utils/install-sites.js.map +1 -1
- package/build/utils/mcp-client-cli.d.ts +12 -0
- package/build/utils/mcp-client-cli.d.ts.map +1 -0
- package/build/utils/mcp-client-cli.js +42 -0
- package/build/utils/mcp-client-cli.js.map +1 -0
- package/package.json +1 -1
|
@@ -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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// No such shim here.
|
|
139
|
+
}
|
|
135
140
|
}
|
|
136
|
-
|
|
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
|
|
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
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
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 &&
|
|
184
|
-
.
|
|
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
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEnF,gFAAgF;AAChF,MAAM,cAAc,GAAG,IAAI,CAAC;
|
|
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.
|
|
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",
|