Summarises the running container's keepalive: extension count, latest budget, transient failures, rejections, restarts. It deliberately makes no API call. Any authenticated request slides the session TTL, so a checker that talked to Schulcloud would be sustaining the session itself and could not report on whether the keepalive is doing it — the same confound that made the first endurance test ambiguous. Reading container logs observes without participating. Warns when the reported budget drops below 7000s, which is the early signal that extensions have stopped taking effect. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
41 lines
1.2 KiB
JSON
41 lines
1.2 KiB
JSON
{
|
|
"name": "schulcloud-mcp",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "MCP server exposing the Schulcloud (HPI Schul-Cloud / SVS) API to Claude: courses, boards, lessons, tasks and file downloads.",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"bin": {
|
|
"schulcloud-mcp": "dist/bin/stdio.js"
|
|
},
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json",
|
|
"dev": "node --watch --experimental-strip-types src/bin/http.ts",
|
|
"start": "node dist/bin/http.js",
|
|
"stdio": "node dist/bin/stdio.js",
|
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
"test": "node --test test/*.test.ts",
|
|
"probe": "node --env-file=.env scripts/probe.mjs",
|
|
"smoke": "node --env-file=.env scripts/smoke.mjs",
|
|
"session-diagnose": "node --env-file=.env scripts/session-diagnose.mjs",
|
|
"keepalive-status": "bash scripts/keepalive-status.sh"
|
|
},
|
|
"dependencies": {
|
|
"@modelcontextprotocol/sdk": "^1.20.0",
|
|
"exceljs": "^4.4.0",
|
|
"express": "^5.1.0",
|
|
"mammoth": "^1.11.0",
|
|
"unpdf": "^1.3.2",
|
|
"unzipper": "^0.12.3",
|
|
"zod": "^3.25.76"
|
|
},
|
|
"devDependencies": {
|
|
"@types/express": "^5.0.3",
|
|
"@types/node": "^22.15.0",
|
|
"@types/unzipper": "^0.10.11",
|
|
"typescript": "^5.9.2"
|
|
}
|
|
}
|