knowledge-graph-mcp について
Knowledge Graph MCPは、教師や学生向けの学習記録サーバーで、LLMが個人別の概念マップと進捗を管理できます。多面的な習熟度の追跡、SM-2による復習予定、学習の抜けや次の学習項目を探すクエリを備えています。
主な機能
- 01SQLiteによる概念と関係のグラフ
- 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 で構築されており、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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。