ParentSquare MCP服务器
一 MCP(模型上下文协议) 允许Claude访问的服务器 家长广场,一个家长交流平台。由于ParentSquare没有公共的API,因此该服务器使用保存的会话Cookie抓取web界面。
免责声明
本项目不隶属于ParentSquare,股份有限公司,也不由其背书或赞助。 “ParentSquare”及所有相关名称、徽标和商标均为ParentSquareneneneba公司的财产。 此服务器与ParentSquare的 未记录的内部API (抓取web UI并将其称为非公开 /api/v2/ JSON端点)——这些端点不会发布,也不保证稳定,可能随时更改或被阻止,恕不另行通知。使用这些接口可能会违反ParentSquare的服务条款;您有责任审查ToS并决定您的使用是否可接受。 使用风险自负。 作者和贡献者对使用本软件的任何后果不承担任何责任,包括但不限于:帐户暂停或终止、数据丢失或损坏、遗漏或不正确的通知、MFA锁定、泄露的会话Cookie、IP阻止或任何其他直接或间接损害。不提供保修——请参阅 许可证 对于完整的MIT无担保条款。 如果ParentSquare发布了一个官方的API,那么这个项目应该被认为是不赞成的。特性
订阅源和帖子
get_feeds--浏览带有标题、作者、摘要和附件名称的分页学校订阅源get_post--完整的帖子详细信息,包括正文、评论、投票结果、注册项目和 内联图像/PDF内容 (克劳德可以“看到”附带的日历、传单等。)get_group_feed--来自特定组的帖子
日历
get_calendar_events--ICS日历中的事件为结构化JSON(标题、开始/结束、位置、描述)- 回到指导克劳德在ICS为空时搜索图片/PDF日历的提要帖子
沟通
list_conversations/get_conversation--读取消息线程get_directory--JSON格式的员工目录(姓名、角色、电话、用户id)get_staff_member--员工详细信息,包括电子邮件、办公时间和 内联个人资料照片
媒体和文件
list_photos--带URL的照片库list_files--文档文件download_file--将任何附件下载到本地磁盘
参与
list_signups--注册并回复带有进度跟踪的帖子(例如“53/103项目”)list_notices--警报和安全文件list_polls--投票计数和获胜选择的民意调查list_forms--许可单和可签署表格list_payments--带有价格和汇总统计信息的付款项目list_volunteer_hours--记录的志愿者小时数及总计
群组与探索
list_schools--学校和学生作为结构化JSONlist_school_features--每所学校的可用部分(从侧边栏解析)list_groups--包含成员数量、描述和成员状态的组list_links--快速访问链接(谷歌云端硬盘、外部网站)
学生
get_student_dashboard--学校、年级、班级和教师作为结构化JSON
认证
submit_mfa_code--使用6位代码完成MFA验证- 支持MCP引导内联MFA提示
- 会话Cookie已持久化
~/.parentsquare_cookies.json - 会话到期时从环境变量或1Password CLI加载凭据
设置
先决条件
凭据可以通过以下两种方式之一提供(按此顺序检查):
- 环境变量 --set
PS_USERNAME和PS_PASSWORD - 1Password命令行界面 (
op)--带有一个“Parentsquare”项,其中包含username和password领域
在Claude代码中安装
claude mcp add --transport stdio parentsquare -- uvx --from "parentsquare-mcp @ git+https://github.com/thehesiod/psquare-mcp" parentsquare-mcp要为帖子附件启用PDF文本提取(可选,AGPL-3.0许可):
claude mcp add --transport stdio parentsquare -- uvx --from "parentsquare-mcp[pdf] @ git+https://github.com/thehesiod/psquare-mcp" parentsquare-mcp就这样
无需进一步配置。服务器 自动发现 第一次使用时,您的学校、学生和ParentSquare的用户ID。身份验证是自动处理的——当会话到期时,服务器会从环境变量(或1Password CLI)加载您的凭据并重新进行身份验证(如果需要,包括MFA)。
要在Claude Code中使用环境变量,请添加 env 阻止您的MCP配置:
{
"mcpServers": {
"parentsquare": {
"command": "uvx",
"args": ["parentsquare-mcp"],
"env": {
"PS_USERNAME": "your@email.com",
"PS_PASSWORD": "your-password"
}
}
}
}安全说明: 环境变量将密码以明文形式放置在MCP配置文件中。如果您选择密码管理器是为了避免这种情况,请首选1Password CLI路径。
运作原理
服务器使用 requests + BeautifulSoup 抓取ParentSquare服务器渲染的HTML页面。每个工具都遵循以下模式:
- 获取 HTML页面通过
PSClient.get_page()或JSON通过PSClient.get_json()(会话到期时自动重新登录) - 解析 使用专用解析器
parsers/将结构化数据提取到数据类中 - 返回 结果可以是结构化JSON字典(用于数据查找工具)或markdown文本(用于内容丰富的工具)
数据查找工具(list_schools, get_directory, get_calendar_events, get_student_dashboard, get_staff_member)返回结构化JSON,便于编程访问。内容工具(get_post, get_feeds, get_conversation)返回markdown。
首次使用时,服务器会自动从ParentSquare发现您的学校、学生和用户ID(不需要配置文件)。
对于 get_post,下载图像附件并作为MCP返回 Image 对象(这样克劳德就可以看到它们)和PDF附件的文本通过pymupdf提取。 get_staff_member 还返回内联个人资料照片。
组使用GraphQL端点(/graphql)而不是HTML抓取。目录和员工详细信息使用内部 /api/v2/ JSON:API。
依赖项
| 包装 | 用途 | 许可证 |
|---|---|---|
mcp | 模型上下文协议SDK | 麻省理工学院 |
requests | HTTP客户端 | Apache 2.0 |
beautifulsoup4 | HTML解析 | 麻省理工学院 |
icalendar | ICS日历解析 | BSD |
pymupdf | PDF文本提取(可选) | AGPL-3.0 |
许可证
麻省理工学院——见 许可证.注:可选 pymupdf 依赖关系是AGPL-3.0许可的。
mcp名称:io.github.hesiod/psquare
