mcpField
S
schoolpass-mcp

schoolpass-mcp

本地服务
github.com/chrischall生产力03 天前更新

关于 schoolpass-mcp

schoolpass-mcp 是面向家长的 SchoolPass MCP 服务,可读取学生、接送日历和学校信息,也能提交或取消接送变更。写入操作需经过预览和确认令牌。

主要功能

  1. 01查看关联学生与家长资料
  2. 02查询到校和离校日历
  3. 03查看接送人员及接送变更
  4. 04读取学校信息和离校地点
  5. 05确认后提交或取消接送变更

适用场景

  1. 01查看孩子某段日期的到校与离校安排
  2. 02核对获准接送人员和接送地点
  3. 03更新或撤销某天的接送安排

MCP 相关

作为 MCP 服务,它向 MCP 客户端提供 SchoolPass 家长账户的读取工具,以及需确认令牌的接送变更工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-schoolpass": {
"command": "npx",
"args": [
"-y",
"schoolpass-mcp"
],
"env": {
"SCHOOLPASS_EMAIL": "<SCHOOLPASS_EMAIL>",
"SCHOOLPASS_PASSWORD": "<SCHOOLPASS_PASSWORD>",
"SCHOOLPASS_SCHOOL_CODE": "<SCHOOLPASS_SCHOOL_CODE>",
"SCHOOLPASS_API_HOST": "<SCHOOLPASS_API_HOST>",
"SCHOOLPASS_TIMEZONE": "<SCHOOLPASS_TIMEZONE>",
"SCHOOLPASS_SESSION_CACHE": "<SCHOOLPASS_SESSION_CACHE>",
"SCHOOLPASS_SESSION_FILE": "<SCHOOLPASS_SESSION_FILE>"
}
}
}
}
启动命令npx -y schoolpass-mcp
需要配置的环境变量
SCHOOLPASS_EMAILYour SchoolPass parent account email address.
SCHOOLPASS_PASSWORD密钥Your SchoolPass parent account password.
SCHOOLPASS_SCHOOL_CODEThe numeric school id (AppCode) SchoolPass uses to select your school.
SCHOOLPASS_API_HOSTOptional regional API host override (default busapi-east16-ss.school-pass.net).
SCHOOLPASS_TIMEZONEThe school's IANA timezone (e.g. America/New_York), used for the "today" default of the calendar and pickup-change reads. Defaults to the server's local zone; set it when the server runs elsewhere (a hosted server runs in UTC, so evening defaults would otherwise point at tomorrow).
SCHOOLPASS_SESSION_CACHESet to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
SCHOOLPASS_SESSION_FILEAbsolute path for the session cache file. Defaults to $MCP_DATA_DIR/.schoolpass-mcp/session.json.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmschoolpass-mcp1.0.10

工具

11

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

schoolpass-mcp

SchoolPass 的 MCP 服务——通过家长账户读取并更改孩子的到校和离校安排。调用 SchoolPass 网页版和移动应用使用的 REST API,并在服务端使用你自己的家长邮箱和密码进行身份验证(无需浏览器或扩展)。

由 AI(Claude Code)开发和维护。请自行斟酌使用。

仅限家长账户:提供读取工具,以及带确认门槛的离校更改写入和取消操作。

工具

工具功能
schoolpass_healthcheck分别报告可访问性和身份验证状态。
schoolpass_whoami服务登录时使用的家长身份。
schoolpass_list_students与你关联的学生——姓名、年级、默认离校地点和课后托管信息。
schoolpass_get_profile家长账户资料。
schoolpass_list_drivers获准接送的司机;include_carpool: true 会一并返回其拼车信息(除非设置 view: "full",否则会移除其他家庭的联系方式和车辆字段)。
schoolpass_get_calendar指定日期范围内某位学生的到校/离校日历。
schoolpass_list_pickup_changes指定日期某位学生的接送/离校更改。
schoolpass_list_dismissal_locations学校的离校地点及其 ID。
schoolpass_get_school_info学校基本信息和各学校的配置。
schoolpass_submit_dismissal_change提交离校/到校更改(需确认:预览 + 一次性 confirmToken)。
schoolpass_cancel_dismissal_change取消更改并恢复默认设置(需确认:预览 + confirmToken)。

