canvas-parent-mcp 2.1.7 → 2.1.8
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/bundle.js +59 -5
- package/dist/index.js +1 -1
- package/package.json +4 -4
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "MCP server for Canvas LMS (Instructure) — courses, grades, assignments, announcements, planner, conversations, files",
|
|
10
|
-
"version": "2.1.
|
|
10
|
+
"version": "2.1.8"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "Canvas LMS",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Canvas LMS (Instructure) MCP server for Claude — student/observer access via natural language",
|
|
18
|
-
"version": "2.1.
|
|
18
|
+
"version": "2.1.8",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "canvas-parent-mcp",
|
|
3
3
|
"displayName": "Canvas LMS",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.8",
|
|
5
5
|
"description": "Canvas LMS (Instructure) MCP server for Claude — courses, grades, assignments, announcements, planner, conversations, files",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/dist/bundle.js
CHANGED
|
@@ -62493,6 +62493,17 @@ var KNOWN_CAPABILITIES = /* @__PURE__ */ new Set([
|
|
|
62493
62493
|
]);
|
|
62494
62494
|
var ACCOUNT_KEY_FRAME = "account-key";
|
|
62495
62495
|
var ACCOUNT_ATTEST_FRAME = "account-attest";
|
|
62496
|
+
var BRIDGE_ROLE_FRAME = "bridge-role";
|
|
62497
|
+
var BRIDGE_SERVE_FRAME = "bridge-serve";
|
|
62498
|
+
var ROOM_PING_FRAME = "room-ping";
|
|
62499
|
+
var ROOM_PONG_FRAME = "room-pong";
|
|
62500
|
+
var BRIDGE_ROLE_LABEL_MAX = 64;
|
|
62501
|
+
var ROOM_FRAME_ACCEPTS = Object.freeze({
|
|
62502
|
+
[BRIDGE_ROLE_FRAME]: BRIDGE_ROLE_FRAME,
|
|
62503
|
+
[BRIDGE_SERVE_FRAME]: BRIDGE_SERVE_FRAME,
|
|
62504
|
+
[ROOM_PING_FRAME]: ROOM_PING_FRAME,
|
|
62505
|
+
[ROOM_PONG_FRAME]: ROOM_PING_FRAME
|
|
62506
|
+
});
|
|
62496
62507
|
|
|
62497
62508
|
// node_modules/@fetchproxy/protocol/dist/mcp-id.js
|
|
62498
62509
|
var ID_RE = /^([^:]+):([^:]+):([0-9a-f]{16})$/;
|
|
@@ -63158,6 +63169,12 @@ function validateFrame(raw) {
|
|
|
63158
63169
|
return validateAccountKey(raw);
|
|
63159
63170
|
if (t === ACCOUNT_ATTEST_FRAME)
|
|
63160
63171
|
return validateAccountAttest(raw);
|
|
63172
|
+
if (t === BRIDGE_ROLE_FRAME)
|
|
63173
|
+
return validateBridgeRole(raw);
|
|
63174
|
+
if (t === BRIDGE_SERVE_FRAME || t === ROOM_PING_FRAME || t === ROOM_PONG_FRAME) {
|
|
63175
|
+
assertExactFields(raw, TYPE_ONLY_FIELDS, t);
|
|
63176
|
+
return { type: t };
|
|
63177
|
+
}
|
|
63161
63178
|
throw new ProtocolError3(`unknown frame type: ${String(t)}`);
|
|
63162
63179
|
}
|
|
63163
63180
|
function validateHello(raw) {
|
|
@@ -63483,6 +63500,43 @@ function validateAccountAttest(raw) {
|
|
|
63483
63500
|
sig: raw.sig
|
|
63484
63501
|
};
|
|
63485
63502
|
}
|
|
63503
|
+
var TYPE_ONLY_FIELDS = ["type"];
|
|
63504
|
+
var BRIDGE_ROLE_FIELDS = ["type", "role", "canServe", "serving"];
|
|
63505
|
+
var BRIDGE_ROLE_SERVING_FIELDS = ["label", "since"];
|
|
63506
|
+
function validateBridgeRole(raw) {
|
|
63507
|
+
const L = BRIDGE_ROLE_FRAME;
|
|
63508
|
+
const role = raw.role;
|
|
63509
|
+
if (role !== "serving" && role !== "standby") {
|
|
63510
|
+
throw new ProtocolError3(`${L}.role: must be one of serving, standby`);
|
|
63511
|
+
}
|
|
63512
|
+
const canServe = raw.canServe;
|
|
63513
|
+
assertBoolean(canServe, `${L}.canServe`);
|
|
63514
|
+
assertExactFields(raw, BRIDGE_ROLE_FIELDS, L);
|
|
63515
|
+
const serving = raw.serving;
|
|
63516
|
+
if (role === "serving") {
|
|
63517
|
+
if (serving !== void 0) {
|
|
63518
|
+
throw new ProtocolError3(`${L}.serving: must be absent when role is serving`);
|
|
63519
|
+
}
|
|
63520
|
+
return { type: BRIDGE_ROLE_FRAME, role, canServe };
|
|
63521
|
+
}
|
|
63522
|
+
if (serving === void 0) {
|
|
63523
|
+
throw new ProtocolError3(`${L}.serving: required when role is standby`);
|
|
63524
|
+
}
|
|
63525
|
+
assertObject(serving, `${L}.serving`);
|
|
63526
|
+
const label = serving.label;
|
|
63527
|
+
assertDisplayString(label, `${L}.serving.label`, 1, BRIDGE_ROLE_LABEL_MAX);
|
|
63528
|
+
const since = serving.since;
|
|
63529
|
+
if (typeof since !== "number" || !Number.isSafeInteger(since) || since < 0) {
|
|
63530
|
+
throw new ProtocolError3(`${L}.serving.since: expected non-negative safe integer (Unix ms)`);
|
|
63531
|
+
}
|
|
63532
|
+
assertExactFields(serving, BRIDGE_ROLE_SERVING_FIELDS, `${L}.serving`);
|
|
63533
|
+
return {
|
|
63534
|
+
type: BRIDGE_ROLE_FRAME,
|
|
63535
|
+
role,
|
|
63536
|
+
canServe,
|
|
63537
|
+
serving: { label, since }
|
|
63538
|
+
};
|
|
63539
|
+
}
|
|
63486
63540
|
function validateInnerFrame(raw) {
|
|
63487
63541
|
assertObject(raw, "inner");
|
|
63488
63542
|
const t = raw.type;
|
|
@@ -68517,7 +68571,7 @@ function loadAccount(env = process.env) {
|
|
|
68517
68571
|
// package.json
|
|
68518
68572
|
var package_default = {
|
|
68519
68573
|
name: "canvas-parent-mcp",
|
|
68520
|
-
version: "2.1.
|
|
68574
|
+
version: "2.1.8",
|
|
68521
68575
|
mcpName: "io.github.chrischall/canvas-parent-mcp",
|
|
68522
68576
|
description: "Canvas LMS (Instructure) MCP server \u2014 student/observer read access with optional file download",
|
|
68523
68577
|
author: "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -68564,9 +68618,9 @@ var package_default = {
|
|
|
68564
68618
|
typecheck: "tsc -p tsconfig.json --noEmit"
|
|
68565
68619
|
},
|
|
68566
68620
|
dependencies: {
|
|
68567
|
-
"@chrischall/mcp-utils": "^2.
|
|
68568
|
-
"@fetchproxy/bootstrap": "^3.
|
|
68569
|
-
"@fetchproxy/server": "^3.
|
|
68621
|
+
"@chrischall/mcp-utils": "^2.15.0",
|
|
68622
|
+
"@fetchproxy/bootstrap": "^3.6.0",
|
|
68623
|
+
"@fetchproxy/server": "^3.6.0",
|
|
68570
68624
|
"@modelcontextprotocol/server": "^2.3.0",
|
|
68571
68625
|
dotenv: "^18.0.0",
|
|
68572
68626
|
zod: "^4.6.5"
|
|
@@ -70313,7 +70367,7 @@ try {
|
|
|
70313
70367
|
}
|
|
70314
70368
|
await runMcp({
|
|
70315
70369
|
name: "canvas",
|
|
70316
|
-
version: "2.1.
|
|
70370
|
+
version: "2.1.8",
|
|
70317
70371
|
// x-release-please-version
|
|
70318
70372
|
tools: [
|
|
70319
70373
|
// Outside the `if (resolved)` on purpose: an unconfigured server must
|
package/dist/index.js
CHANGED
|
@@ -47,7 +47,7 @@ catch (e) {
|
|
|
47
47
|
// host's install-time `tools/list` succeeds.
|
|
48
48
|
await runMcp({
|
|
49
49
|
name: 'canvas',
|
|
50
|
-
version: '2.1.
|
|
50
|
+
version: '2.1.8', // x-release-please-version
|
|
51
51
|
tools: [
|
|
52
52
|
// Outside the `if (resolved)` on purpose: an unconfigured server must
|
|
53
53
|
// still expose something that can say WHY (see the tool's docblock).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "canvas-parent-mcp",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.8",
|
|
4
4
|
"mcpName": "io.github.chrischall/canvas-parent-mcp",
|
|
5
5
|
"description": "Canvas LMS (Instructure) MCP server — student/observer read access with optional file download",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@chrischall/mcp-utils": "^2.
|
|
51
|
-
"@fetchproxy/bootstrap": "^3.
|
|
52
|
-
"@fetchproxy/server": "^3.
|
|
50
|
+
"@chrischall/mcp-utils": "^2.15.0",
|
|
51
|
+
"@fetchproxy/bootstrap": "^3.6.0",
|
|
52
|
+
"@fetchproxy/server": "^3.6.0",
|
|
53
53
|
"@modelcontextprotocol/server": "^2.3.0",
|
|
54
54
|
"dotenv": "^18.0.0",
|
|
55
55
|
"zod": "^4.6.5"
|
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/chrischall/canvas-parent-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "2.1.
|
|
9
|
+
"version": "2.1.8",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "canvas-parent-mcp",
|
|
14
|
-
"version": "2.1.
|
|
14
|
+
"version": "2.1.8",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|