mcpField
G
Graph-Mem

Graph-Mem

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

Graph-Mem について

Graph-Memは、AIエージェントやIDE向けにプロジェクト別の記憶を保存する知識グラフMCPサーバーです。セマンティック検索とグラフ探索を組み合わせ、セッションをまたいで構造化された情報を利用できます。

主な機能

  1. 01プロジェクト別の永続知識グラフ
  2. 02セマンティック検索と全文検索
  3. 03マルチホップ探索とパス検索
  4. 04エンティティ、関係、観察のCRUD
  5. 05複数グラフ管理とインタラクティブな可視化

活用シーン

  1. 01コーディングエージェント間でプロジェクト情報を継続利用
  2. 02サービス依存関係などの照会
  3. 03カスタムエージェントのメモリ層構築
  4. 04プロジェクト別の構造化ナレッジ管理

MCP 対応

標準MCPサーバーとして、stdio、SSE、streamable-http経由で互換クライアントに28個のツールを提供し、知識グラフの読み書きと管理を可能にします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"sathvik-1007-graphmem": {
"command": "uvx",
"args": [
"graphmem-mcp"
],
"env": {
"GRAPHMEM_DB_PATH": "<GRAPHMEM_DB_PATH>",
"GRAPHMEM_EMBEDDING_MODEL": "<GRAPHMEM_EMBEDDING_MODEL>",
"GRAPHMEM_TRAVERSAL_NODE_BUDGET": "<GRAPHMEM_TRAVERSAL_NODE_BUDGET>",
"GRAPHMEM_LOG_LEVEL": "<GRAPHMEM_LOG_LEVEL>"
}
}
}
}
起動コマンドuvx graphmem-mcp
設定が必要な環境変数
GRAPHMEM_DB_PATHPath to the SQLite database file. Defaults to .graphmem/graph.db relative to the working directory.
GRAPHMEM_EMBEDDING_MODELsentence-transformers model ID used for semantic search. Defaults to all-MiniLM-L6-v2, downloaded on first use.
GRAPHMEM_TRAVERSAL_NODE_BUDGETMaximum entities visited by a single graph traversal. Defaults to 5000.
GRAPHMEM_LOG_LEVELLogging verbosity: DEBUG, INFO, WARNING, ERROR, or CRITICAL. Defaults to WARNING.

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

パッケージ
pypigraphmem-mcp1.0.0

ツール

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

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

詳細

Graph-Mem MCP

AI エージェントと IDE 向けの永続的なナレッジグラフメモリ

PyPI CI License: MIT Python 3.10+ MCP

Graph-Mem MCP は、ナレッジグラフを通じて、あらゆるエージェントや IDE に永続的で構造化されたメモリを提供する汎用 MCP サーバーです。グラフストレージ、セマンティックベクトル検索、マルチホップ探索を単一のパッケージに統合しています。インストールして MCP 設定に追加するだけで、エージェントはセッションをまたいで保持されるメモリを利用できます。MCP が使えるあらゆる環境で動作します。

データを安心して預けられる設計
1055 tests総当たりの参照実装に対するプロパティベーステストに加え、すべてのパーサーでファジングを実施
mypy strictCI で適用される確実な型チェック。設定されているだけではありません
認証済み UIHost と Origin の許可リストおよびセッショントークンを採用。クロスオリジンの書き込みは 403 となり、稼働中のサーバーで検証済み
上限付きあらゆる探索、検索、リスト応答に、名前付きで設定可能な上限を設け、切り捨てが発生した場合はその旨を報告
誠実なドキュメントパフォーマンスの主張には測定結果と再現可能なベンチマークを添付。既知の課題も記載
対応環境

graph-mem は標準的な MCP サーバーなので、MCP 互換のあらゆるエージェント、IDE、フレームワークで動作します。さらに graph-mem install を実行すると、以下の 13 種類について、各ベンダーの公式ドキュメントに記載されたパスにスキルファイルを書き込みます。

Claude CodeOpenCodeCursorWindsurfCodex CLI
Gemini CLIGitHub CopilotAmpKiroRoo Code
ContinueAntigravityDroid (Factory)追加する →

