关于 knowledge-graph-mcp
Knowledge Graph MCP 是面向教师和学生的学习跟踪服务,让大模型维护个性化概念图谱与学习进度。它结合多维掌握度跟踪、SM-2 复习排程,以及查找知识缺口和后续学习内容的查询。
主要功能
- 01基于 SQLite 的概念与关系图
- 02分别跟踪回忆、应用和解释能力
- 03SM-2 间隔复习排程
- 04记录并查询常见误解
- 05查询知识缺口、待复习项与后续概念
- 06Mermaid 图谱可视化
适用场景
- 01跟踪学生对相关概念的掌握情况
- 02根据学习表现安排复习
- 03在授课前识别先修概念与知识缺口
MCP 相关
FastMCP 服务提供创建概念节点及其关系、更新掌握度与复习记录、查询学习情况、读取子图、获取学习路径和查看统计数据的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
7收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tags | any | 否 | 分类标签列表(例如,["algebra", "equations"]) |
| domain | any | 否 | 类别/领域(例如,"mathematics"、"physics"、"programming") |
| concept | string | 是 | 概念的易读名称(例如,"Quadratic Formula") |
| node_id | any | 否 | 节点的自定义 ID。如果未提供,则根据 concept 自动生成。 |
| difficulty | number | 否 | 估算的认知负荷,范围为 0.0(容易)到 1.0(困难)。默认值为 0.5。 |
| description | any | 否 | 对该概念所代表内容的详细描述 |
详细介绍
知识图谱 MCP 服务
用于通过知识图谱跟踪学生学习情况的 MCP(Model Context Protocol)服务。该服务基于 FastMCP 构建,可帮助大模型构建、查询和更新个性化知识图谱,并安排间隔重复学习。
功能
- 知识图谱存储:基于 SQLite 的图谱,以概念为节点、以关系为边
- 多维度掌握情况跟踪:分别跟踪回忆、应用和解释能力
- 间隔重复(SM-2):根据学习表现自动安排复习
- 错误认知跟踪:记录并查询常见错误认知,以便进行针对性纠正
- 智能查询:查找知识盲点、可学习概念和薄弱领域
- Mermaid 可视化:生成知识图谱的可视化图表
安装
选项 1:从 Smithery 安装(推荐)
通过 Smithery 直接安装:
npx @smithery/cli install @zcsabbagh/knowledge-graph-mcp --client claude
也可以使用托管版本:https://smithery.ai/server/@zcsabbagh/knowledge-graph-mcp
选项 2:从源代码安装
前置条件:Python 3.10+
git clone https://github.com/zcsabbagh/knowledge-graph-mcp.git
cd knowledge-graph-mcp
pip install -e .
使用方法
运行服务
# From the project root
python -m knowledge_graph_mcp.server
配置 Claude Code
添加到 Claude Code MCP 设置(~/.claude/settings.json):
{
"mcpServers": {
"knowledge-graph": {
"command": "python",
"args": ["-m", "knowledge_graph_mcp.server"],
"cwd": "/path/to/knowledge-graph-mcp"
}
}
}
配置 Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"knowledge-graph": {
"command": "python",
"args": ["-m", "knowledge_graph_mcp.server"],
"cwd": "/path/to/knowledge-graph-mcp"
}
}
}
MCP 工具
1. add_node
创建新的概念节点。
add_node(
concept="Quadratic Formula",
description="Formula for solving ax² + bx + c = 0",
domain="mathematics",
difficulty=0.7,
tags=["algebra", "formulas"]
)
2. add_edge
在概念之间创建关系。
关系类型:
prerequisite- 必须先学习源概念,再学习目标概念builds_on- 目标概念扩展源概念related_to- 概念之间存在关联contradicts- 常见错误认知applies_to- 应用领域parent_of- 类别层级关系
add_edge(
source_concept="Algebra",
target_concept="Quadratic Formula",
relation_type="prerequisite"
)
3. update_node
更新掌握情况并记录复习。提供 quality 评分(0-5)会触发间隔重复安排。
update_node(
node_id="quadratic_formula",
quality=4, # SM-2 rating: 0=blackout, 5=perfect
mastery_application=0.6,
misconception_detected="forgets ± sign"
)
4. query_graph
通过智能查询获取学习洞察。
查询类型:
prerequisites- 某个概念的所有前置条件ready_to_learn- 前置条件已掌握的概念due_for_review- 根据计划需要复习的概念struggling- 难度较高且掌握程度较低的概念stalled- 已复习多次但没有进步的概念misconceptions- 检测到存在错误认知的概念knowledge_gaps- 掌握程度较低且阻碍进度的概念next_recommended- 下一步最适合学习的概念
query_graph(query_type="next_recommended", domain="mathematics")
5. read_subgraph
获取某个概念周围的邻域,并生成 Mermaid 可视化图表。
read_subgraph(
center_node="calculus",
depth=2,
direction="upstream", # or "downstream", "both"
output_format="both" # "json", "mermaid", or "both"
)
6. get_learning_path
获取目标概念的有序前置条件。
get_learning_path(target_concept="calculus")
7. get_statistics
获取学习进度指标。
get_statistics(domain="mathematics")
工作原理
数据模型
节点表示概念,包含:
- 掌握程度(总体、回忆、应用、解释)
- 间隔重复数据(难度因子、间隔、下次复习日期)
- 难度评分和复习历史
- 标签和检测到的错误认知
边表示关系,包含:
- 关系类型(prerequisite、builds_on 等)
- 强度/置信度评分
- 可选的推理说明
间隔重复(SM-2)
使用 quality 评分调用 update_node 时:
- 5:完美作答 → 延长间隔
- 4:回答正确,但有所犹豫
- 3:回答正确,但有一定难度
- 2-0:回答错误 → 重置间隔
该算法会根据学习表现历史计算下次最合适的复习日期。
掌握程度计算
总体掌握程度综合各维度的分数:
mastery_level = 0.3 × recall + 0.4 × application + 0.3 × explanation
存储
默认情况下,数据存储在 SQLite 数据库 ~/.knowledge_graph/knowledge.db 中。
示例工作流
1. LLM discovers student doesn't know "quadratic formula"
→ add_node(concept="Quadratic Formula", difficulty=0.7)
2. LLM identifies prerequisites
→ add_edge("Algebra", "Quadratic Formula", "prerequisite")
3. Student attempts problem, struggles
→ update_node("quadratic_formula", quality=2,
misconception_detected="confuses ± with +")
4. LLM decides what to teach next
→ query_graph("next_recommended")
5. Visualize the learning path
→ get_learning_path("quadratic_formula")
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。