9.9 KiB
| name | description |
|---|---|
| educoder | 提供头歌Educoder实践教学平台的查询服务,包括用户登录、课堂管理、作业查询、实训项目查询、考试管理等功能。 |
MCP 服务地址
- 本地开发:
http://localhost:8000/sse - 远程服务:
http://143.64.38.7:37010/sse
使用 SSE 模式连接,客户端配置时填写上述地址之一即可。
注意事项
- 不要用 copaw 调 mcp 服务,优先使用 npx mcporter。
- 头歌平台需要登录后才能使用,请确保环境变量配置正确。
前置配置(只需一次)
第一步:设置环境变量
macOS / Linux:
export EDUCODER_LOGIN="你的头歌账号"
export EDUCODER_PASSWORD="你的头歌密码"
Windows(PowerShell):
$env:EDUCODER_LOGIN="你的头歌账号"
$env:EDUCODER_PASSWORD="你的头歌密码"
Windows(CMD):
set EDUCODER_LOGIN=你的头歌账号
set EDUCODER_PASSWORD=你的头歌密码
没有配置账号密码? 所有工具调用都会返回鉴权失败。请先完成上述步骤。
第二步:运行安装脚本
macOS / Linux:
bash setup.sh
Windows 或任何有 Node.js 的环境:
node setup.js
具体配置文件路径取决于你使用的客户端(OpenClaw / CodeBuddy / Cursor 等),请参考对应文档。
第三步:安装后验证
安装成功后,必须立刻执行:educoder_login 以验证账号配置与服务是否可用。
- 判断登录失败 -> 提示检查账号密码是否正确
- 判断登录成功 -> 正常返回用户信息,说明配置成功
- 当用户提供账号密码后,需要帮助用户直接更新环境变量,不需要用户自己执行
触发场景
意图 → 工具 速查表
| 用户意图 | 调用工具 |
|---|---|
| 登录头歌 / 登录Educoder | educoder_login |
| 查询账号 / 我的信息 / 我是谁 | educoder_current_user |
| 查询我的课堂 / 我教了哪些课 | educoder_my_courses |
| 查询课堂学生 / XX课堂有哪些学生 | educoder_course_students |
| 查询课堂信息 / 课堂设置 | educoder_course_info |
| 查询课堂分班 | educoder_course_groups |
| 查询作业列表 / 课堂有哪些作业 | educoder_homework_list |
| 查询作业提交情况 / 学生作业完成情况 | educoder_homework_detail |
| 查询考试列表 / 课堂有哪些考试 | educoder_exercises |
| 搜索实训 / 查找实训项目 | educoder_shixun_search |
| 查询实训详情 / XX实训的信息 | educoder_shixun_info |
| 查询我的实训 / 我管理的实训项目 | educoder_my_shixuns |
| 查询我的实践课程 | educoder_my_subjects |
不要触发的情况
- 讨论教学方法(不是在查询数据)
- 纯聊天中提到"课堂"、"作业"
- 与头歌Educoder平台无关的场景
- 要求修改成绩、删除数据等写操作
组合调用示例
用户说:"帮我看看我是谁,还有我教了哪些课"
依次调用:
educoder_login(如未登录)educoder_current_usereducoder_my_courses
用户说:"查询高等数学课堂的学生和作业情况"
依次调用:
educoder_my_courses(获取课堂ID)educoder_course_studentseducoder_homework_list
工具详细说明
全局规则
- 登录前置:如果工具调用返回鉴权失败,先调用
educoder_login登录后重试 - 课堂ID获取:查询课堂相关信息时,如果用户给的是课堂名称,先通过
educoder_my_courses获取课堂列表找到对应ID - 用户名获取:需要username参数的工具,先调用
educoder_current_user获取用户名 - mcp 服务使用注意事项:
- 推荐使用 npx mcporter 调用 MCP 服务(无需全局安装),不建议直接使用 curl;
- 严禁使用 copaw 调用 MCP,必须改用 mcporter;
- 如果 mcp 服务提示鉴权失败,请引导用户检查 EDUCODER_LOGIN 和 EDUCODER_PASSWORD 环境变量;
- 如果 mcp 服务找不到,注意指定 mcp 配置文件的路径;
- 如果调用失败,可以换一种方式重试,但若多次尝试仍不成功,请停止并检查配置;
- 调用需要参数的 MCP 工具时,必须传入完整的结构化 JSON 参数对象;
- 严禁 mcporter 在调用需要参数的 MCP 工具时,遗漏
--args。
1. educoder_login
登录头歌Educoder平台,获取会话凭证。
典型问法: "登录头歌" / "帮我登录Educoder" / "进行身份认证"
参数: 无(从环境变量 EDUCODER_LOGIN 和 EDUCODER_PASSWORD 读取)
交互规则:
- 首次使用或会话过期时必须调用
- 登录成功后才能调用其他工具
2. educoder_current_user
查询当前登录用户的信息。
典型问法: "我是谁" / "我的账号信息" / "查询当前用户"
参数: 无
返回内容包括: 用户名、用户ID、角色信息、所属学校等
3. educoder_my_courses
查询当前用户教授或管理的课堂列表。
典型问法: "我教了哪些课" / "我的课堂列表" / "查询我的课程"
参数: 无
返回内容包括: 课堂名称、课堂ID、课程状态、学生人数等
注意: 返回结果中的 emoji 需保留。
4. educoder_course_students
查询指定课堂的学生名单。
典型问法: "XX课堂有哪些学生" / "查询课堂学生名单" / "高等数学班的学生"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
courseId |
是 | 课堂ID |
使用逻辑:
- 用户给课堂名称 → 先调
educoder_my_courses获取课堂列表,找到对应courseId,再调本工具 - 用户直接给
courseId→ 直接调用
5. educoder_course_info
查询指定课堂的详细信息。
典型问法: "查询课堂信息" / "XX课堂的设置" / "课堂详情"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
courseId |
是 | 课堂ID |
使用逻辑:
- 用户给课堂名称 → 先调
educoder_my_courses获取课堂列表,找到对应courseId,再调本工具 - 用户直接给
courseId→ 直接调用
6. educoder_course_groups
查询指定课堂的分班情况。
典型问法: "查询课堂分班" / "XX课堂有哪些分组" / "课堂分班情况"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
courseId |
是 | 课堂ID |
使用逻辑:
- 用户给课堂名称 → 先调
educoder_my_courses获取课堂列表,找到对应courseId,再调本工具 - 用户直接给
courseId→ 直接调用
7. educoder_homework_list
查询指定课堂的作业列表。
典型问法: "查询作业列表" / "XX课堂有哪些作业" / "课堂作业"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
courseId |
是 | 课堂ID |
使用逻辑:
- 用户给课堂名称 → 先调
educoder_my_courses获取课堂列表,找到对应courseId,再调本工具 - 用户直接给
courseId→ 直接调用
8. educoder_homework_detail
查询指定作业的详细提交情况。
典型问法: "查询作业提交情况" / "学生作业完成情况" / "作业详情"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
homeworkId |
是 | 作业ID |
courseId |
是 | 课堂ID |
使用逻辑:
- 用户给课堂名称 → 先调
educoder_my_courses获取课堂列表,找到对应courseId - 用户给作业名称 → 先调
educoder_homework_list获取作业列表,找到对应homeworkId - 再调本工具获取作业详情
9. educoder_exercises
查询指定课堂的考试/练习列表。
典型问法: "查询考试列表" / "课堂有哪些考试" / "练习列表"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
courseId |
是 | 课堂ID |
使用逻辑:
- 用户给课堂名称 → 先调
educoder_my_courses获取课堂列表,找到对应courseId,再调本工具 - 用户直接给
courseId→ 直接调用
10. educoder_shixun_search
搜索实训项目。
典型问法: "搜索实训" / "查找实训项目" / "搜索Python实训"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
keyword |
是 | 搜索关键词 |
11. educoder_shixun_info
查询指定实训项目的详细信息。
典型问法: "查询实训详情" / "XX实训的信息" / "实训项目详情"
参数:
| 参数 | 必填 | 说明 |
|---|---|---|
shixunId |
是 | 实训ID |
12. educoder_my_shixuns
查询当前用户管理或创建的实训项目列表。
典型问法: "查询我的实训" / "我管理的实训项目" / "我的实训列表"
参数: 无
13. educoder_my_subjects
查询当前用户的实践课程列表。
典型问法: "查询我的实践课程" / "我的课程列表" / "实践课程"
参数: 无
输出规范
- 结果结构化展示(列表或表格形式)
- 课堂信息至少包含:课堂名称、课堂ID
- 实训信息包含:实训名称、实训ID、状态
- 学生信息包含:学生姓名、学号、提交状态
- 作业信息包含:作业名称、作业ID、截止时间、提交情况
- 保留工具返回的原始文案,不要自由发挥改写
红线
- 不编造任何教学数据,必须依赖工具返回
- 不做权限外操作(如修改成绩、删除数据、添加学生等)
- 不暴露用户密码等敏感信息
- 不执行任何写操作,仅限查询
调用方式
# Mac 或 Linux 示例:登录头歌
npx mcporter call educoder-mcp educoder_login
# 查询我的课堂
npx mcporter call educoder-mcp educoder_my_courses
# 查询指定课堂的学生(需要courseId)
npx mcporter call educoder-mcp educoder_course_students --args '{"courseId": "xxx"}'
# 搜索实训项目
npx mcporter call educoder-mcp educoder_shixun_search --args '{"keyword": "Python"}'