別のツールを使っていますか?以下の MCP 設定だけで利用できます。スキルファイルは便利な機能ですが、必須ではありません。インストーラーへのエージェント追加に必要なのは、ドキュメントに記載されたパスと約 10 行のコードだけです。エージェントの追加をご覧ください。


これは何ですか?

AI エージェントはセッションが終わるたびに、すべてを忘れてしまいます。ファイルを読み直し、アーキテクチャを再発見し、同じ間違いを繰り返します。Graph-Mem MCP は、MCP 互換のあらゆるエージェントが読み書きできる、プロジェクトごとの永続的なナレッジグラフを提供してこの問題を解決します。エージェントの作業に合わせてグラフは有機的に構築され、すべての会話からエンティティ、決定事項、関係性を抽出します。Model Context Protocol に対応するあらゆるエージェント、IDE、フレームワークに接続できる、28 個のツールを備えた標準的な MCP サーバーとして動作します。

なぜ単なるベクトルストアではなく、グラフなのですか?

ベクトル検索は「類似した」ものを見つけます。グラフ検索は「つながりのある」ものを見つけます。エージェントが「認証サービスに依存しているものは何ですか?」と尋ねた場合、ベクトルストアは認証に言及したテキストを返します。ナレッジグラフは実際の依存関係のエッジをたどり、説明に「認証」と書かれていないものも含めて、すべての上流の利用者を返します。Graph-Mem は両方を提供します。あいまいな情報の発見にはベクトル類似度を、構造的なクエリにはグラフ探索を利用できます。

ユースケース
  • エージェントのメモリ — あらゆる AI コーディングエージェントに、セッションをまたいで持続するコンテキストを提供します
  • IDE との統合 — Cursor、Windsurf、Copilot、または MCP 対応の IDE にナレッジグラフツールを追加します
  • エージェントの構築 — カスタム AI エージェントやワークフローの構築時に、メモリレイヤーとして使用します
  • 調査とナレッジ管理 — セマンティック検索に対応した構造化ナレッジベースを構築します
  • 複数プロジェクトのコンテキスト — 複数グラフのサポートにより、プロジェクトごとに個別のナレッジグラフを管理します

クイックスタート

1. インストールします:

pip install graphmem-mcp

インストールせずに実行することもできます。uvx は Node 用の npx と同様に、パッケージを取得して分離された環境で実行します。

uvx --from graphmem-mcp graph-mem server

公式 MCP Registry に io.github.Sathvik-1007/graphmem-mcp として登録されているため、MCP 対応クライアントから直接検出してインストールできます。

2. エージェント用のスキルをインストールします:

graph-mem install claude       # Claude Code
graph-mem install opencode     # OpenCode
graph-mem install codex        # Codex CLI
graph-mem install gemini       # Gemini CLI
graph-mem install cursor       # Cursor
graph-mem install windsurf     # Windsurf
graph-mem install amp          # Amp
graph-mem install antigravity  # Antigravity
graph-mem install copilot      # GitHub Copilot
graph-mem install kiro         # Kiro
graph-mem install roocode      # Roo Code
graph-mem install continue     # Continue
graph-mem install droid        # Droid (Factory)

これにより、28 個の MCP ツールすべての使い方(検索するタイミング、エンティティを追加するタイミング、命名規則、一般的なワークフロー)をエージェントに教えるスキルファイルが書き込まれます。

**3. MCP を設定します。**エージェントの MCP 設定に以下を追加します。

{
  "mcpServers": {
    "graph-mem": {
      "command": "graph-mem",
      "args": ["server"]
    }
  }
}

詳細なカスタマイズを行う場合:

{
  "mcpServers": {
    "graph-mem": {
      "command": "graph-mem",
      "args": [
        "server",
        "--project-dir", "/path/to/my/project",
        "--embedding-model", "sentence-transformers/all-mpnet-base-v2",
        "--use-onnx",
        "--cache-size", "20000",
        "--log-level", "INFO"
      ]
    }
  }
}

これで完了です。エージェントが持続するメモリを利用できるようになります。read_graph() を実行するよう指示して確認してください。


1 つのプロンプトでセットアップ

すぐに始めるには、これをエージェントのチャットに貼り付けてください。

I want you to give yourself persistent memory using graph-mem. Run the following:

