核心用法
本 Skill 提供了一套纯 shell/curl 方案,用于直接访问 Infinite Campus 的 Campus Parent 门户,绕过 MCP 服务器依赖。用户通过向 verify.jsp 发送表单 POST 请求完成登录,获取 session cookie 和 XSRF token 后即可调用 17 个只读 API 端点,涵盖学生基本信息、成绩、出勤记录、作业、课程表、消息、文档、费用、教师信息、评估结果等数据。
使用流程分为三步:配置环境变量(IC_BASE_URL、IC_DISTRICT、IC_USERNAME、IC_PASSWORD)、执行登录捕获 cookie、使用封装函数 ic_get 进行后续查询。所有请求需携带 cookie jar 和 X-XSRF-TOKEN 头,会话有效期约 5-6 小时,过期后需重新登录。
显著优点
零依赖轻量方案:仅需 curl 和 jq,无需 Node.js 运行时或 MCP 服务器安装,适合 CI/CD 流水线、边缘设备、容器化脚本等受限环境。
配置灵活:支持多地区(per-district)部署,base URL 和 district 名称完全可配置,不硬编码任何特定学区信息,便于跨学区复用。
完整数据覆盖:提供 17 个端点的即用命令模板,包含学生解析、 enrollment 关联、文档下载等完整工作流,并附带模块禁用检测逻辑。
安全传输:凭证通过 form body 提交而非 URL 参数,避免出现在访问日志中;支持标准 cookie 管理机制。
潜在缺点与局限性
会话管理简陋:无自动续期机制,5-6 小时会话过期后需手动重登,相比 MCP 的 CookieSessionManager 缺失自动重试能力。
无跨学区 SSO 支持:CUPS 关联学区切换需完整 token 交换流程,本 Skill 明确排除该场景,多学区家庭需分别为每个 portal 重复登录。
模块可用性不确定:behavior、food_service 等端点未经实际验证,404 可能是模块禁用也可能是路径差异,需额外调用 displayOptions 接口预判。
仅限只读操作:所有示例为 GET 请求,ic_get_message 可能存在已读标记副作用但未确认,无创建/更新/删除能力。
适合的目标群体
- 需要在没有 MCP 环境的机器(如服务器、IoT 设备)上获取 IC 数据的运维人员
- 偏好纯 shell 脚本、追求最小依赖的技术用户
- 需要快速原型验证或一次性数据导出的开发者
- 跨学区 IT 管理员进行多 portal 健康检查
使用风险
凭证泄露风险:环境变量或 .env 文件若权限配置不当,可能导致家长账号密码泄露;建议在主机 secret store 或临时内存中管理。
会话劫持风险:cookie jar 文件在 /tmp 等路径可能面临权限竞争,建议设置严格文件权限并在使用后清理。
API 变更风险:IC 无公开 API 文档,端点基于逆向工程,未来版本升级可能导致 404 或响应结构变化。
速率限制风险:高频请求可能触发学区门户的防护机制,建议增加请求间隔或实现退避策略。
合规与隐私风险:学生教育数据受 FERPA 等法规保护,自动化采集需确保授权范围合规,避免未授权数据留存。