Knowledge Graph Memory Server について
Knowledge Graph Memory Serverは、ローカルのナレッジグラフで永続メモリを提供するMCPサーバーです。チャットをまたいで情報を保持したいClaudeユーザー向けに、エンティティ、関係、観察内容を整理して検索できます。
主な機能
- 01エンティティと有向関係の作成
- 02観察内容の追加と削除
- 03ノードと関連する関係の検索
- 04グラフ全体または指定ノードの読み取り
- 05エンティティと関連関係の削除
活用シーン
- 01チャット間でユーザー情報を保持
- 02人物、組織、つながりの記録
- 03クエリによる保存済み事実の検索
MCP 対応
MCP クライアントに、ナレッジグラフの作成、検索、読み取り、削除ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ナレッジグラフメモリサーバー
Note: このプロジェクトは、スタンドアロン実装を作成するためにmodelcontextprotocol/serversから抽出されました。
ローカルのナレッジグラフを使用した、永続メモリの基本的な実装です。これにより、Claude はチャットをまたいでユーザーに関する情報を記憶できます。
コアコンセプト
エンティティ
エンティティは、ナレッジグラフの主要なノードです。各エンティティには次の情報があります。
- 一意の名前(識別子)
- エンティティタイプ(例:「person」、「organization」、「event」)
- 観察事項のリスト
例:
{
"name": "John_Smith",
"entityType": "person",
"observations": ["Speaks fluent Spanish"]
}
リレーション
リレーションは、エンティティ間の有向接続を定義します。常に能動態で保存され、エンティティ同士のやり取りや関係を表します。
例:
{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}
観察事項
観察事項は、エンティティに関する個別の情報です。次のような特徴があります。
- 文字列として保存されます
- 特定のエンティティに関連付けられます
- 個別に追加または削除できます
- 1つの観察事項につき1つの事実となるよう、原子的である必要があります
例:
{
"entityName": "John_Smith",
"observations": [
"Speaks fluent Spanish",
"Graduated in 2019",
"Prefers morning meetings"
]
}
API
ツール
-
create_entities
- ナレッジグラフに複数の新しいエンティティを作成します
- 入力:
entities(オブジェクトの配列)- 各オブジェクトには次の情報が含まれます。
name(文字列):エンティティ識別子entityType(文字列):タイプ分類observations(string[]):関連する観察事項
- 各オブジェクトには次の情報が含まれます。
- 名前が既存のエンティティは無視します
-
create_relations
- エンティティ間に複数の新しいリレーションを作成します
- 入力:
relations(オブジェクトの配列)- 各オブジェクトには次の情報が含まれます。
from(文字列):ソースエンティティ名to(文字列):ターゲットエンティティ名relationType(文字列):能動態で表現した関係タイプ
- 各オブジェクトには次の情報が含まれます。
- 重複するリレーションはスキップします
-
add_observations
- 既存のエンティティに新しい観察事項を追加します
- 入力:
observations(オブジェクトの配列)- 各オブジェクトには次の情報が含まれます。
entityName(文字列):ターゲットエンティティcontents(string[]):追加する新しい観察事項
- 各オブジェクトには次の情報が含まれます。
- エンティティごとに追加された観察事項を返します
- エンティティが存在しない場合は失敗します
-
delete_entities
- エンティティとそのリレーションを削除します
- 入力:
entityNames(string[]) - 関連するリレーションも連鎖的に削除します
- エンティティが存在しない場合は何もせずに終了します
-
delete_observations
- エンティティから特定の観察事項を削除します
- 入力:
deletions(オブジェクトの配列)- 各オブジェクトには次の情報が含まれます。
entityName(文字列):ターゲットエンティティobservations(string[]):削除する観察事項
- 各オブジェクトには次の情報が含まれます。
- 観察事項が存在しない場合は何もせずに終了します
-
delete_relations
- グラフから特定のリレーションを削除します
- 入力:
relations(オブジェクトの配列)- 各オブジェクトには次の情報が含まれます。
from(文字列):ソースエンティティ名to(文字列):ターゲットエンティティ名relationType(文字列):関係タイプ
- 各オブジェクトには次の情報が含まれます。
- リレーションが存在しない場合は何もせずに終了します
-
read_graph
- ナレッジグラフ全体を読み取ります
- 入力は不要です
- すべてのエンティティとリレーションを含む完全なグラフ構造を返します
-
search_nodes
- クエリに基づいてノードを検索します
- 入力:
query(文字列) - 次の項目を検索します。
- エンティティ名
- エンティティタイプ
- 観察事項の内容
- 一致するエンティティとそのリレーションを返します
-
open_nodes
- 名前を指定して特定のノードを取得します
- 入力:
names(string[]) - 次の項目を返します。
- 指定されたエンティティ
- 指定されたエンティティ間のリレーション
- 存在しないノードは何も表示せずにスキップします
Claude Desktop での使用方法
セットアップ
以下を claude_desktop_config.json に追加します。
Docker
{
"mcpServers": {
"memory": {
"command": "docker",
"args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
}
}
}
NPX
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}
カスタム設定を使用した NPX
サーバーは、以下の環境変数を使用して設定できます。
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.json"
}
}
}
}
MEMORY_FILE_PATH:メモリを保存する JSON ファイルのパス(デフォルト:サーバーディレクトリ内のmemory.json)
システムプロンプト
メモリを活用するためのプロンプトは、ユースケースによって異なります。プロンプトを変更すると、作成するメモリの頻度や種類をモデルが判断しやすくなります。
チャットをパーソナライズするためのプロンプト例を以下に示します。このプロンプトは、Claude.ai Project の「Custom Instructions」フィールドで使用できます。
Follow these steps for each interaction:
1. User Identification:
- You should assume that you are interacting with default_user
- If you have not identified default_user, proactively try to do so.
2. Memory Retrieval:
- Always begin your chat by saying only "Remembering..." and retrieve all relevant information from your knowledge graph
- Always refer to your knowledge graph as your "memory"
3. Memory
- While conversing with the user, be attentive to any new information that falls into these categories:
a) Basic Identity (age, gender, location, job title, education level, etc.)
b) Behaviors (interests, habits, etc.)
c) Preferences (communication style, preferred language, etc.)
d) Goals (goals, targets, aspirations, etc.)
e) Relationships (personal and professional relationships up to 3 degrees of separation)
4. Memory Update:
- If any new information was gathered during the interaction, update your memory as follows:
a) Create entities for recurring organizations, people, and significant events
b) Connect them to the current entities using relations
b) Store facts about them as observations
ビルド
Docker:
docker build -t mcp/memory -f src/Dockerfile .
スタンドアロンパッケージとしての使用方法
スタンドアロンパッケージとして使用するには、次のようにします。
npm install mcp-memory-server
または、npx から直接実行します。
npx mcp-memory-server
ライセンス
この MCP サーバーは MIT License の下でライセンスされています。MIT License の利用規約に従うことを条件として、ソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリの LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。