local-only server
The server can only run on the client’s local machine because it depends on local resources.
mcp-knowledge-graph
ナレッジグラフメモリサーバー
カスタマイズ可能な--memory-path
を持つローカル ナレッジ グラフを使用した永続メモリの改善された実装。
これにより、AIモデルはチャットをまたいでユーザー情報を記憶できるようになります。これは、モデルコンテキストプロトコル(MCP)または関数呼び出し機能をサポートするあらゆるAIモデルで動作します。
[!NOTE] これはオリジナルのMemory Serverのフォークであり、一時メモリ npx インストール方法を使用しないことを目的としています。
サーバー名
コアコンセプト
エンティティ
エンティティはナレッジグラフの主要なノードです。各エンティティには以下の要素が含まれます。
- 一意の名前(識別子)
- エンティティの種類(例:「人」、「組織」、「イベント」)
- 観察リスト
例:
関係
関係は、実体間の有向的なつながりを定義します。関係は常に能動態で表現され、実体同士がどのように相互作用し、関係するかを説明します。
例:
観察
観察とは、ある実体に関する個別の情報です。観察対象には以下のものがあります。
- 文字列として保存
- 特定のエンティティに添付
- 個別に追加または削除可能
- アトミックである必要があります(観察ごとに1つの事実)
例:
API
ツール
- エンティティの作成
- ナレッジグラフに複数の新しいエンティティを作成する
- 入力:
entities
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
name
(文字列): エンティティ識別子entityType
(文字列): 型分類observations
(文字列[]): 関連する観測値
- 各オブジェクトには次のものが含まれます。
- 既存の名前を持つエンティティを無視します
- 関係を作成する
- エンティティ間に複数の新しい関係を作成する
- 入力:
relations
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
from
(文字列): ソースエンティティ名to
(文字列): ターゲットエンティティ名relationType
(文字列): 能動態における関係の種類
- 各オブジェクトには次のものが含まれます。
- 重複関係をスキップする
- 観察を追加する
- 既存のエンティティに新しい観察を追加する
- 入力:
observations
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
entityName
(文字列): 対象エンティティcontents
(文字列[]): 追加する新しい観察
- 各オブジェクトには次のものが含まれます。
- エンティティごとに追加された観測値を返します
- エンティティが存在しない場合は失敗します
- エンティティの削除
- エンティティとその関係を削除する
- 入力:
entityNames
(string[]) - 関連関係の連鎖削除
- エンティティが存在しない場合はサイレント操作
- 削除観測
- エンティティから特定の観察を削除する
- 入力:
deletions
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
entityName
(文字列): 対象エンティティobservations
(文字列[]): 削除する観測値
- 各オブジェクトには次のものが含まれます。
- 観測が存在しない場合はサイレント操作
- 関係を削除する
- グラフから特定の関係を削除する
- 入力:
relations
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
from
(文字列): ソースエンティティ名to
(文字列): ターゲットエンティティ名relationType
(文字列): 関係の種類
- 各オブジェクトには次のものが含まれます。
- 関係が存在しない場合はサイレント操作
- グラフを読む
- ナレッジグラフ全体を読む
- 入力不要
- すべてのエンティティと関係を含む完全なグラフ構造を返します
- 検索ノード
- クエリに基づいてノードを検索する
- 入力:
query
(文字列) - 検索範囲:
- エンティティ名
- エンティティタイプ
- 観察内容
- 一致するエンティティとその関係を返します
- オープンノード
- 名前で特定のノードを取得する
- 入力:
names
(文字列[]) - 戻り値:
- 要求されたエンティティ
- 要求されたエンティティ間の関係
- 存在しないノードを黙ってスキップする
MCP互換プラットフォームでの使用
このサーバーは、Claude、GPT、Llama など、モデル コンテキスト プロトコル (MCP) または関数呼び出し機能をサポートする任意の AI プラットフォームで使用できます。
Claude Desktopでのセットアップ
claude_desktop_config.json に以下を追加します:
他のAIプラットフォームとのセットアップ
関数呼び出しまたはMCP標準をサポートするあらゆるAIプラットフォームがこのサーバーに接続できます。具体的な設定はプラットフォームによって異なりますが、サーバーはMCPインターフェースを通じて標準ツールを公開します。
カスタムメモリパス
メモリ ファイルのカスタム パスを指定できます。
パスが指定されていない場合は、サーバーのインストール ディレクトリにある memory.jsonl がデフォルトになります。
システムプロンプト
メモリを活用するためのプロンプトは、ユースケースと使用するAIモデルによって異なります。プロンプトを変更すると、モデルがメモリの作成頻度と種類を判断しやすくなります。
チャットのパーソナライゼーションのためのプロンプトの例を以下に示します。これは、あらゆるAIモデルに適応できます。Claudeユーザーの場合は、 Claude.aiプロジェクトの「カスタム指示」フィールドでこのプロンプトを使用できます。他のモデルの場合は、それぞれの指示形式に合わせて調整してください。
他のAIモデルとの統合
このサーバーはモデルコンテキストプロトコル(MCP)標準を実装しており、関数呼び出しをサポートするあらゆるAIモデルと互換性があります。ナレッジグラフ構造とAPIはモデルに依存しないため、様々なAIプラットフォームとの柔軟な統合が可能です。
他のモデルと統合するには:
- MCPサーバーにアクセスできるようにモデルを構成する
- モデルが公開されたツールへの関数呼び出しが可能であることを確認する
- システムプロンプトを特定のモデルの命令形式に適合させる
- モデルに関係なく同じ知識グラフ操作を使用する
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。
You must be authenticated.
Tools
カスタマイズ可能な --memory-path を備えたローカルナレッジグラフを用いた、永続メモリの実装が改善されました。これにより、Claude はチャットをまたいでユーザー情報を記憶できるようになります。