hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
ナレッジグラフメモリサーバー
ローカルナレッジグラフを用いた永続メモリの基本実装。これにより、Claude はチャットをまたいでユーザーに関する情報を記憶し、レッスンシステムを通じて過去のエラーから学習することができます。
コアコンセプト
エンティティ
エンティティはナレッジグラフの主要なノードです。各エンティティには以下の要素が含まれます。
- 一意の名前(識別子)
- エンティティの種類(例:「人」、「組織」、「イベント」)
- 観察リスト
例:
関係
関係は、実体間の有向的なつながりを定義します。関係は常に能動態で表現され、実体同士がどのように相互作用し、関係するかを説明します。
例:
観察
観察とは、ある実体に関する個別の情報です。観察対象には以下のものがあります。
- 文字列として保存
- 特定のエンティティに添付
- 個別に追加または削除可能
- アトミックである必要があります(観察ごとに1つの事実)
例:
教訓
レッスンは、エラーとその解決策に関する知識を蓄積する特別なエンティティです。各レッスンには以下の内容が含まれます。
- 一意の名前(識別子)
- エラーパターン情報(タイプ、メッセージ、コンテキスト)
- 解決手順と検証
- 成功率の追跡
- 環境的背景
- メタデータ(重大度、タイムスタンプ、頻度)
例:
API
ツール
- エンティティの作成
- ナレッジグラフに複数の新しいエンティティを作成する
- 入力:
entities
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
name
(文字列): エンティティ識別子entityType
(文字列): 型分類observations
(文字列[]): 関連する観測値
- 各オブジェクトには次のものが含まれます。
- 既存の名前を持つエンティティを無視します
- 関係を作成する
- エンティティ間に複数の新しい関係を作成する
- 入力:
relations
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
from
(文字列): ソースエンティティ名to
(文字列): ターゲットエンティティ名relationType
(文字列): 能動態における関係の種類
- 各オブジェクトには次のものが含まれます。
- 重複関係をスキップする
- 観察を追加する
- 既存のエンティティに新しい観察を追加する
- 入力:
observations
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
entityName
(文字列): 対象エンティティcontents
(文字列[]): 追加する新しい観察
- 各オブジェクトには次のものが含まれます。
- エンティティごとに追加された観測値を返します
- エンティティが存在しない場合は失敗します
- エンティティの削除
- エンティティとその関係を削除する
- 入力:
entityNames
(string[]) - 関連関係のカスケード削除
- エンティティが存在しない場合はサイレント操作
- 削除観測
- エンティティから特定の観察を削除する
- 入力:
deletions
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
entityName
(文字列): 対象エンティティobservations
(文字列[]): 削除する観測値
- 各オブジェクトには次のものが含まれます。
- 観測が存在しない場合はサイレント操作
- 関係を削除する
- グラフから特定の関係を削除する
- 入力:
relations
(オブジェクトの配列)- 各オブジェクトには次のものが含まれます。
from
(文字列): ソースエンティティ名to
(文字列): ターゲットエンティティ名relationType
(文字列): 関係の種類
- 各オブジェクトには次のものが含まれます。
- 関係が存在しない場合はサイレント操作
- グラフを読む
- ナレッジグラフ全体を読む
- 入力不要
- すべてのエンティティと関係を含む完全なグラフ構造を返します
- 検索ノード
- クエリに基づいてノードを検索する
- 入力:
query
(文字列) - 検索範囲:
- エンティティ名
- エンティティタイプ
- 観察内容
- 一致するエンティティとその関係を返します
- オープンノード
- 名前で特定のノードを取得する
- 入力:
names
(文字列[]) - 戻り値:
- 要求されたエンティティ
- 要求されたエンティティ間の関係
- 存在しないノードを黙ってスキップする
レッスン管理ツール
- レッスンを作成する
- エラーとその解決策から新しい教訓を作成する
- 入力:
lesson
(オブジェクト)- 内容:
name
(文字列):一意の識別子entityType
(文字列): 「lesson」である必要がありますobservations
(文字列[]): エラーと解決策に関するメモerrorPattern
(オブジェクト): エラーの詳細type
(文字列): エラーのカテゴリmessage
(文字列):エラーメッセージcontext
(文字列):エラーが発生した場所stackTrace
(文字列、オプション): スタックトレース
metadata
(オブジェクト):追加情報severity
(「低」 | 「中」 | 「高」 | 「重大」)environment
(オブジェクト):システムの詳細frequency
(数値):遭遇した回数successRate
(数値): ソリューションの成功率
verificationSteps
(配列): ソリューションの検証- 各ステップには次の内容が含まれます。
command
(文字列):実行するアクションexpectedOutput
(文字列): 期待される結果successIndicators
(string[]): 成功マーカー
- 各ステップには次の内容が含まれます。
- 内容:
- メタデータのタイムスタンプを自動的に初期化します
- すべての必須フィールドを検証します
- 類似エラーを見つける
- 類似のエラーとその解決策を見つける
- 入力:
errorPattern
(オブジェクト)- 内容:
type
(文字列): エラーカテゴリmessage
(文字列):エラーメッセージcontext
(文字列):エラーコンテキスト
- 内容:
- 成功率でソートされた一致するレッスンを返します
- エラーメッセージにあいまい一致を使用します
- レッスンの更新成功
- レッスンの成功追跡を更新する
- 入力:
lessonName
(文字列): 更新するレッスンsuccess
(ブール値): 解決策が機能したかどうか
- アップデート:
- 成功率(加重平均)
- 周波数カウンター
- 最終更新タイムスタンプ
- レッスンの推奨事項を取得する
- 現在の状況に適したレッスンを受ける
- 入力:
context
(文字列) - 検索範囲:
- エラーの種類
- エラーメッセージ
- エラーコンテキスト
- 授業観察
- 次の基準で並べ替えられたレッスンを返します:
- コンテキストの関連性
- 成功率
- 完全なソリューションの詳細が含まれています
ファイル管理
サーバーは現在、次の 2 種類のファイルを処理します。
memory.json
: 基本的なエンティティとリレーションを保存しますlesson.json
: エラーパターンを含むレッスンエンティティを保存します
パフォーマンスを維持するために、ファイルは 1000 行を超えると自動的に分割されます。
カーソルMCPクライアントのセットアップ
このメモリ サーバーを Cursor MCP クライアントと統合するには、次の手順に従います。
- リポジトリをクローンします。
- 依存関係をインストールします:
- プロジェクトをビルドします。
- サーバーを構成します。
- 構築されたサーバーファイルへのフルパスを見つけます:
/path/to/the/dist/index.js
- Node.jsを使用してサーバーを起動します:
node /path/to/the/dist/index.js
- カーソル内でアクティブ化:
- キーボードショートカット
Ctrl+Shift+P
を使用します - 「ウィンドウをリロード」と入力して選択します
- MCPサーバーが起動するまで数秒お待ちください
- プロンプトが表示されたらstdioタイプを選択します
これで、メモリ サーバーが Cursor MCP クライアントと統合され、使用できるようになります。
Claude Desktopでの使用
設定
claude_desktop_config.json に以下を追加します:
ドッカー
NPX
カスタム設定のNPX
サーバーは次の環境変数を使用して構成できます。
MEMORY_FILE_PATH
: メモリストレージ JSON ファイルへのパス (デフォルト: サーバー ディレクトリ内のmemory.json
)
システムプロンプト
メモリの利用に関するプロンプトはユースケースによって異なります。プロンプトを変更することで、モデルはメモリの頻度と種類を適切に判断できるようになります。
チャットのパーソナライズのためのプロンプトの例を以下に示します。このプロンプトは、 Claude.ai プロジェクトの「カスタム指示」フィールドで使用できます。
建物
ドッカー:
ライセンス
このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。
新しいツール
- レッスンを作成する
- エラーとその解決策から新しい教訓を作成する
- 入力:
lesson
(オブジェクト)- エラーパターン、解決手順、メタデータが含まれます
- 作成時間と更新を自動的に追跡します
- ソリューション手順が完了したことを確認します
- 類似エラーを見つける
- 類似のエラーとその解決策を見つける
- 入力:
errorPattern
(オブジェクト)- エラーの種類、メッセージ、コンテキストが含まれます
- 成功率でソートされた一致するレッスンを返します
- 関連するソリューションと検証手順が含まれています
- レッスンの更新成功
- レッスンの成功追跡を更新する
- 入力:
lessonName
(文字列): 更新するレッスンsuccess
(ブール値): 解決策が機能したかどうか
- 成功率と頻度の指標を更新
- レッスンの推奨事項を取得する
- 現在の状況に適したレッスンを受ける
- 入力:
context
(文字列) - 関連性と成功率で並べ替えられたレッスンを返します
- 完全なソリューションの詳細と検証手順が含まれています
このリポジトリの所有者にベースコードを提供してくれたことに感謝します。私はレッスンとファイル管理でそれを拡張しました。
本当にありがとうございます! https://github.com/modelcontextprotocol/servers jerome3o-anthropic https://github.com/modelcontextprotocol/servers/tree/main/src/memory
You must be authenticated.
Tools
チャット全体の情報を記憶し、ローカル ナレッジ グラフとレッスン管理を利用して過去のエラーから学習する永続メモリ システムを通じて、ユーザー インタラクションを強化します。
- Core Concepts
- API
- File Management
- Cursor MCP Client Setup
- Usage with Claude Desktop
- BIG CREDITS TO THE OWNER OF THIS REPO FOR THE BASE CODE I ENHANCED IT WITH LESSONS AND FILE MANAGEMENT