mcpField
K
knowledge-graph-mcp

knowledge-graph-mcp

本地服务
github.com/zcsabbagh科研与教育143 周前更新

关于 knowledge-graph-mcp

Knowledge Graph MCP 是面向教师和学生的学习跟踪服务,让大模型维护个性化概念图谱与学习进度。它结合多维掌握度跟踪、SM-2 复习排程,以及查找知识缺口和后续学习内容的查询。

主要功能

  1. 01基于 SQLite 的概念与关系图
  2. 02分别跟踪回忆、应用和解释能力
  3. 03SM-2 间隔复习排程
  4. 04记录并查询常见误解
  5. 05查询知识缺口、待复习项与后续概念
  6. 06Mermaid 图谱可视化

适用场景

  1. 01跟踪学生对相关概念的掌握情况
  2. 02根据学习表现安排复习
  3. 03在授课前识别先修概念与知识缺口

MCP 相关

FastMCP 服务提供创建概念节点及其关系、更新掌握度与复习记录、查询学习情况、读取子图、获取学习路径和查看统计数据的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"zcsabbagh-knowledge-graph": {
"command": "uvx",
"args": [
"knowledge-graph-mcp"
],
"env": {
"KNOWLEDGE_GRAPH_DB_PATH": "<KNOWLEDGE_GRAPH_DB_PATH>"
}
}
}
}
启动命令uvx knowledge-graph-mcp
需要配置的环境变量
KNOWLEDGE_GRAPH_DB_PATHCustom path for SQLite database file (optional, defaults to ~/.knowledge_graph/knowledge.db)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiknowledge-graph-mcp0.1.0

工具

7

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagsany否分类标签列表(例如,["algebra", "equations"])
domainany否类别/领域(例如,"mathematics"、"physics"、"programming")
conceptstring是概念的易读名称(例如,"Quadratic Formula")
node_idany否节点的自定义 ID。如果未提供,则根据 concept 自动生成。
difficultynumber否估算的认知负荷,范围为 0.0(容易)到 1.0(困难)。默认值为 0.5。
descriptionany否对该概念所代表内容的详细描述

详细介绍

知识图谱 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。