mcpField
K
knowledge-graph-mcp

knowledge-graph-mcp

Local
github.com/zcsabbaghScience & Education1Updated 43w ago

About knowledge-graph-mcp

Knowledge Graph MCP is a learning-tracking server for educators and students, letting LLMs maintain a personalized map of concepts and progress. It combines multidimensional mastery tracking, SM-2 review scheduling, and queries for learning gaps and next steps.

Key features

  1. 01SQLite-backed concept and relationship graph
  2. 02Separate recall, application, and explanation mastery
  3. 03SM-2 spaced review scheduling
  4. 04Misconception recording and lookup
  5. 05Queries for gaps, review, and next concepts
  6. 06Mermaid graph visualization

Use cases

  1. 01Track a student's mastery across related concepts
  2. 02Schedule reviews based on learner performance
  3. 03Identify prerequisites and knowledge gaps before a lesson

MCP support

The FastMCP server exposes tools to create and relate concept nodes, update mastery and reviews, query learning insights, read graph subgraphs, get learning paths, and retrieve statistics.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"zcsabbagh-knowledge-graph": {
"command": "uvx",
"args": [
"knowledge-graph-mcp"
],
"env": {
"KNOWLEDGE_GRAPH_DB_PATH": "<KNOWLEDGE_GRAPH_DB_PATH>"
}
}
}
}
Run commanduvx knowledge-graph-mcp
Environment variables to set
KNOWLEDGE_GRAPH_DB_PATHCustom path for SQLite database file (optional, defaults to ~/.knowledge_graph/knowledge.db)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypiknowledge-graph-mcp0.1.0

Tools

7

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
tagsanyNoList of categorization tags (e.g., ["algebra", "equations"])
domainanyNoCategory/domain (e.g., "mathematics", "physics", "programming")
conceptstringYesHuman-readable name for the concept (e.g., "Quadratic Formula")
node_idanyNoCustom ID for the node. Auto-generated from concept if not provided.
difficultynumberNoEstimated cognitive load from 0.0 (easy) to 1.0 (hard). Default 0.5.
descriptionanyNoDetailed description of what this concept represents

Details

From the project README

Knowledge Graph MCP Server

An MCP (Model Context Protocol) server for tracking student learning via a knowledge graph. Built with FastMCP, it enables LLMs to build, query, and update a personalized knowledge map with spaced repetition scheduling.

Features

  • Knowledge Graph Storage: SQLite-backed graph with concepts as nodes and relationships as edges
  • Multi-dimensional Mastery Tracking: Track recall, application, and explanation abilities separately
  • Spaced Repetition (SM-2): Automatic scheduling of review sessions based on performance
  • Misconception Tracking: Record and query common misconceptions for targeted remediation
  • Intelligent Queries: Find knowledge gaps, ready-to-learn concepts, struggling areas
  • Mermaid Visualization: Generate visual diagrams of the knowledge graph

Installation

Option 1: Install from Smithery (Recommended)

Install directly via Smithery:

npx @smithery/cli install @zcsabbagh/knowledge-graph-mcp --client claude

Or use the hosted version at: https://smithery.ai/server/@zcsabbagh/knowledge-graph-mcp

Option 2: Install from source

Prerequisites: Python 3.10+

git clone https://github.com/zcsabbagh/knowledge-graph-mcp.git
cd knowledge-graph-mcp
pip install -e .

Usage

Running the Server
# From the project root
python -m knowledge_graph_mcp.server
Configure with Claude Code

Add to your Claude Code MCP settings (~/.claude/settings.json):

{
  "mcpServers": {
    "knowledge-graph": {
      "command": "python",
      "args": ["-m", "knowledge_graph_mcp.server"],
      "cwd": "/path/to/knowledge-graph-mcp"
    }
  }
}
Configure with Claude Desktop

Add to ~/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 Tools

1. add_node

Create a new concept 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

Create relationships between concepts.

Relation types:

  • prerequisite - Must learn source before target
  • builds_on - Target extends source concept
  • related_to - Concepts are connected
  • contradicts - Common misconception
  • applies_to - Application domain
  • parent_of - Category hierarchy
add_edge(
  source_concept="Algebra",
  target_concept="Quadratic Formula",
  relation_type="prerequisite"
)
3. update_node

Update mastery and record reviews. Providing a quality rating (0-5) triggers spaced repetition scheduling.

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

Intelligent queries for learning insights.

Query types:

  • prerequisites - All prerequisites for a concept
  • ready_to_learn - Concepts where prereqs are mastered
  • due_for_review - Needs review based on schedule
  • struggling - High difficulty + low mastery
  • stalled - Multiple reviews, no improvement
  • misconceptions - Concepts with detected misconceptions
  • knowledge_gaps - Low mastery blocking progress
  • next_recommended - Best concept to study next
query_graph(query_type="next_recommended", domain="mathematics")
5. read_subgraph

Get the neighborhood around a concept with Mermaid visualization.

read_subgraph(
  center_node="calculus",
  depth=2,
  direction="upstream",  # or "downstream", "both"
  output_format="both"   # "json", "mermaid", or "both"
)
6. get_learning_path

Get ordered prerequisites for a target concept.

get_learning_path(target_concept="calculus")
7. get_statistics

Get learning progress metrics.

get_statistics(domain="mathematics")

How It Works

Data Model

Nodes represent concepts with:

  • Mastery levels (overall, recall, application, explanation)
  • Spaced repetition data (ease factor, interval, next review date)
  • Difficulty rating and review history
  • Tags and detected misconceptions

Edges represent relationships with:

  • Relation type (prerequisite, builds_on, etc.)
  • Strength/confidence rating
  • Optional reasoning
Spaced Repetition (SM-2)

When you call update_node with a quality rating:

  • 5: Perfect response → longer interval
  • 4: Correct with hesitation
  • 3: Correct with difficulty
  • 2-0: Incorrect → reset interval

The algorithm calculates the next optimal review date based on performance history.

Mastery Calculation

Overall mastery combines dimensional scores:

mastery_level = 0.3 × recall + 0.4 × application + 0.3 × explanation
Storage

Data is stored in SQLite at ~/.knowledge_graph/knowledge.db by default.

Example Workflow

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")

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.