pip install graphmem-mcp
graph-mem install claude    # or: opencode, codex, gemini, cursor, windsurf, amp,
                            #     antigravity, copilot, kiro, roocode, continue, droid

This installs a skill file that teaches you how to use all 28 MCP tools.
The server should already be configured in your MCP config. If not, add it:

{
  "mcpServers": {
    "graph-mem": {
      "command": "graph-mem",
      "args": ["server", "--project-dir", "/path/to/your/project"]
    }
  }
}

Now start using the knowledge graph:

1. read_graph() to see current state
2. search_nodes("relevant topic") to find existing knowledge
3. add_entities, add_relationships, add_observations as you learn things
4. update_observation / update_relationship to fix mistakes in-place
5. open_dashboard() to explore the graph visually in your browser
6. At session end, capture anything important you discovered

Your goal: build a rich knowledge graph of this project so future sessions
start with full context instead of from zero. Search before adding to avoid
duplicates. Be specific with entity names and types.

インストール

オプション 1:pip(推奨)
pip install graphmem-mcp
graph-mem server
オプション 2:uvx(事前インストール不要)
uvx --from graphmem-mcp graph-mem server

uvx はパッケージを分離された環境にダウンロードし、1 つのコマンドで実行します。uv 以外に事前インストールするものはありません。

オプション 3:ソースからインストール
git clone https://github.com/Sathvik-1007/GraphMem-MCP
cd graph-mem
pip install -e ".[full,dev]"
graph-mem server
オプションの追加機能
pip install "graphmem-mcp[embeddings]"   # sentence-transformers for local embeddings
pip install "graphmem-mcp[onnx]"         # ONNX runtime for embedding inference
pip install "graphmem-mcp[ui]"           # aiohttp for interactive graph visualisation
pip install "graphmem-mcp[full]"         # all of the above

ツール

Graph-Mem は 28 個の MCP ツールを提供します。書き込み用が 10 個、読み取り用が 9 個、メンテナンス用が 4 個、複数グラフ管理用が 4 個、ユーティリティが 1 個です。すべてのプリミティブに対する完全な CRUD を備えており、エンティティ、リレーションシップ、オブザベーションを作成、読み取り、更新、削除できます。

書き込みツール(10 個)
ツール説明
add_entitiesオプションでオブザベーションを指定して、エンティティを一括作成します。名前が競合する場合は自動的に統合し、品質チェックのヒントを返します
add_relationshipsエンティティ間に型付きの有向エッジを作成します。重複は最大ウェイトを使って統合します
add_observationsオプションでソースの来歴を指定して、事実を記述した文をエンティティに追加します
update_entityエンティティの名前、説明、プロパティ、または型をその場で変更します(名前変更時は衝突を確認します)
update_relationship既存のエッジを削除して再作成することなく、ウェイト、型、またはプロパティを変更します
update_observationオブザベーションのテキストをその場で編集し、埋め込みを自動的に再計算します
delete_entitiesエンティティを削除し、関連するリレーションシップ、オブザベーション、埋め込みも連鎖的に削除します
delete_relationshipsエンティティ間の特定のエッジを削除します。必要に応じて型で絞り込めます
delete_observations所有権を検証して、ID で特定のオブザベーションを削除します
merge_entities重複するエンティティを統合します。オブザベーションとリレーションシップを移動し、エッジの重複を解消します
読み取りツール(9 個)
ツール説明
search_nodesセマンティック検索と全文検索を組み合わせ、RRF 融合ランキングで結果を返します
search_observationsオブザベーションのテキストを対象に直接セマンティック検索します
find_connections方向と型のフィルターに対応した、複数ホップの BFS グラフトラバーサルを行います
get_entityすべてのオブザベーションとリレーションシップを含む、エンティティの詳細情報を取得します
list_entitiesオプションの型フィルターを指定して、すべてのエンティティを表示またはページ分割して取得します
list_relationshipsエンティティ、型、または複合フィルターを使って、リレーションシップを表示またはページ分割して取得します
read_graph件数、型の分布、最も多く接続されたエンティティなど、グラフの統計情報を取得します
get_subgraphシードエンティティを中心に、近傍サブグラフを抽出します
find_pathsBFS を使って、2 つのエンティティ間の最短経路を検索します
保守ツール(4)
ツール説明
graph_healthヘルス統計:件数、ホットスポット、説明の不足、推奨アクション
compact_observations観測結果をアトミックに圧縮します。古い項目を削除し、統合した要約を一度に追加します
suggest_connectionsノードと意味的に類似しており、接続できるエンティティを見つけます
audit_graph品質を全面的にチェックします。未接続のノード、データの不足、弱いリンクを検出します。構造化された指摘と、描画済みの report フィールドを返します
可視化(1)
ツール説明
open_dashboardインタラクティブなグラフ可視化 UI を起動し、URL を返します
マルチグラフツール(4)
ツール説明
list_graphs.graphmem/ ディレクトリにある名前付きグラフをすべて、エンティティ/リレーションシップ/観測結果の件数とともに一覧表示します
create_graph新しい名前付きグラフ(.graphmem/<name>.db)を作成します
switch_graphアクティブなグラフを切り替えます。ストレージ、検索、グラフエンジンがホットスワップされます
delete_graph名前付きグラフを削除します(現在アクティブなグラフは削除できません)

