{"name":"io.github.chrischall/infinitecampus-mcp","slug":"chrischall-infinitecampus-mcp","title":null,"description":"Infinite Campus (Campus Parent) for Claude — grades, attendance, assignments, messages","url":"https://mcp.market/server/chrischall-infinitecampus-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":22,"stars":4,"forks":1,"downloads_week":null,"last_push_at":"2026-09-19T04:05:22.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/chrischall/infinitecampus-mcp","website":null,"version":"2.8.5","remotes":[],"packages":[{"registryType":"npm","identifier":"infinitecampus-mcp","version":"2.8.5","transport":{"type":"stdio"},"environmentVariables":[{"description":"Campus Parent portal base URL, e.g. https://campus.district.k12.example.us","isRequired":true,"format":"string","name":"IC_BASE_URL"},{"description":"Infinite Campus district app name (appName path segment from the portal URL)","isRequired":true,"format":"string","name":"IC_DISTRICT"},{"description":"Campus Parent portal username. Optional: leave unset to use the fetchproxy browser-extension fallback.","format":"string","name":"IC_USERNAME"},{"description":"Campus Parent portal password. Required only when IC_USERNAME is set.","format":"string","isSecret":true,"name":"IC_PASSWORD"},{"description":"Friendly name for the district (defaults to district appname)","format":"string","name":"IC_NAME"},{"description":"Set to 1 to skip the fetchproxy browser-extension fallback (missing creds become a hard error — useful in headless CI).","format":"string","name":"IC_DISABLE_FETCHPROXY"},{"description":"Set to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.","format":"string","name":"IC_SESSION_CACHE"},{"description":"Absolute path for the session cache file. Defaults to $MCP_DATA_DIR/.infinitecampus-mcp/session-<district>.json.","format":"string","name":"IC_SESSION_FILE"}]}],"tools":[],"scan":{"score":75,"grade":"B","scanned_at":"2026-09-19T10:15:43.146Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T10:15:43.149Z","components":{"code":{"score":20,"max":25,"notes":["32 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/bundle.js: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"infinitecampus-mcp","version":"2.8.5","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":7,"publishedAt":"2026-09-15T19:24:14.193Z","repositoryUrl":"git+https://github.com/chrischall/infinitecampus-mcp.git"}],"repo":{"found":true,"owner":"chrischall","repo":"infinitecampus-mcp","archived":false,"pushedAt":"2026-09-19T04:05:22Z","stars":4,"forks":1,"openIssues":2,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10564245?v=4","ownerCreatedAt":"2015-01-16T16:58:09Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":4,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T04:05:22.000Z","score":22}}}},"grade_history":[],"reviews":[]}