配置

环境变量必需说明
SCHOOLPASS_EMAIL是你的 SchoolPass 家长账户邮箱。
SCHOOLPASS_PASSWORD是你的 SchoolPass 密码。
SCHOOLPASS_SCHOOL_CODE是学校的数字 ID(即 AppCode / appCode 值,例如 1183)。
SCHOOLPASS_API_HOST否区域 API 主机覆盖值(默认值为 busapi-east16-ss.school-pass.net)。必须是 https *.school-pass.net 主机——密码会发送到此处,因此不接受 http:// 或任何其他域名。
SCHOOLPASS_TIMEZONE否学校的 IANA 时区(例如 America/New_York),用于设置日历和接送更改查询的“今天”默认值。默认使用服务器本地时区;如果服务器运行在其他地方,请设置此值(托管服务器运行于 UTC,因此否则晚间的默认日期可能会指向明天)。
MCP_CONFIRM_MODE否当客户端无法显示提示词时,两个写入操作的确认方式:ask-user(默认——预览 + 令牌,由用户在聊天中批准)、auto(模型查看预览后可使用令牌),或 refuse。
MCP_CONFIRM_ELICITATION否off 表示不显示确认提示词,因此所有客户端都使用 MCP_CONFIRM_MODE 行为。如果客户端声称可以显示提示词却从不显示,请为其设置此项(写入会一直挂起——opencode 2.0.x)。默认值为 on;任何其他值均视为 on,并在 stderr 输出警告。
MCP_CONFIRM_TTL_SECONDS否确认令牌的有效时长(默认值为 600 秒)。
MCP_CONFIRM_SECRET否确认令牌的 HMAC 密钥;仅当令牌必须在重启后继续有效时才设置。在 mcp-host 上,主机会提供稳定的子进程专用密钥(MCP_HOST_CONFIRM_SECRET),已使用的令牌会记录在 MCP_DATA_DIR 下,因此审批在空闲重启后仍然有效。

查找学校 ID 和区域主机: 登录学校的 <school>.school-pass.net 门户,打开新版 SchoolPass 应用,并从浏览器 localStorage 中读取 appCode(ID)和 apiUrl(主机)。

安装

{
  "mcpServers": {
    "schoolpass": {
      "command": "npx",
      "args": ["-y", "schoolpass-mcp"],
      "env": {
        "SCHOOLPASS_EMAIL": "[email protected]",
        "SCHOOLPASS_PASSWORD": "your-password",
        "SCHOOLPASS_SCHOOL_CODE": "1183"
      }
    }
  }
}

注意事项

  • 仅限家长范围。 家长令牌无法访问管理员路由(访客管理、接送线路操作、报告、校车路线);这些请求会返回 403。
  • 切勿重试被拒绝的登录。 SchoolPass 使用 reCAPTCHA 保护登录;反复失败可能会触发账户验证。每个进程只会尝试一次 SchoolPass 拒绝的密码(400/401):后续调用会返回相同错误,不会联系 SchoolPass,直到配置的凭据发生变化或服务重启。CDN/WAF 阻止页面(CloudFront、Cloudflare、……)不属于拒绝:这类情况会报告为边缘阻止,不会锁存,也不会使用或丢弃已存储的会话。
  • 没有凭据也能启动。 服务无需配置即可启动并响应 tools/list;配置错误会在首次调用工具时显现。

无需服务:curl

SchoolPass API 可从服务器端访问,因此临时通过 shell 读取数据无需启动 MCP 进程——curl + jq 配方集见随附的 schoolpass-curl 技能(skills/schoolpass-curl/)。

开发

npm install
npm test            # tsc typecheck + unit + boot tests
npm run build       # tsc + esbuild bundle
node --env-file=.env scripts/live-check.mjs   # live read-only check (needs .env)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。