マルチグラフストレージ:名前付きグラフはそれぞれ、.graphmem/ 内の個別の SQLite データベースです。デフォルトのグラフは graph.db です。特定のグラフを対象とするには、CLI コマンドで --graph <name> を使用します。


アーキテクチャ

graph TD
    Agent[Any MCP-Compatible Agent or IDE] --> Transport

    subgraph Transport
        STDIO[stdio]
        SSE[SSE]
        HTTP[streamable-http]
    end

    Transport --> Tools

    subgraph Tools[Graph-Mem MCP Server — 28 MCP Tools]
        Write[Write · 10 tools]
        Read[Read · 9 tools]
        Maint[Maintenance · 4 tools]
        Graph[Multi-Graph · 4 tools]
        UI[Dashboard · 1 tool]
    end

    Write --> Engines
    Read --> Engines
    Maint --> Engines

    subgraph Engines
        GE[GraphEngine]
        SE[HybridSearch]
        EE[EmbeddingEngine]
        GT[GraphTraversal]
        EM[EntityMerger]
    end

    Engines --> Storage

    subgraph Storage[SQLite Storage]
        DB[SQLite WAL]
        VEC[sqlite-vec]
        FTS[FTS5]
    end

    UI --> Dashboard[React SPA + aiohttp]
    Dashboard --> DB

プロジェクトごとに、すべてのデータは単一の SQLite データベースに格納されます。サーバーは MCP の標準 stdio トランスポート(SSE と streamable-http にも対応)を介して通信し、プロジェクトのルートにある .graphmem/graph.db にすべてのデータを保存します。データベースファイルはポータブルです。マシン間でコピーしたり、バージョン管理に含めたり、他のファイルと同様にバックアップしたりできます。

関連ドキュメント
ドキュメント内容
仕組みデータモデル、検索パイプライン、トラバーサル、エンティティ解決、ストレージレイアウト、リクエストフロー
アーキテクチャ設計の理由、設計を支える判断、そのコスト、測定済みのベースライン
セキュリティ脅威モデル、MCP とブラウザーの信頼境界、意図的に対象外としている事項
コントリビュートローカル環境のセットアップと CI が適用するゲート

MCP との連携

Graph-Mem MCP は標準的な MCP サーバーです。Model Context Protocol を介してエージェントと通信し(デフォルトは stdio。SSE と streamable-http にも対応)、エージェントが直接呼び出す 28 個のツールを提供します。他の MCP ツールを呼び出すのと同じ方法で利用できます。すべての MCP 対応エージェント、IDE、フレームワークで、すぐに動作します。

動作を確認するには、エージェントに read_graph() を実行するよう指示してください。現在のグラフ統計が返されます。


グラフの可視化

graph-mem ui                              # open interactive graph explorer
graph-mem ui --no-open                    # start server without opening browser
graph-mem ui --port 9090                  # use a specific port
graph-mem ui --graph harry-potter         # open a specific named graph

