mcpField
M
mnemograph

mnemograph

ローカル
github.com/tm42メモリ・ナレッジ237 週間前に更新

mnemograph について

mnemographは、コーディングエージェント向けの永続的なイベントソーシング型ナレッジグラフ記憶ツールです。セマンティック検索、段階的なコンテキスト取得、Gitベースの履歴管理で、開発上の決定や学びをセッション間で保持します。

主な機能

  1. 01エンティティ・関係・観察記録の保存
  2. 02意味検索と深さ別のコンテキスト取得
  3. 03記憶のブランチ分離とマージ
  4. 04Gitによるバージョン管理と巻き戻し
  5. 05MCPツールとコマンドラインでの管理

活用シーン

  1. 01コーディングセッション間でプロジェクトの決定を保持
  2. 02並行する機能開発向けに記憶ブランチを作成
  3. 03記録済みの設計・パターン・学びを検索

MCP 対応

MCPサーバーとして、互換エージェントに記憶の保存・検索、グラフ管理、セッション管理、ブランチ操作のツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"tm42-mnemograph": {
"command": "uvx",
"args": [
"mnemograph"
],
"env": {
"MEMORY_PATH": "<MEMORY_PATH>"
}
}
}
}
起動コマンドuvx mnemograph
設定が必要な環境変数
MEMORY_PATHPath to memory storage directory

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimnemograph0.5.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Mnemograph

AI コーディングエージェント向けの、永続的なイベントソーシング型ナレッジグラフです。単純なキーと値のメモリとは異なり、Mnemograph はエンティティ、関係、観察事項を記録し、セマンティック検索、階層型のコンテキスト取得、Git ベースの AI メモリのバージョン管理を可能にします。

対応対象:Claude Code、opencode、codex CLI、Zed、Continue.dev、および MCP 対応のあらゆるエージェント。

Mnemograph を選ぶ理由

AI コーディングセッションは一時的なものです。Mnemograph は AI パートナーに永続的なメモリを提供します。

  • セッションをまたいで保持 — 決定事項、パターン、学びが持続します
  • セマンティック検索に対応 — キーワードだけでなく、意味に基づいて関連するコンテキストを見つけられます
  • 階層型の取得を提供 — 必要に応じて、概要から詳細なサブグラフまで取得できます
  • コードのようにバージョン管理 — ナレッジグラフのブランチ作成、コミット、差分確認、取り消しができます
  • 共同作業を可能に — ユーザー間やプロジェクト間でメモリリポジトリを共有できます

メモリのスコープ:ローカルとグローバル

mnemograph を使う前に、メモリの保存先を決めてください。

スコープパス用途
プロジェクトローカル./.claude/memoryこのリポジトリに固有の知識(アーキテクチャ、決定事項、パターン)
グローバル~/.claude/memoryプロジェクト横断で使う知識(個人的な学び、普遍的なパターン、好み)
カスタムMEMORY_PATH で指定する任意のパスチームで共有するメモリ、組織全体のナレッジベース

重要: プロジェクトで mnemograph を初めて設定するとき、エージェントはユーザーにどのスコープを使うか尋ねてください。これは、知識の保存先と、プロジェクト間で共有するかどうかに影響します。

# Project-local (default)
MEMORY_PATH=".claude/memory"

# Global (cross-project)
MEMORY_PATH="$HOME/.claude/memory"

# CLI: use --global flag
mnemograph --global status
mnemograph --global graph

クイックスタート

オプション 1:Claude Code にインストールさせる

このリポジトリの URL を Claude Code に渡し、mnemograph をセットアップするよう依頼してください。

https://github.com/tm42/mnemograph

または、セットアップ手順を Claude に直接伝えてください。

Read https://raw.githubusercontent.com/tm42/mnemograph/main/SETUP_CLAUDE_CODE.md and follow them
オプション 2:手動でインストールする
# Install from PyPI
pip install mnemograph

