infinitecampus-mcp 3.2.1 → 3.2.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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/bundle.js +4 -4
- package/dist/index.js +1 -1
- package/dist/tools/messages.js +2 -2
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/ic/SKILL.md +1 -1
|
@@ -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": "3.2.
|
|
10
|
+
"version": "3.2.2"
|
|
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": "3.2.
|
|
18
|
+
"version": "3.2.2",
|
|
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": "3.2.
|
|
4
|
+
"version": "3.2.2",
|
|
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
|
@@ -68902,7 +68902,7 @@ function resolveDownloadDir(env = process.env) {
|
|
|
68902
68902
|
// package.json
|
|
68903
68903
|
var package_default = {
|
|
68904
68904
|
name: "infinitecampus-mcp",
|
|
68905
|
-
version: "3.2.
|
|
68905
|
+
version: "3.2.2",
|
|
68906
68906
|
mcpName: "io.github.chrischall/infinitecampus-mcp",
|
|
68907
68907
|
description: "Infinite Campus (Campus Parent) MCP server \u2014 multi-district, read-only (plus local document download)",
|
|
68908
68908
|
author: "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -70814,8 +70814,8 @@ function registerMessageTools(server, client) {
|
|
|
70814
70814
|
return viewResponse(rawArgs.view, untrustedEnvelope({ notifications, inbox, announcements }));
|
|
70815
70815
|
});
|
|
70816
70816
|
server.registerTool("ic_get_message", {
|
|
70817
|
-
description: "Fetch the HTML body of an inbox message and return it parsed into { subject, date, body, url }. Takes a `messageUrl` which is the `url` field from an item returned by ic_list_messages' inbox section (e.g. 'portal/messageView.xsl?x=messenger.MessengerEngine-getMessageRecipientView&messageID=...'). Relative and /campus/-prefixed URLs are both accepted.
|
|
70818
|
-
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
70817
|
+
description: "Fetch the HTML body of an inbox message and return it parsed into { subject, date, body, url }. Takes a `messageUrl` which is the `url` field from an item returned by ic_list_messages' inbox section (e.g. 'portal/messageView.xsl?x=messenger.MessengerEngine-getMessageRecipientView&messageID=...'). Relative and /campus/-prefixed URLs are both accepted. Fetching the body may mark the message as read in the portal (as opening it there does), so this is not a pure read. " + UNTRUSTED_DESCRIPTION_SUFFIX,
|
|
70818
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
70819
70819
|
inputSchema: external_exports.object({ ...getArgs.shape, view: viewArg() })
|
|
70820
70820
|
}, async (rawArgs) => {
|
|
70821
70821
|
const args = getArgs.parse(rawArgs);
|
|
@@ -71346,7 +71346,7 @@ try {
|
|
|
71346
71346
|
}
|
|
71347
71347
|
var COMMON = {
|
|
71348
71348
|
name: "infinitecampus",
|
|
71349
|
-
version: "3.2.
|
|
71349
|
+
version: "3.2.2"
|
|
71350
71350
|
// x-release-please-version
|
|
71351
71351
|
};
|
|
71352
71352
|
var healthState = { account, source, configError, client: null };
|
package/dist/index.js
CHANGED
|
@@ -56,7 +56,7 @@ catch (e) {
|
|
|
56
56
|
// avoids — see `unconfiguredClient`.
|
|
57
57
|
const COMMON = {
|
|
58
58
|
name: 'infinitecampus',
|
|
59
|
-
version: '3.2.
|
|
59
|
+
version: '3.2.2', // x-release-please-version
|
|
60
60
|
};
|
|
61
61
|
// Shared with the healthcheck so it can report the SAME state the tools see,
|
|
62
62
|
// including on the unconfigured path where there are no tools at all.
|
package/dist/tools/messages.js
CHANGED
|
@@ -103,9 +103,9 @@ export function registerMessageTools(server, client) {
|
|
|
103
103
|
return viewResponse(rawArgs.view, untrustedEnvelope({ notifications, inbox, announcements }));
|
|
104
104
|
});
|
|
105
105
|
server.registerTool('ic_get_message', {
|
|
106
|
-
description: "Fetch the HTML body of an inbox message and return it parsed into { subject, date, body, url }. Takes a `messageUrl` which is the `url` field from an item returned by ic_list_messages' inbox section (e.g. 'portal/messageView.xsl?x=messenger.MessengerEngine-getMessageRecipientView&messageID=...'). Relative and /campus/-prefixed URLs are both accepted.
|
|
106
|
+
description: "Fetch the HTML body of an inbox message and return it parsed into { subject, date, body, url }. Takes a `messageUrl` which is the `url` field from an item returned by ic_list_messages' inbox section (e.g. 'portal/messageView.xsl?x=messenger.MessengerEngine-getMessageRecipientView&messageID=...'). Relative and /campus/-prefixed URLs are both accepted. Fetching the body may mark the message as read in the portal (as opening it there does), so this is not a pure read. " +
|
|
107
107
|
UNTRUSTED_DESCRIPTION_SUFFIX,
|
|
108
|
-
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
108
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
109
109
|
inputSchema: z.object({ ...getArgs.shape, view: viewArg() }),
|
|
110
110
|
}, async (rawArgs) => {
|
|
111
111
|
const args = getArgs.parse(rawArgs);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "infinitecampus-mcp",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"mcpName": "io.github.chrischall/infinitecampus-mcp",
|
|
5
5
|
"description": "Infinite Campus (Campus Parent) MCP server — multi-district, read-only (plus local document download)",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
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": "3.2.
|
|
9
|
+
"version": "3.2.2",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "infinitecampus-mcp",
|
|
14
|
-
"version": "3.2.
|
|
14
|
+
"version": "3.2.2",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/skills/ic/SKILL.md
CHANGED
|
@@ -224,5 +224,5 @@ Two tools take no `view`, both because there is nothing to project:
|
|
|
224
224
|
## Caution
|
|
225
225
|
|
|
226
226
|
- `ic_download_document` writes to disk at `destinationPath`, only inside the download directory, and refuses to replace an existing file unless `overwrite: true` — confirm the path with the user.
|
|
227
|
-
- `
|
|
227
|
+
- `ic_get_message` is not annotated read-only: fetching a message's body may mark it as read in the portal, as opening it there does (not yet confirmed against a live unread message). Use it only when the user asks to open a message; summarize the inbox from `ic_list_messages`.
|
|
228
228
|
- Endpoint behavior varies by district. If `ic_list_behavior`, `ic_list_food_service`, `ic_list_documents`, `ic_list_assessments`, or `ic_list_fees` returns a `FeatureDisabled` warning, that module is simply turned off for the district — it's not an error. `ic_list_fees` may also return `PartialSuccess` when only one of its two sub-endpoints works.
|