graph-mem ui が出力する URL には セッショントークン が含まれています。パスワードとして扱ってください。ダッシュボードはグラフの読み取りと書き込みを行うため、API ではカスタムヘッダーでそのトークンを要求し、バインド先のインターフェースと異なる Origin または Host を持つリクエストを拒否します。これらのチェックがなければ、UI の実行中にアクセスしたあらゆる Web サイトからナレッジグラフを書き換えられてしまう可能性があります。詳細については SECURITY.md を参照してください。

open_dashboard MCP ツールもこの UI サーバーを起動し、エージェントに URL を返します。バインド先は常に localhost です。バインドアドレスは意図的にツールのパラメーターにしていないため、プロンプトインジェクションを受けたエージェントがグラフをネットワークに公開することはできません。

ダッシュボードの機能:

  • 力指向グラフキャンバスによるリアルタイム物理シミュレーション
  • エンティティタイプのフィルタリング — サイドバーのチェックボックスでエンティティタイプの表示を切り替え
  • クリックしてフォーカス — グラフまたはサイドバーのノードをクリックすると、即座にそのノードが中央に表示され、ズームされます
  • エンティティのインライン編集 — 詳細パネルの任意のフィールド(名前、タイプ、説明)をクリックすると、その場で編集できます
  • プロパティ管理 — 各エンティティの個々のプロパティを行ごとのコントロールで追加、編集、削除
  • 観察事項の管理 — 確認ダイアログとインライン編集で観察事項を追加、編集、削除
  • 関係のナビゲーション — 関連エンティティをクリックしてグラフ内を移動
  • エンティティの作成と削除 — サイドバーから新しいエンティティを作成し、詳細パネルの危険操作エリアから確認のうえ削除
  • ハイブリッド検索 — すべてのエンティティを対象としたセマンティック検索とキーワード検索
  • グラフ選択 — サーバーを再起動せずに名前付きグラフを切り替え
  • 物理演算のコントロール — ばね、反発、減衰、重力をリアルタイムで調整
  • キーボードショートカット — Space(再加熱)、F(表示範囲に合わせる)、Escape(選択解除)

データストレージ

デフォルトでは、Graph-Mem は現在の作業ディレクトリを基準に .graphmem/graph.db にデータベースを保存します。次の方法で保存先を指定できます。

方法例結果
--project-dir--project-dir /home/user/myproject/home/user/myproject/.graphmem/graph.db に保存
--db--db /custom/path/memory.db指定したパスに保存
GRAPHMEM_DB_PATH envexport GRAPHMEM_DB_PATH=/tmp/test.db指定したパスに保存
デフォルト(何も指定しない)CWD を基準に .graphmem/graph.db

優先順位: --db > --project-dir > GRAPHMEM_DB_PATH env var > デフォルト。

.graphmem/ ディレクトリは存在しない場合、自動的に作成されます。データベースをバージョン管理の対象にしない場合は、.gitignore に .graphmem/ を追加してください。


CLI リファレンス

サーバー
graph-mem server                          # stdio transport (default)
graph-mem server --transport sse          # SSE transport
graph-mem server --db /path/to/graph.db   # custom database path
graph-mem server --project-dir /my/project  # store memory in <dir>/.graphmem/
graph-mem server --project-dir /my/project --graph harry-potter  # use named graph

# Embedding customization
graph-mem server --embedding-model sentence-transformers/all-mpnet-base-v2
graph-mem server --no-onnx --embedding-device cuda
graph-mem server --cache-size 50000

# Tuning
graph-mem server --search-limit 20 --max-hops 6
graph-mem server --log-level DEBUG

サーバーの全オプション:

フラグ説明デフォルト
--transportstdio、sse、または streamable-httpstdio
--dbSQLite データベースファイルのパス.graphmem/graph.db
--project-dirプロジェクトのルート。DB は <dir>/.graphmem/graph.db に保存CWD
--graph名前付きグラフ(<dir>/.graphmem/<name>.db に解決)graph
--hostバインドアドレス(SSE/HTTP のみ)127.0.0.1
--portポート(SSE/HTTP のみ)8080
--embedding-model埋め込み用の HuggingFace モデル IDall-MiniLM-L6-v2
--use-onnx / --no-onnxONNX 埋め込みバックエンドを使用(optimum[onnxruntime] が必要)オフ
--embedding-devicecpu または cudacpu
--cache-size埋め込み LRU キャッシュの最大エントリ数10000
--search-limitsearch_nodes のデフォルト最大結果数10
--max-hopsfind_connections のデフォルト最大深度4
--log-levelDEBUG / INFO / WARNING / ERROR / CRITICALWARNING
スキルのインストール
graph-mem install <agent>                 # project-level install
graph-mem install <agent> --global        # global/user-level install
graph-mem install <agent> --domain code   # use domain overlay (code, research, general)
スキルのインストール先