# Add to Claude Code (global, available in all projects)
claude mcp add --scope user mnemograph \
  -e MEMORY_PATH="$HOME/.claude/memory" \
  -- uvx mnemograph

# Initialize memory directory
mkdir -p ~/.claude/memory
オプション 3:その他の MCP クライアント

MCP クライアントごとに設定形式が異なります。各クライアント用のコピー&ペースト可能な設定については、UNIVERSAL_MCP_COMPATIBILITY.md を参照してください。

  • opencode — ~/.config/opencode/opencode.json
  • Codex CLI — ~/.codex/config.yaml
  • Zed — ~/.config/zed/settings.json
  • Continue.dev — ~/.continue/config.json

主要な環境変数は MEMORY_PATH です。ナレッジグラフの保存先に設定してください。

オプション 4:ソースからインストールする
git clone https://github.com/tm42/mnemograph.git
cd mnemograph
uv sync

# Add to Claude Code (or adapt for your MCP client)
claude mcp add --scope user mnemograph \
  -e MEMORY_PATH="$HOME/.claude/memory" \
  -- uv run --directory /path/to/mnemograph mnemograph

使い方

MCP ツール(あらゆるエージェントで使用)

Mnemograph は、以下のツールを MCP 経由で公開します。

コア操作:

ツール説明
remember主要な保存機能:知識をアトミックに保存します(1 回の呼び出しでエンティティ+観察事項+関係を保存)
recall主要な取得機能:トークンを自動管理しながら、関連するコンテキストを取得します。詳細をすべて表示するには focus=['Entity'] を使用します。デフォルトの出力は人間が読みやすい文章です。
create_entitiesエンティティを作成します(一致率が 80% を超える重複は自動的にブロックされます)
create_relations型付きエッジ(implements、uses、decided_for など)でエンティティをリンクします
add_observations既存のエンティティに事実やメモを追加します
read_graphナレッジグラフ全体を取得します(大きくなる場合があるため注意してください)
delete_entitiesエンティティを削除します(関連するリレーションも連鎖的に削除されます)
delete_relations特定のリレーションを削除します
delete_observations特定の観察事項を削除します

セッションのライフサイクル:

ツール説明
session_startセッションの開始を通知し、初期コンテキストを取得します。quick_start ガイドを返します。
session_endセッションの終了を通知し、必要に応じて要約を保存します
get_primerナレッジグラフの概要を把握します(セッション開始時に呼び出します)

ブランチ(並行作業ストリーム):

ツール説明
create_branch分離された作業用の名前付きブランチを作成します(例:「feature/auth-refactor」)
switch_branch別のブランチに切り替えます
list_branchesすべてのブランチを一覧表示します
merge_branchブランチを main にマージします
delete_branchブランチを削除します
get_current_branch現在のブランチ名を取得します

グラフのメンテナンス:

ツール説明
find_similar名前が類似しているエンティティを検索します(重複検出)
find_orphansリレーションのないエンティティを検索します
merge_entities重複するエンティティをマージします(観察事項を統合し、リレーションの参照先を変更します)
get_graph_healthグラフの品質を評価します:孤立したエンティティ、重複、過剰な情報を持つエンティティ
suggest_relations意味的類似性に基づいて、関連する可能性のあるリレーションを提案します
create_entities_force重複チェックを回避してエンティティを作成します
clear_graphすべてのエンティティ/リレーションをクリアします(イベントソーシングのため、巻き戻し可能です)

タイムトラベル:

ツール説明
get_state_at履歴内の任意の時点におけるグラフの状態を表示します
diff_timerange2 つの時点の間に何が変更されたかを表示します
get_entity_history特定のエンティティの変更履歴全体を取得します
rewindgit を使用してグラフを以前の状態に巻き戻します
restore_state_at指定したタイムスタンプ時点の状態にグラフを復元します(監査履歴を保持)
reloadディスクからグラフの状態を再読み込みします(git 操作の後に使用)

エッジの重み:

