亚当HTTP MCP
ADAM学校管理信息系统的HTTP MCP服务器。使用StreamableHTTPServerTransport通过HTTP将47个ADAM API端点显示为MCP工具。专为AI代理、Claude Desktop和任何MCP客户端而设计。
快速开始
npm install
npm run dev服务器正在监听 http://localhost:3000/mcp.
配置
通过环境变量设置凭据:
export ADAM_API_TOKEN=your_30_character_token_here
export ADAM_BASE_URL=https://yourschool.adam.co.za/api
export PORT=3000 # optional, default 3000从以下位置获取API令牌:管理>安全管理>管理API令牌。
可选:基于名称的查找
要按姓名搜索学生、家庭和教职员工,请设置数据查询机密(从“管理”>“数据查询”):
export ADAM_DATAQUERY_PUPILS_SECRET=your_pupils_secret
export ADAM_DATAQUERY_FAMILIES_SECRET=your_families_secret
export ADAM_DATAQUERY_STAFF_SECRET=your_staff_secret可选:SSL验证
export ADAM_VERIFY_SSL=false # default: trueMCP客户端配置
克劳德桌面/克劳德代码
{
"mcpServers": {
"adam-school-mis": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}发展
# Development (no build, uses tsx)
npm run dev
# Build to dist/
npm run build
# Run production build
npm start码头工人
docker build -t adam-http-mcp .
docker run -p 3000:3000 \
-e ADAM_API_TOKEN=your_token \
-e ADAM_BASE_URL=https://yourschool.adam.co.za/api \
adam-http-mcp工具
16个类别的47个MCP工具:
| 类别 | 工具 | 描述 |
|---|---|---|
| 测试 | test_connection | 测试API连接 |
| 学生 | pupils_find | 按姓名搜索学生(需要数据查询密码) |
pupils_info | 获取瞳孔详细信息 | |
pupils_classes | 获取学生的班级和老师 | |
pupils_contacts | 获取所有学生联系人 | |
pupils_search_id | 按身份证号码搜索学生 | |
pupils_fields | 获取瞳孔视野定义 | |
pupils_search_admin | 按管理员标识符搜索 | |
| 日历 | calendar_pupil_links | 获取学生日历链接 |
calendar_staff_links | 获取员工日历链接 | |
| 学术 | academics_record | 获取学术记录 |
academics_assessments | 获取最近的评估结果 | |
academics_markbook | 获取一段时间的markbook | |
academics_periods | 获取报告期 | |
academics_pupil_periods | 获取学生的报告期 | |
academics_results | 获取一段时间内的所有结果 | |
academics_previous_reports | 获取以前的报告 | |
academics_question_breakdown | 获取问题细分 | |
| 教师 | teachers_emails | 获取学生的老师和电子邮件 |
teachers_classes | 与老师一起上课 | |
| 家 | families_find | 按名称搜索族(需要数据查询密码) |
families_emails | 获取家庭电子邮件地址 | |
families_children | 让孩子们在一个家庭中 | |
families_relationships | 为学生建立家庭关系 | |
families_contacts | 获取所有家庭联系人 | |
families_current_children | 获取当前注册的儿童 | |
families_search_id | 按身份证号码搜索家庭 | |
families_relationship_types | 获取关系类型定义 | |
families_family_relationships | 获取家庭关系详细信息 | |
families_login_privileges | 获取家庭登录权限 | |
| 类 | classes_list | 列出一个年级的班级和学生人数 |
classes_parent_emails | 获取班级家长电子邮件(多步骤) | |
classes_by_grade_period_subject | 按年级、课时、科目上课 | |
| 出席 | attendance_summary | 获取日期范围的缺勤摘要 |
attendance_list | 获取详细的缺席名单 | |
attendance_pupil_days | 让学生缺席几天 | |
| 叶子 | leaves_approved | 获得批准的休假申请 |
| 记录 | records_recent | 获取最近的行为记录 |
records_by_date | 按日期范围获取记录 | |
| 员工 | staff_find | 按姓名搜索员工(需要数据查询密码) |
| 医学的 | medical_off_sport | 从运动列表中删除 |
| 科目 | subjects_by_grade | 获取一个年级的科目 |
subjects_by_grades | 获取多个年级的科目 | |
| 心理测量学 | psychometric_assessments | 获得心理测量评估 |
| 消息 | messages_list | 获取消息日志 |
messages_get | 获取特定消息 | |
| 招生 | admissions_status_list | 获取注册状态类型 |
admissions_statuses | 获取所有注册状态 | |
| 数据查询 | dataquery_get_one | 通过秘密和ID获取单个记录 |
建筑
src/
tools.ts # Tool definitions (names, params, API path mappings)
index.ts # MCP server, Express HTTP transport, API client, custom handlers- 简单的工具 直接映射到ADAM API路径:
/api/{module}/{resource}/{param1}/{param2}/... - 定制工具 处理复杂的逻辑(通过数据查询进行名称搜索、类父电子邮件编排、客户端过滤)
- 通过以下方式进行每次会话隔离
StreamableHTTPServerTransport - ADAM响应包装器(
{"response": {"code": 200}, "data": ...})自动展开
许可证
本项目旨在与ADAM学校MIS装置一起使用。查看有关API使用的ADAM许可协议。