以下の各パスは、ベンダーの最新ドキュメントに基づいています。インストール先を確認できるエージェントは、ここに記載していません。パスを推測すると、成功したように見えてファイルは書き込まれるものの、エージェントがそのファイルを読み込まないことがあり、サポートしないよりも悪い結果になります。この理由により、6つのエージェントを削除しました。

エージェントプロジェクトのパスユーザーレベルのパス書き込み形式ソース
claude.claude/skills/graph-mem/SKILL.md~/.claude/skills/graph-mem/SKILL.md独立したファイルドキュメント
opencode.opencode/skills/graph-mem/SKILL.md~/.config/opencode/skills/graph-mem/SKILL.md独立したファイルドキュメント
codexAGENTS.md~/.codex/AGENTS.mdセクションドキュメント
geminiGEMINI.md~/.gemini/GEMINI.mdセクションドキュメント
cursor.cursor/rules/graph-mem.mdc—独立したファイルドキュメント
windsurf.windsurf/rules/graph-mem.md~/.codeium/windsurf/memories/global_rules.md独立したファイルドキュメント
amp.agents/skills/graph-mem/SKILL.md~/.config/agents/skills/graph-mem/SKILL.md独立したファイルドキュメント
antigravityAGENTS.md~/.gemini/AGENTS.mdセクションドキュメント
copilot.github/copilot-instructions.md—セクションドキュメント
kiro.kiro/steering/graph-mem.md~/.kiro/steering/graph-mem.md独立したファイルドキュメント
roocode.roo/rules/graph-mem.md~/.roo/rules/graph-mem.md独立したファイルドキュメント
continue.continue/rules/graph-mem.md—独立したファイルドキュメント
droidAGENTS.md~/.factory/AGENTS.mdセクションドキュメント

書き込み先のファイルが共有されるエージェント(AGENTS.md、GEMINI.md、 .github/copilot-instructions.md、Windsurf のグローバルルール)では、区切り付きのセクションをファイルに書き込みます。ファイル内の既存の内容はそのまま保持され、再インストール時には2つ目のコピーを追加せず、該当セクションを置き換えます。

別のエージェントへの対応をご希望ですか?エージェントの追加をご覧ください。必要なのは、ドキュメントで確認できるパスと10行程度のコードです。

グラフの管理
graph-mem init                            # create .graphmem/ directory
graph-mem init --project-dir /my/project  # create in specific directory
graph-mem init --graph research           # create a named graph
graph-mem status                          # print graph statistics
graph-mem status --json                   # graph statistics as JSON
graph-mem status --graph research         # status of a named graph
graph-mem export --format json            # export entire graph
graph-mem export --output backup.json     # export to file
graph-mem import graph.json               # import graph from file
graph-mem validate                        # run integrity checks

すべての管理コマンドでは、特定のデータベースを対象にするために --db、--project-dir、--graph を指定できます。

複数グラフのサポート:--graph <name> を使用すると、.graphmem/<name>.db に保存された名前付きグラフを操作できます。--graph を指定しない場合、コマンドはデフォルトの graph.db を対象にします。MCP ツールの list_graphs、create_graph、switch_graph、delete_graph を使うと、エージェントが実行時にグラフを管理できます。


設定

すべての設定は任意です。デフォルト設定のままですぐに使用できます。各設定は CLI フラグ(graph-mem server --help を参照)、環境変数、またはその両方で指定できます。CLI フラグは環境変数より優先され、環境変数はデフォルト設定より優先されます。