ツール説明
get_relation_weight重みの内訳を取得します(新しさ、共同アクセス、明示的な重み)
set_relation_importance明示的な重要度の重みを設定します(0.0-1.0)
get_strongest_connectionsエンティティの最も重要なつながりを検索します
get_weak_relations削除候補(重みの低いリレーション)を検索します
Recall:文章形式とグラフ形式

recall ツールは、デフォルトで文章形式のコンテキストを返します。エージェントが JSON を解析せずにそのまま利用できる、人間が読みやすいテキストです。

# Default: prose format (human-readable)
recall(depth="medium", query="authentication")
# Returns:
# **MyApp** (project)
# A Python web service. Uses OAuth2 for user auth.
# Uses: PostgreSQL, Redis
#
# **Decisions:**
# • Decision: Use JWT — Stateless tokens for API authentication
#
# **Gotchas:**
# • Token expiry is 1 hour by default
# • Refresh tokens stored in Redis

# Optional: graph format (structured JSON)
recall(depth="medium", query="authentication", format="graph")

深度レベル:

  • shallow — クイックサマリー:エンティティ数、最近のアクティビティ、注意点
  • medium — セマンティック検索+1 ホップの隣接ノード(約 2000 トークン)
  • deep — フォーカスエンティティからのマルチホップ探索(約 5000 トークン)

注意点の抽出: Gotcha:、Warning:、Note:、または Important: で始まる観察事項は、自動的に専用セクションへ抽出されます。

CLI ツール

mnemograph — すべてのメモリ操作を統合する CLI:

# Basic operations
mnemograph status                # Show entity/relation counts, recent events
mnemograph log                   # View event history
mnemograph log --session X       # Filter by session
mnemograph sessions              # List all sessions
mnemograph export                # Export graph as JSON

# VCS commands (git-based version control)
mnemograph vcs init              # Initialize memory as git repo
mnemograph vcs commit -m "msg"   # Commit current state
mnemograph vcs log               # View commit history
mnemograph vcs revert --event ID # Undo specific events (compensating events)
mnemograph vcs revert --session X # Undo entire session

# Graph visualization
mnemograph graph                 # Open interactive graph viewer
mnemograph graph --watch         # Live reload mode (refresh button)

# Time travel
mnemograph show --at "2 days ago"  # View state at a point in time
mnemograph diff "1 week ago"       # Show changes since then
mnemograph history "EntityName"    # Full changelog for an entity
mnemograph rewind -n 1             # Git-based rewind by N commits
mnemograph restore --to "yesterday" # Event-based restore (audit-preserving)

# Graph health and maintenance
mnemograph health                # Show graph health report (orphans, duplicates, etc.)
mnemograph health --fix          # Interactive cleanup mode
mnemograph similar "React"       # Find entities similar to "React" (duplicate check)
mnemograph orphans               # List entities with no relations
mnemograph suggest "FastAPI"     # Suggest relations for an entity
mnemograph clear                 # Clear all entities and relations (with confirmation)

# Global options (come *before* the subcommand)
mnemograph --global status       # Use global memory (~/.claude/memory)
mnemograph --memory-path /path graph  # Custom memory location

どこからでも実行(venv を有効化せずに):

# Using uv (recommended)
uv run --directory /path/to/mnemograph mnemograph graph

# Using uvx (if installed from PyPI)
uvx --from mnemograph mnemograph status

グラフの可視化 — インタラクティブな D3.js ビューアー:

  • レイアウトアルゴリズム:力学ベース、放射状(ハブを中心に配置)、クラスタ化(コンポーネントごと)
  • カラー表示モード:エンティティタイプ、連結成分、または次数中心性による色分け
  • エッジの重みスライダー:強度で接続をフィルタリング
  • ライブ更新:--watch モードと更新ボタンでリアルタイムに更新

アーキテクチャ

~/.mnemograph/memory/    # or ~/.claude/memory, ~/.opencode/memory, etc.
├── mnemograph.db        # SQLite database (events + vectors)
├── state.json           # Cached materialized state (derived)
└── .git/                # Version history

