学生进度跟踪MCP服务器
MCP服务器,用于人工智能驱动的学生进度跟踪和学习分析。连接到Claude Desktop或Claude Code,使AI助手能够管理学生、跟踪评估、计算掌握水平、识别学习差距并推荐重点领域。
  
什么是MCP?
模型上下文协议(MCP) 是一个开放标准,允许像Claude这样的人工智能助手连接到外部工具和数据源。此服务器将学生进度跟踪作为MCP工具公开,Claude可以在对话中直接调用这些工具。
特性
- 学生简介 -创建和管理学生成绩记录
- 课程注册 -组织学生学习有主题的课程
- 评估跟踪 -记录测试、测验、家庭作业和练习结果
- 掌握水平 -根据问题级数据自动计算主题掌握程度
- 学习差距分析 -用严重性评级确定低于阈值的主题
- 重点建议 -基于趋势的优先研究建议
- 类分析 -全班成绩分布和主题表现
- 问题级遥测 -跟踪每个问题的正确性、时间、难度和布鲁姆水平
快速开始
安装
git clone https://github.com/woodstocksoftware/student-progress-tracker.git
cd student-progress-tracker
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt配置Claude桌面版
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"student-progress": {
"command": "/absolute/path/to/student-progress-tracker/venv/bin/python",
"args": ["/absolute/path/to/student-progress-tracker/run_server.py"]
}
}
}重新启动克劳德桌面。工具将自动显示。
配置Claude代码
添加到您的项目 .mcp.json 或全局设置:
{
"mcpServers": {
"student-progress": {
"command": "/absolute/path/to/student-progress-tracker/venv/bin/python",
"args": ["/absolute/path/to/student-progress-tracker/run_server.py"]
}
}
}试试看
You: Create a student named Alice in 9th grade
You: Create a course called Algebra I in Mathematics
You: Enroll Alice in Algebra I
You: Create a topic "Linear Equations" in the Algebra course
You: Record Alice's quiz: 85 out of 100
You: What are Alice's learning gaps?
You: What should Alice focus on next?工具参考
学生管理
create_student
创建新的学生记录。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 学生全名 |
email | string | 否 | 电子邮件地址 |
grade_level | string | 否 | 例如,“9年级”、“大学新生” |
Create a student named Alice Johnson, email alice@school.edu, in 9th gradelist_students
列出所有学生,可选择按课程筛选。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
course_id | string | 否 | 按课程注册筛选 |
get_student_profile
包含课程、统计数据和最近评估的综合简介。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
课程管理
create_course
创建新课程。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 例如,“代数I”、“生物学101” |
subject | string | 是 | 例如,“数学”、“科学” |
grade_level | string | 否 | 目标年级 |
question_bank_id | string | 否 | 题库MCP链接 |
list_courses
列出所有已注册学生人数的课程。
enroll_student
让学生报名参加课程。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
course_id | string | 是 | 课程ID |
create_topic
在课程中添加一个主题以进行掌握跟踪。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
course_id | string | 是 | 课程ID |
name | string | 是 | 例如,“线性方程组” |
weight | float | 否 | 重要性权重(默认值1.0) |
list_topics
列出课程中的所有主题。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
course_id | string | 是 | 课程ID |
评估和结果
create_assessment
创建测试、测验、家庭作业或练习评估。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
course_id | string | 是 | 课程ID |
name | string | 是 | 例如,“第3章测验” |
assessment_type | string | 是 | test, quiz, homework,或 practice |
total_points | float | 是 | 可能的总点数 |
total_questions | int | 是 | 问题数量 |
time_limit_minutes | int | 否 | 时间限制(分钟) |
record_assessment_result
用可选问题级别数据记录学生的评估结果。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
assessment_id | string | 是 | 评估ID |
points_earned | float | 是 | 获得的积分 |
points_possible | float | 是 | 可能的总点数 |
time_spent_minutes | int | 否 | 花费的时间(分钟) |
question_results | 列表 | 否 | 每个问题的数据(见下文) |
中的每个项目 question_results:
{
"question_id": "q1",
"topic_id": "topic-abc123",
"is_correct": true,
"time_spent_seconds": 45,
"difficulty": 0.5,
"bloom_level": "application"
}分析和建议
get_topic_mastery
使用趋势指标按主题查看掌握程度。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
course_id | string | 否 | 按课程筛选 |
get_learning_gaps
确定低于掌握阈值的主题。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
threshold | float | 否 | 精通阈值%(默认值70) |
get_student_history
问题级别性能历史。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
topic_id | string | 否 | 按主题筛选 |
limit | int | 否 | 最大记录数(默认值20) |
get_class_analytics
全班表现概述,包括成绩分布和主题分析。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
course_id | string | 是 | 课程ID |
recommend_focus_areas
按趋势和掌握程度优先的个性化研究建议。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
student_id | string | 是 | 学生ID |
数据模型
Students ──── Enrollments ──── Courses ──── Topics
│ │ │
│ │ │
└──── Assessment Results ──── Assessments │
│ │
│ │
Question History ──── Topic Mastery ─┘表格
| 表 | 目的 |
|---|---|
students | 学生记录(id、姓名、电子邮件、年级) |
courses | 带有主题和可选题库链接的课程 |
enrollments | 学生课程与地位的关系 |
topics | 课程中具有权重的分层主题 |
assessments | 测试、小测验、家庭作业、练习 |
assessment_topics | 评估涵盖哪些主题 |
assessment_results | 使用JSON问题级别数据的学生成绩 |
topic_mastery | 缓存掌握水平(0-1)、趋势、问题统计 |
question_history | 每个问题的正确性、时间、难度、布鲁姆水平 |
精通度计算
精通程度计算如下 questions_correct / questions_attempted 每个主题。通过将最近的准确性与总体掌握程度进行比较来检测趋势:
- 改进 -最近的准确率>掌握率+10%
- 稳定 -掌握10%以内
- 下降 -最近的准确率\<掌握-10%
使用示例
随着时间的推移追踪学生的数学掌握情况
1. Create a student and course
2. Add topics: Linear Equations, Quadratic Equations, Polynomials
3. Record quiz results with question_results linking to topics
4. View mastery: "Show me Alice's topic mastery for Algebra I"
5. Check gaps: "What are Alice's learning gaps?"
6. Get recommendations: "What should Alice focus on next?"监控一个类
1. Create a course with multiple enrolled students
2. Record assessment results for each student
3. View analytics: "Show class analytics for Algebra I"
4. See grade distribution and struggling topic areas建筑
Claude (Desktop/Code)
│
│ MCP Protocol (stdio)
│
▼
┌─────────────────────────────┐
│ server.py (FastMCP) │
│ 15 tools with @mcp.tool() │
│ Markdown response format │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ database.py (SQLite) │
│ 10 tables, auto-init │
│ Foreign keys + indexes │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ data/student_progress.db │
│ Local file (gitignored) │
└─────────────────────────────┘关键设计决策:
- FastMCP 用于使用自动生成的JSON模式进行工具注册的装饰器
- stdio传输 与克劳德沟通
- SQLite 用于零配置本地持久性
- Markdown响应 带有表情符号指示器,可在聊天中提高可读性
- UUID前缀ID (
stu-,course-,topic-,assess-,result-)为清楚起见 - JSON问题_结果 用于灵活存储每个问题的数据
与题库MCP集成
设计用于作曲 题库MCP:
Question Bank MCP Student Progress Tracker
┌───────────────────┐ ┌───────────────────────┐
│ Questions │ │ Students │
│ Topics │◄────────►│ Enrollments │
│ Difficulty levels │ │ Assessment Results │
│ Bloom's taxonomy │ │ Topic Mastery │
└───────────────────┘ └───────────────────────┘通过链接 question_bank_id 在创建课程时。
测试
source venv/bin/activate
pip install pytest
pytest tests/ -v贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/your-feature) - 使用类型提示和文档字符串进行更改
- 运行linting:
ruff check src/ - 运行测试:
pytest tests/ -v - 提交并打开拉取请求
许可证
麻省理工学院
______________________________________________________________________
部分 Ed Tech MCP套件 通过 吉姆威廉斯 |
| MCP服务器 | 用途 |
|---|---|
| 题库 | 创建和管理问题 |
| 学生进步 | 跟踪性能和掌握情况 |