環境変数CLI フラグデフォルト説明
GRAPHMEM_DB_PATH--db.graphmem/graph.dbデータベースファイルのパス
GRAPHMEM_BACKEND_TYPE--sqliteストレージバックエンド
GRAPHMEM_EMBEDDING_MODEL--embedding-modelall-MiniLM-L6-v2HuggingFace モデル ID
GRAPHMEM_USE_ONNX--use-onnx / --no-onnxfalse利用可能な場合に ONNX ランタイムを使用
GRAPHMEM_EMBEDDING_DEVICE--embedding-devicecpu推論デバイス(cpu または cuda)
GRAPHMEM_CACHE_SIZE--cache-size10000埋め込みキャッシュの最大エントリー数
GRAPHMEM_SEARCH_LIMIT--search-limit10デフォルトの検索結果数上限
GRAPHMEM_MAX_HOPS--max-hops4デフォルトの最大トラバーサル深度
GRAPHMEM_LOG_LEVEL--log-levelWARNINGログの詳細度
GRAPHMEM_TRANSPORT--transportstdioMCP トランスポートプロトコル

パフォーマンス

形容詞ではなく、測定値を示します。トラバーサルの数値は python benchmarks/bench_traversal.py で再現できます。表全体は docs/ARCHITECTURE.md にあります。

トラバーサル — グローバルな訪問済みセットを使う幅優先探索で、ホップごとにインデックス付きの隣接クエリを 1 回実行します。密な 60 ノードのグラフを深度 6 までトラバースするのに 5 ms かかります。一見わかりやすい再帰 CTE の方法では、代わりにすべての単純パスを列挙します。14 ノードのグラフで中間行を 1,409,006 件、6.4 秒かけて生成し、BFS が 1 ms で返すのと同じ 13 個のエンティティを返しました。

グラフキャンバス — Barnes-Hut 力学シミュレーション(θ = 0.9)を使用します。2000 ノードでは 215 fps、API 自身の上限である 5000 ノードでは 80 fps で動作します。従来の全ペア実装では、それぞれ 30 fps と 3.7 fps でした。厳密な合計値に対する近似誤差は RMS で 1.30%で、安定したレイアウトは同等です。

ストレージ

  • WAL ジャーナルと PRAGMA のチューニングにより、読み取りを並行して実行できます。また、メモリマップ I/O を使うため、大規模なデータベースでもデータ量に比例して RAM を消費しません。
  • 外側のトランザクションが終了するまで書き込みロックを保持する単一の接続を使用します。また、読み取りから書き込みへの切り替えが再試行不能な形で失敗しないよう、BEGIN IMMEDIATE を使用します。
  • 一括操作をまとめて実行し、すべての IN (...) を SQLite のバインド変数上限未満に分割します。

埋め込み

  • (hash, model) をキーにしたコンテンツハッシュキャッシュにより、複数のモデルが互いのデータを上書きせずに共存できます。LRU による削除と、読み書きの一括処理にも対応します。
  • 起動時にバックグラウンドスレッドでモデルを遅延ロードし、推論はワーカースレッドで実行するため、どちらもイベントループをブロックしません。
  • optimum[onnxruntime] がインストールされ、--use-onnx が設定されている場合、オプションで ONNX バックエンドを使用し、問題があれば PyTorch にフォールバックします。デフォルトでは無効です。このプロジェクトでは ONNX のベンチマークを公開していないため、ここでは速度向上を主張しません。

上限 — すべてのトラバーサル、検索、リストのレスポンスには、名前付きの設定可能な上限が適用されます。レスポンスが上限に達した場合は、黙って一部だけを返すのではなく、その旨を示します。


開発

git clone https://github.com/Sathvik-1007/GraphMem-MCP
cd graph-mem

# Using uv (recommended)
uv venv
uv pip install -e ".[full,dev]"

# Or using pip
python -m venv .venv
source .venv/bin/activate
pip install -e ".[full,dev]"
テストの実行
pytest                            # all tests
pytest tests/test_graph/          # graph engine tests
pytest tests/test_server/         # MCP server tool tests (all 28 tools)
pytest tests/test_cli/            # CLI command tests
pytest tests/test_models/         # data model tests
pytest tests/test_semantic/       # search + vector tests
pytest tests/test_storage/        # storage backend tests
pytest tests/test_db/             # database + migration tests
pytest tests/test_utils/          # config, logging, ID generation tests
pytest -x -q                      # stop on first failure, quiet output

スター履歴

スター履歴グラフ

ライセンス

MIT

コメント

MCP は初めてですか?

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

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