infinitecampus-mcp 2.5.1 → 2.6.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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/bundle.js +24 -13
- package/dist/index.js +1 -1
- package/package.json +3 -3
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "MCP server for Infinite Campus (Campus Parent) — grades, attendance, assignments, messages, documents",
|
|
10
|
-
"version": "2.
|
|
10
|
+
"version": "2.6.0"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "Infinite Campus",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Infinite Campus (Campus Parent) MCP server for Claude — grades, attendance, assignments, messages, and documents via natural language",
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.6.0",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "infinitecampus-mcp",
|
|
3
3
|
"displayName": "Infinite Campus",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.6.0",
|
|
5
5
|
"description": "Infinite Campus (Campus Parent) MCP server for Claude — grades, attendance, assignments, messages, and documents",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/dist/bundle.js
CHANGED
|
@@ -3314,8 +3314,8 @@ var require_utils = __commonJS({
|
|
|
3314
3314
|
var HOST_DELIMS = { "@": "%40", "/": "%2F", "?": "%3F", "#": "%23", ":": "%3A" };
|
|
3315
3315
|
var HOST_DELIM_RE = /[@/?#:]/g;
|
|
3316
3316
|
var HOST_DELIM_NO_COLON_RE = /[@/?#]/g;
|
|
3317
|
-
function reescapeHostDelimiters(host,
|
|
3318
|
-
const re =
|
|
3317
|
+
function reescapeHostDelimiters(host, isIP2) {
|
|
3318
|
+
const re = isIP2 ? HOST_DELIM_NO_COLON_RE : HOST_DELIM_RE;
|
|
3319
3319
|
re.lastIndex = 0;
|
|
3320
3320
|
return host.replace(re, (ch) => HOST_DELIMS[ch]);
|
|
3321
3321
|
}
|
|
@@ -3804,7 +3804,7 @@ var require_fast_uri = __commonJS({
|
|
|
3804
3804
|
fragment: void 0
|
|
3805
3805
|
};
|
|
3806
3806
|
let malformedAuthorityOrPort = false;
|
|
3807
|
-
let
|
|
3807
|
+
let isIP2 = false;
|
|
3808
3808
|
if (options.reference === "suffix") {
|
|
3809
3809
|
if (options.scheme) {
|
|
3810
3810
|
uri = options.scheme + ":" + uri;
|
|
@@ -3853,9 +3853,9 @@ var require_fast_uri = __commonJS({
|
|
|
3853
3853
|
if (ipv4result === false) {
|
|
3854
3854
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
3855
3855
|
parsed.host = ipv6result.host.toLowerCase();
|
|
3856
|
-
|
|
3856
|
+
isIP2 = ipv6result.isIPV6;
|
|
3857
3857
|
} else {
|
|
3858
|
-
|
|
3858
|
+
isIP2 = true;
|
|
3859
3859
|
}
|
|
3860
3860
|
}
|
|
3861
3861
|
if (parsed.scheme === void 0 && parsed.userinfo === void 0 && parsed.host === void 0 && parsed.port === void 0 && parsed.query === void 0 && !parsed.path) {
|
|
@@ -3872,7 +3872,7 @@ var require_fast_uri = __commonJS({
|
|
|
3872
3872
|
}
|
|
3873
3873
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
3874
3874
|
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
|
|
3875
|
-
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) &&
|
|
3875
|
+
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP2 === false && nonSimpleDomain(parsed.host)) {
|
|
3876
3876
|
try {
|
|
3877
3877
|
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
3878
3878
|
} catch (e) {
|
|
@@ -3886,7 +3886,7 @@ var require_fast_uri = __commonJS({
|
|
|
3886
3886
|
parsed.scheme = unescape(parsed.scheme);
|
|
3887
3887
|
}
|
|
3888
3888
|
if (parsed.host !== void 0) {
|
|
3889
|
-
parsed.host = reescapeHostDelimiters(unescape(parsed.host),
|
|
3889
|
+
parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP2);
|
|
3890
3890
|
}
|
|
3891
3891
|
}
|
|
3892
3892
|
if (parsed.path) {
|
|
@@ -7199,7 +7199,7 @@ var require_permessage_deflate = __commonJS({
|
|
|
7199
7199
|
acceptAsServer(offers) {
|
|
7200
7200
|
const opts = this._options;
|
|
7201
7201
|
const accepted = offers.find((params) => {
|
|
7202
|
-
if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && !params.client_max_window_bits) {
|
|
7202
|
+
if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && (typeof params.client_max_window_bits === "number" ? opts.clientMaxWindowBits > params.client_max_window_bits : !params.client_max_window_bits)) {
|
|
7203
7203
|
return false;
|
|
7204
7204
|
}
|
|
7205
7205
|
return true;
|
|
@@ -36959,6 +36959,7 @@ function classifyBridgeError(err) {
|
|
|
36959
36959
|
}
|
|
36960
36960
|
|
|
36961
36961
|
// node_modules/@fetchproxy/server/dist/ws-server.js
|
|
36962
|
+
import { isIP } from "node:net";
|
|
36962
36963
|
function envWsPort() {
|
|
36963
36964
|
const raw = process.env.FETCHPROXY_WS_PORT;
|
|
36964
36965
|
if (raw === void 0 || raw.trim() === "")
|
|
@@ -36970,6 +36971,15 @@ function envWsPort() {
|
|
|
36970
36971
|
return void 0;
|
|
36971
36972
|
return port;
|
|
36972
36973
|
}
|
|
36974
|
+
function envWsHost() {
|
|
36975
|
+
const raw = process.env.FETCHPROXY_WS_HOST;
|
|
36976
|
+
if (raw === void 0)
|
|
36977
|
+
return void 0;
|
|
36978
|
+
const host = raw.trim();
|
|
36979
|
+
if (host === "" || isIP(host) === 0)
|
|
36980
|
+
return void 0;
|
|
36981
|
+
return host;
|
|
36982
|
+
}
|
|
36973
36983
|
var FetchproxyProtocolError = class extends Error {
|
|
36974
36984
|
constructor(message) {
|
|
36975
36985
|
super(message);
|
|
@@ -37218,7 +37228,7 @@ var FetchproxyServer = class {
|
|
|
37218
37228
|
}
|
|
37219
37229
|
this.opts = {
|
|
37220
37230
|
port: opts.port ?? envWsPort() ?? 37149,
|
|
37221
|
-
host: opts.host ?? "127.0.0.1",
|
|
37231
|
+
host: opts.host ?? envWsHost() ?? "127.0.0.1",
|
|
37222
37232
|
serverName: opts.serverName,
|
|
37223
37233
|
version: opts.version,
|
|
37224
37234
|
domains: [...opts.domains],
|
|
@@ -37504,6 +37514,7 @@ var FetchproxyServer = class {
|
|
|
37504
37514
|
return {
|
|
37505
37515
|
role: this.role,
|
|
37506
37516
|
port: this.opts.port,
|
|
37517
|
+
host: this.opts.host,
|
|
37507
37518
|
serverVersion: this.opts.version,
|
|
37508
37519
|
fetchTimeoutMs: this.opts.fetchTimeoutMs ?? 0,
|
|
37509
37520
|
bridgeReviveDelayMs: this.opts.bridgeReviveDelayMs ?? 0,
|
|
@@ -39045,7 +39056,7 @@ function loadAccount(env = process.env) {
|
|
|
39045
39056
|
// package.json
|
|
39046
39057
|
var package_default = {
|
|
39047
39058
|
name: "infinitecampus-mcp",
|
|
39048
|
-
version: "2.
|
|
39059
|
+
version: "2.6.0",
|
|
39049
39060
|
mcpName: "io.github.chrischall/infinitecampus-mcp",
|
|
39050
39061
|
description: "Infinite Campus (Campus Parent) MCP server \u2014 multi-district read + message/document write",
|
|
39051
39062
|
author: "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -39091,8 +39102,8 @@ var package_default = {
|
|
|
39091
39102
|
},
|
|
39092
39103
|
dependencies: {
|
|
39093
39104
|
"@chrischall/mcp-utils": "^0.18.0",
|
|
39094
|
-
"@fetchproxy/bootstrap": "^2.
|
|
39095
|
-
"@fetchproxy/server": "^2.
|
|
39105
|
+
"@fetchproxy/bootstrap": "^2.2.0",
|
|
39106
|
+
"@fetchproxy/server": "^2.2.0",
|
|
39096
39107
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
39097
39108
|
dotenv: "^17.4.2",
|
|
39098
39109
|
"node-html-parser": "^9.0.0",
|
|
@@ -41007,7 +41018,7 @@ try {
|
|
|
41007
41018
|
}
|
|
41008
41019
|
var COMMON = {
|
|
41009
41020
|
name: "infinitecampus",
|
|
41010
|
-
version: "2.
|
|
41021
|
+
version: "2.6.0"
|
|
41011
41022
|
// x-release-please-version
|
|
41012
41023
|
};
|
|
41013
41024
|
if (account) {
|
package/dist/index.js
CHANGED
|
@@ -57,7 +57,7 @@ catch (e) {
|
|
|
57
57
|
// actionable stderr message (banner) instead of a crash loop.
|
|
58
58
|
const COMMON = {
|
|
59
59
|
name: 'infinitecampus',
|
|
60
|
-
version: '2.
|
|
60
|
+
version: '2.6.0', // x-release-please-version
|
|
61
61
|
};
|
|
62
62
|
if (account) {
|
|
63
63
|
const client = new ICClient(account, { refreshSession });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "infinitecampus-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"mcpName": "io.github.chrischall/infinitecampus-mcp",
|
|
5
5
|
"description": "Infinite Campus (Campus Parent) MCP server — multi-district read + message/document write",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@chrischall/mcp-utils": "^0.18.0",
|
|
49
|
-
"@fetchproxy/bootstrap": "^2.
|
|
50
|
-
"@fetchproxy/server": "^2.
|
|
49
|
+
"@fetchproxy/bootstrap": "^2.2.0",
|
|
50
|
+
"@fetchproxy/server": "^2.2.0",
|
|
51
51
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
52
52
|
"dotenv": "^17.4.2",
|
|
53
53
|
"node-html-parser": "^9.0.0",
|
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/chrischall/infinitecampus-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.6.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "infinitecampus-mcp",
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.6.0",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|