イベントソーシングでは、すべての変更が不変のイベントとして SQLite に記録されます。現在の状態はイベントを再生して計算されます。これにより、次のことが可能になります。

  • すべての変更の完全な履歴
  • 任意の操作の取り消し
  • ナレッジグラフのブランチ作成とマージ
  • Claude が何をいつ学習したかの監査証跡

2 層のバージョン管理:

  • mnemograph vcs revert — 補償イベントを使って特定のイベントを取り消す、きめ細かな操作
  • mnemograph rewind / mnemograph restore — Git レベルまたはタイムスタンプベースで復元する、大まかな操作

ブランチ

ブランチを使うと、メイングラフに影響を与えずに、分離されたナレッジを扱えます。次の用途に最適です。

  • 探索的な作業 — 共有ナレッジを汚染せずにアプローチを試す
  • 機能ごとのコンテキスト — 「feature/auth-refactor」で認証に関する決定を分離
  • 複数のプロジェクト — 異なるコードベース間でコンテキストを切り替え
ブランチの作成と使用
# Create a branch for your feature
create_branch(name="feature/auth-refactor")

# Work normally — all operations happen on this branch
remember(name="OAuth2", entity_type="concept",
         observations=["Implementing OAuth2 flow"])

# Switch back to main to see clean state
switch_branch(name="main")

# Merge when ready
merge_branch(source="feature/auth-refactor", target="main")
ブランチの仕組み
  • メインブランチは常に存在し、共有ナレッジを含みます
  • フィーチャーブランチはメインブランチを引き継ぎますが、追加内容は分離されたままです
  • 自動フィルタリング — recall、search などは現在のブランチとメインブランチのみを参照します
  • マージすると、ブランチのエンティティ/リレーションが対象ブランチにコピーされます
  • 削除すると、マージ後の後処理(または探索作業の破棄)が行われます
ブランチの命名規則
パターン用途
feature/xyz機能固有のナレッジ
explore/xyz探索的/実験的な作業
project/xyzプロジェクト固有のコンテキスト
user/name個人用ワークスペース

エンティティタイプ

タイプ目的例
conceptアイデア、パターン、アプローチ「リポジトリパターン」、「イベントソーシング」
decision根拠を伴う選択「シンプルさを優先して Postgres ではなく SQLite を選択」
projectコードベース、システム「auth-service」、「mnemograph」
pattern繰り返し使われるコードパターン「Result 型によるエラー処理」
question未解決の疑問「リアルタイム同期を追加すべきか?」
learning発見「pytest のフィクスチャでテストのセットアップが簡単になる」
entity一般的なエンティティ(人物、ファイルなど)「Alice」、「config.yaml」

トピックの規約

関連するナレッジを参照するためのエントリーポイントとして、トピックエンティティを使用します。

# Create topic entry points
create_entities([
    {"name": "topic/projects", "entityType": "entity"},
    {"name": "topic/decisions", "entityType": "entity"},
    {"name": "topic/patterns", "entityType": "entity"},
])

# Link entities to their topics
create_relations([
    {"from": "auth-service", "to": "topic/projects", "relationType": "part_of"},
    {"from": "Decision: Use Redis", "to": "topic/decisions", "relationType": "part_of"},
])

標準トピック:

  • topic/projects — プロジェクトエンティティ
  • topic/decisions — アーキテクチャ上の決定
  • topic/patterns — パターンとプラクティス
  • topic/learnings — 重要な発見
  • topic/questions — 未解決の質問

これにより、topic/decisions を調べて「どのような決定をしたか」を簡単に問い合わせられます。

開発

git clone https://github.com/tm42/mnemograph.git
cd mnemograph
uv sync                    # Install dependencies
uv run pytest --cov        # Run tests with coverage (enforces 75% minimum)
uv run ruff check .        # Lint
uv run mnemograph          # Run MCP server directly

ベースとするプロジェクト

Mnemograph は MCP server-memory(Anthropic の公式メモリサーバー)をベースにしています。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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