mcpField
K
knowledge-graph-mcp

knowledge-graph-mcp

ローカル
github.com/zcsabbagh科学・教育143 週間前に更新

knowledge-graph-mcp について

Knowledge Graph MCPは、教師や学生向けの学習記録サーバーで、LLMが個人別の概念マップと進捗を管理できます。多面的な習熟度の追跡、SM-2による復習予定、学習の抜けや次の学習項目を探すクエリを備えています。

主な機能

  1. 01SQLiteによる概念と関係のグラフ
  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 で構築されており、LLM が間隔反復スケジューリングを活用しながら、個人に合わせたナレッジマップを作成、照会、更新できます。

機能

  • ナレッジグラフの保存:概念をノード、関係をエッジとして扱う、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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。