You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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="你的头歌密码"

WindowsPowerShell

$env:EDUCODER_LOGIN="你的头歌账号"
$env:EDUCODER_PASSWORD="你的头歌密码"

WindowsCMD

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平台无关的场景
  • 要求修改成绩、删除数据等写操作

组合调用示例

用户说:"帮我看看我是谁,还有我教了哪些课"

依次调用:

  1. educoder_login(如未登录)
  2. educoder_current_user
  3. educoder_my_courses

用户说:"查询高等数学课堂的学生和作业情况"

依次调用:

  1. educoder_my_courses获取课堂ID
  2. educoder_course_students
  3. educoder_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 → 直接调用

搜索实训项目。

典型问法: "搜索实训" / "查找实训项目" / "搜索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"}'