tejpalvirk
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"student": {
"args": [
"run",
"--rm",
"-i",
"mcp/student"
],
"command": "docker"
}
}
}
服务介绍
学生MCP服务器
一个MCP服务器实现,提供管理学生知识图谱的工具,能够以结构化的方式表示课程、作业、考试、概念和学习资源。该服务器帮助学生跟踪他们的学术进度、管理截止日期并优化他们的学习过程。
功能
- 持久化的教育上下文:在多个会话中维护教育实体及其关系的结构化知识图谱
- 学习会话管理:通过唯一ID跟踪学习会话,并记录随时间的变化
- 课程管理:以结构化格式组织课程、讲座、作业和考试
- 概念映射:连接学习概念以展示关系和先修要求
- 作业跟踪:监控作业状态、截止日期和相关资源
- 考试准备:跟踪考试日期并组织学习材料
- 截止日期管理:跟踪即将到来的作业和考试截止日期
- 资源组织:将学习资源与特定课程和概念关联起来
- 进度监控:跟踪课程、作业和考试的完成状态
- 知识连接:可视化不同教育概念之间的关系
实体
学生MCP服务器识别以下实体类型:
- course:正在修读的学术课程
- assignment:家庭作业、项目和其他提交的工作
- exam:测试、小测验和其他评估
- concept:知识主题和学习目标
- resource:教科书、文章、视频和其他学习材料
- note:个人学习笔记和观察
- lecture:单独的课堂会议
- project:较大的教育项目或任务
- question:用于学习或复习的具体问题
- term:学术学期
- goal:学习目标
- professor:课程讲师和教师
- status:实体状态值(活跃、完成、待处理、放弃)
- priority:优先级水平值(高、低)
关系
实体可以通过以下关系类型进行连接:
- enrolled_in:学生正在修读一门课程
- assigned_in:作业是某门课程的一部分
- due_on:作业/考试有具体的截止日期
- covers:讲座/资源涵盖某个概念
- references:笔记引用了某个概念
- prerequisite_for:概念是另一个概念的基础
- taught_by:课程由教授讲授
- scheduled_for:讲座/考试安排在特定时间
- contains:课程包含讲座/作业
- requires:作业需要特定的概念
- related_to:概念与其他概念相关
- created_for:笔记为特定讲座创建
- studies:学习会话专注于某个概念/考试
- helps_with:资源有助于作业/概念
- submitted:作业在某日提交
- part_of:实体是另一个实体的一部分
- included_in:包含在一个更大的组件中
- follows:实体按顺序跟随另一个实体
- attends:学生参加讲座
- graded_with:作业/考试按照特定标准评分
- has_status:将实体与其当前状态链接(活跃、完成、待处理、放弃)
- has_priority:将实体与其优先级水平链接(高、低)
- precedes:表明一个任务或作业在序列中位于另一个之前
状态和优先级管理
学生MCP服务器提供了全面的状态和优先级跟踪功能:
-
状态值:
- active:当前正在工作或学习
- completed:已完成或成功提交
- pending:尚未开始但已计划
- abandoned:不再追求
-
优先级值:
- high:需要立即关注或对成绩有重大影响
- low:可以在完成更高优先级事项后再处理- 顺序学习管理:
- 定义哪些作业或概念必须在其他之前完成
- 按逻辑顺序组织学习活动
- 在相关学习任务之间创建依赖关系
- 通过课程材料构建结构化的学习路径
可用工具
学生MCP服务器提供了以下工具,用于与教育知识进行交互:
startsession
启动一个新的学习会话,生成唯一的会话ID,并显示当前课程、即将到来的截止日期、最近学习的概念和过去的学习会话。通过has_status关系显示状态信息,通过has_priority关系显示优先级水平,并基于顺序依赖关系识别接下来可以工作的作业。
loadcontext
为特定实体(如课程、作业等)加载详细上下文,根据实体类型显示相关信息。包括状态信息、优先级水平以及相关实体之间的顺序关系。
endsession
通过一个结构化的多阶段过程记录学习会话的结果:
- summary: 记录会话摘要、持续时间和课程重点
- conceptsLearned: 记录会话期间学习的概念
- assignmentUpdates: 跟踪作业更新
- statusUpdates: 记录实体状态值的变化
- courseStatus: 更新整体课程状态、优先级作业和顺序关系
- newConcepts: 记录会话期间学到的新概念
- assembly: 所有会话数据的最终组装
buildcontext
在知识图谱中创建新的实体、关系或观察结果:
- entities: 添加新的教育实体(如课程、作业、概念、状态、优先级等)
- relations: 创建实体之间的关系(包括
has_status、has_priority、precedes) - observations: 向现有实体添加观察结果
deletecontext
从知识图谱中移除实体、关系或观察结果:
- entities: 移除教育实体
- relations: 移除实体之间的关系(包括状态、优先级和顺序关系)
- observations: 从实体中移除特定的观察结果
advancedcontext
从知识图谱中检索信息:
- graph: 获取整个知识图谱
- search: 根据查询条件搜索节点
- nodes: 按名称获取特定节点
- course: 获取特定课程的详细信息
- deadlines: 获取即将到来的截止日期
- assignment: 获取特定作业的详细信息
- exam: 获取特定考试的详细信息
- concepts: 获取关于概念的信息
- lecture: 获取关于讲座的信息
- term: 获取关于学术学期的详细信息
- status: 查找具有特定状态值的实体
- priority: 查找具有特定优先级值的实体
- sequence: 识别学习活动的顺序关系
领域特定功能
学生MCP服务器包括专门针对教育领域的功能:
- getCourseOverview: 包括讲座、作业、考试和资源在内的课程全面视图
- getUpcomingDeadlines: 查找即将到期的作业和考试
- getAssignmentStatus: 获取作业的详细状态,包括进度和相关概念
- getExamPrep: 获取考试准备材料及相关概念
- findRelatedConcepts: 发现不同教育概念之间的联系
- getStudyProgress: 跨课程跟踪学习进度
- getTermOverview: 获取学术学期的课程和工作概览
- getConceptMastery: 评估对特定概念的理解程度
- getStatusOverview: 查看具有特定状态的所有实体(如活跃、已完成、待处理、放弃)
- getPriorityItems: 识别高优先级的作业和学习任务- getLearningSequence: 基于前置关系可视化学习活动的顺序
示例提示
开始会话
让我们开始我的计算机科学课程的新学习会话。
加载课程上下文
加载我的微积分101课程的上下文,以便我可以查看即将到来的作业和考试。
记录学习进度
我刚刚完成了2小时的微积分101学习。我专注于极限和导数,完成了关于基本微分的家庭作业,并记下了链式法则的笔记。我已经将极限内容标记为已完成,并将导数练习设为高优先级。我对下周即将到来的考试感到更有信心了。
管理学习材料
为我的数据结构课程创建一个名为“二叉树”的新概念,描述为“二叉树是一种每个节点最多有两个子节点的树形数据结构。”将其状态设置为激活,并使其先于“图算法”概念。
将我的“数据库作业”状态更新为“已完成”,并添加我已成功实现所有必需查询的信息。将“高级SQL”概念标记为下次学习会话的高优先级。
使用方法
此MCP服务器使学生能够:
- 保持学习连续性:跨多个学习会话跟踪你所学的内容
- 优化学习时间:专注于高优先级的作业和概念
- 跟踪学术进度:监控课程、作业的完成情况以及概念掌握程度
- 准备考试:组织学习材料并跟踪备考进度
- 管理截止日期:关注即将到期的作业和考试
- 连接知识:查看不同课程中概念之间的关系
- 优先处理工作:专注于高优先级的作业和学习任务
- 构建学习结构:为相关概念的学习创建逻辑序列
- 跟踪状态:监控作业、项目和学习活动的状态
配置
与Claude Desktop一起使用
将以下内容添加到你的claude_desktop_config.json文件中:
从GitHub安装并通过npx运行
json
{
"mcpServers": {
"student": {
"command": "npx",
"args": [
"-y",
"github:tejpalvirk/student"
]
}
}
}
全局安装并直接运行
首先,全局安装该软件包:
bash
npm install -g github:tejpalvirk/student
然后配置Claude Desktop:
json
{
"mcpServers": {
"student": {
"command": "contextmanager-student"
}
}
}
Docker
json
{
"mcpServers": {
"student": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"mcp/student"
]
}
}
}
构建
从源代码构建
bash
克隆仓库
git clone https://github.com/tejpalvirk/contextmanager.git
cd contextmanager
安装依赖
npm install
构建服务器
npm run build
运行服务器
cd student
node student_index.js
Docker:
bash
docker build -t mcp/student -f student/Dockerfile .
许可证
此MCP服务器根据MIT许可证许可。这意味着你可以自由地使用、修改和分发该软件,但需遵守MIT许可证的条款和条件。更多详情,请参阅项目仓库中的LICENSE文件。
环境变量
Student MCP Server支持以下环境变量来自定义数据存储位置:
-
MEMORY_FILE_PATH: 存储知识图谱数据的路径
- 可以是绝对路径或相对路径(相对路径使用当前工作目录)
- 默认值:
./student/memory.json
-
SESSIONS_FILE_PATH: 存储会话数据的路径
- 可以是绝对路径或相对路径(相对路径使用当前工作目录)
- 默认值:
./student/sessions.json
示例用法:
bash
在当前目录中存储数据
MEMORY_FILE_PATH="./student-memory.json" SESSIONS_FILE_PATH="./student-sessions.json" npx github:tejpalvirk/contextmanager-student
在特定位置存储数据(绝对路径)
MEMORY_FILE_PATH="/path/to/data/student-memory.json" npx github:tejpalvirk/contextmanager-student
在用户主目录中存储数据
MEMORY_FILE_PATH="$HOME/contextmanager/student-memory.json" npx github:tejpalvirk/contextmanager-student请提供需要翻译的英文技术文档内容。您目前只提供了翻译要求,但没有给出具体的文档文本。请将文档文本一并提供,以便我能够准确地进行翻译。