メモリメッシュ
MemoryMeshは、テキストベースのRPGやインタラクティブなストーリーテリングに特化したAIモデル向けに設計されたナレッジグラフサーバーです。AIが会話全体を通して一貫性のある構造化された記憶を維持し、より豊かでダイナミックなインタラクションを実現できるよう支援します。
このプロジェクトは、MCP サーバー リポジトリのKnowledge Graph Memory Serverをベースとしており、そのコア機能が保持されています。
重要
v0.2.7
以降、スキーマのデフォルトの場所はdist/data/schemas
に変更されました。この場所は将来変更される予定はありませんが、以前のバージョンからアップデートする場合は、スキーマファイルを新しい場所に移動してください。
クイックリンク
概要
MemoryMeshは、AIモデル向けの構造化情報の構築と管理を可能にするローカルナレッジグラフサーバーです。テキストベースのRPGに特に適していますが、その柔軟な設計により、ソーシャルネットワークシミュレーション、組織計画、構造化データを扱うあらゆるシナリオなど、様々なアプリケーションに活用できます。
主な特徴
- **動的スキーマベースのツール:**スキーマを使用してデータ構造を定義すると、MemoryMesh はデータを追加、更新、削除するためのツールを自動的に生成します。
- **直感的なスキーマ設計:**必須フィールド、列挙型、関係定義を使用して、AI がノードを生成および接続できるようにガイドするスキーマを作成します。
- **AI ガイダンスのメタデータ:**メタデータを使用してコンテキストと構造を提供し、AI がデータ内の意味と関係を理解できるようにします。
- **リレーションシップの処理:**スキーマ内でリレーションシップを定義して、AI が関連するデータ ポイント (ノード) 間の接続 (エッジ) を作成するようにします。
- 有益なフィードバック: AI にエラー フィードバックを提供し、AI が間違いから学習してナレッジ グラフとのやり取りを改善できるようにします。
- **イベント サポート:**イベント システムは操作を追跡し、ナレッジ グラフがどのように変更されているかについての洞察を提供します。
ノード
ノードはナレッジグラフ内のエンティティまたは概念を表します。各ノードには以下の要素が含まれます。
name
: 一意の識別子。nodeType
: スキーマによって定義されるノードのタイプ (例:npc
、artifact
、location
)。metadata
: ノードに関する詳細を説明する文字列の配列。weight
: (オプション) 関係の強さを表す 0 から 1 までの数値。デフォルトは 1 です。
例のノード:
エッジ
エッジはノード間の関係を表します。各エッジには以下の要素が含まれます。
from
: ソースノードの名前。to
: ターゲットノードの名前。edgeType
: 関係のタイプ (例:owns
、located_in
)。
スキーマ
スキーマはMemoryMeshの核となる要素です。スキーマはデータの構造を定義し、ツールの自動生成を促します。
スキーマファイルの場所
スキーマファイル( .schema.json
)を、ビルドしたMemoryMeshプロジェクトのdist/data/schemas
ディレクトリに配置します。MemoryMeshは起動時にこれらのファイルを自動的に検出し、処理します。
スキーマ構造
ファイル名: [name].schema.json
。たとえば、「npc」を定義するスキーマの場合、ファイル名はadd_npc.schema.json
になります。
name
- メモリ内のスキーマとノード タイプの識別子。重要: スキーマ名が認識されるには、add_
で始まる必要があります。description
-add_<name>
ツールの説明として使用され、AI のコンテキストを提供します。 (delete
ツールとupdate
ツールには一般的な説明があります)properties
- 各プロパティには、そのタイプ、説明、および追加の制約が含まれます。property
type
- サポートされる値はstring
またはarray
です。description
- エンティティの目的について AI をガイドするのに役立ちます。required
- ブール値。truetrue
場合、 AIはノードを作成するときにこのプロパティを強制的に提供します。enum
- 文字列の配列。存在する場合、 AIは指定されたオプションのいずれかを選択する必要があります。relationship
- 別のノードへの接続を定義します。プロパティが必須であり、関係がある場合、 AIは常にノードと対応するエッジの両方を作成します。edgeType
- 作成する関係のタイプ。description
- 関係の目的について AI を導くのに役立ちます。
additionalProperties
- ブール値。truetrue
場合、AI は必須またはオプションとして定義された属性以外に追加の属性を追加できます。
サンプルスキーマ (add_npc.schema.json):
このスキーマに基づいて、MemoryMesh は以下を自動的に作成します。
- add_npc: 新しい NPC ノードを追加します。
- update_npc: 既存の NPC ノードを変更します。
- delete_npc: NPC ノードを削除します。
MemoryMesh には、テキストベースの RPG 用に設計された 11 個の構築済みスキーマが含まれており、ゲーム開発にすぐに使用できる基盤を提供します。
スキーママネージャーツール
MemoryMeshには、スキーマの作成と編集を簡素化するSchemaManagerツールが含まれています。視覚的なインターフェースにより、JSONを直接記述することなく、データ構造を簡単に定義できます。
ダイナミックツール
MemoryMeshは、動的なツールを通じてナレッジグラフとのインタラクションを簡素化します。これらのツールは手動でコーディングするのではなく、スキーマ定義から直接自動生成されます。つまり、スキーマを使用してデータの構造を定義すると、MemoryMeshは特定のデータ構造に合わせてカスタマイズされたツールセットをインテリジェントに作成します。
**次のように考えてください。**ブループリント (スキーマ) を提供すると、MemoryMesh はそのブループリントに基づいて要素を構築、変更、削除するために必要なツールを自動的に構築します。
舞台裏ではどのように機能するのでしょうか?
MemoryMeshには、スキーマ定義を読み取るインテリジェントなシステムが搭載されています。このシステムは、エンティティのプロパティやそれらの関係性など、定義された構造を分析します。この分析に基づいて、各エンティティタイプに対応するツールセットを自動的に作成します。
- **
add_<entity>
:**エンティティの新しいインスタンスを作成するためのツール。 - **
update_<entity>
:**既存のエンティティを変更するためのツール。 - **
delete_<entity>
:**エンティティを削除するためのツール。
これらのツールは、MemoryMesh 内の中央ハブを通じて利用できるようになり、接続されたクライアントや AI から簡単にアクセスして使用できるようになります。
本質的に、MemoryMesh の動的ツール システムは、ナレッジ グラフを管理するための強力かつ効率的な方法を提供し、データ操作の基本的なメカニズムではなく、アプリケーションのコンテンツとロジックに集中できるようにします。
メモリファイル
デフォルトでは、データはdist/data/memory.json
内の JSON ファイルに保存されます。
メモリビューア
メモリビューアは、MemoryMeshが管理するナレッジグラフの内容を視覚化および検査するために設計された独立したツールです。ノード、エッジ、そしてそれらのプロパティを調べるためのユーザーフレンドリーなインターフェースを提供します。
主な機能:
- グラフの視覚化: ナレッジ グラフをインタラクティブなノード リンク ダイアグラムとして表示します。
- ノード検査: ノードを選択して、そのノードタイプ、メタデータ、接続されたエッジを表示します。
- エッジ探索: edgeType や方向など、ノード間の関係を調べます。
- 検索とフィルタリング: 特定のノードをすばやく見つけたり、タイプ別にフィルタリングしたりできます。
- テーブル ビュー: 特定のノードとエッジ、またはすべてを一度に簡単に検索して検査できます。
- 生の JSON ビュー: メモリ ファイルから生の JSON データを表示できます。
- 統計パネル: ナレッジ グラフに関する主要なメトリックと情報 (ノードの合計数、エッジの合計数、ノード タイプ、エッジ タイプ) を提供します。
- 検索とフィルター: ノード タイプまたはエッジ タイプでフィルターし、ノード、エッジ、またはその両方を表示するかどうかをフィルターできます。
メモリビューアへのアクセス
メモリビューアはスタンドアロンのウェブアプリケーションです。メモリビューアに関する議論
メモリビューアの使用
- メモリ ファイルの選択: メモリ ビューアーで、[メモリ ファイルの選択] ボタンをクリックします。
- ファイルの選択: MemoryMesh プロジェクト ディレクトリに移動し、
memory.json
ファイル (デフォルトではdist/data/memory.json
にあります) を選択します。 - 探索: メモリ ビューアーはナレッジ グラフの内容を読み込んで表示します。
メモリフロー
プロンプト
最適な結果を得るには、Claude の「プロジェクト」機能とカスタム指示をご利用ください。以下は、開始時に使用できるプロンプトの例です。
チャット内で直接 AI に特定のアクションを実行するよう指示することもできます。
さまざまなプロンプトを試して、ユースケースに最適なものを見つけてください。
例
- カスタム命令を使用した簡単な例。
- 視覚化を伴う例*(機能の一部ではありません)*
いくつかの都市、いくつかのNPC、街の周りの探索できる場所をいくつか追加し、どこかに1つか2つの遺物を隠します。
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の MemoryMesh を自動的にインストールするには:
前提条件
- **Node.js:**バージョン18以上。nodejs.orgからダウンロードできます。
- **npm:**通常、Node.js に含まれています。
- Claude for Desktop: claude.ai/downloadから最新バージョンがインストールされていることを確認してください。
インストール手順
- リポジトリをクローンします。
- 依存関係をインストールします:
- プロジェクトをビルドします。このコマンドは、TypeScript コードを
dist
ディレクトリ内の JavaScript にコンパイルし、サンプル スキーマとデータ ファイルもそこにコピーします。 - ファイルのコピーを確認する(オプション):
- ビルド プロセスでは、
data
フォルダーがdist
に自動的にコピーされます。 dist/data
が存在し、.json
ファイルが含まれていることを確認してください。また、dist/data/schemas
が存在し、.schema.json
ファイルが含まれていることも確認してください。
- ビルド プロセスでは、
- Claude デスクトップを設定します。Claude Desktop 構成ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServers
セクションにmemorymesh
のエントリを追加します。以下の設定オプションから1つ選択できます。
/ABSOLUTE/PATH/TO/YOUR/PROJECT/``memorymesh
プロジェクト ディレクトリへの実際の絶対パスに置き換えます。- 例 (macOS):
- 例 (Windows):
- macOS:
- **Claude Desktop を再起動します。**変更を有効にするには、Claude Desktop を完全に再起動します。
インストールの確認
- Claude Desktop を起動します。
- 新しいチャットを開きます。
- 右上隅にあるMCPプラグインアイコンを探してください。そこに表示されていれば、設定は正しい可能性があります。
- アイコンをクリックします。接続されたサーバーのリストに「memorymesh」が表示されます。
- アイコンをクリックします。ツール(例:
add_npc
、update_npc
など)がリストに表示されている場合、サーバーは正常に動作しており、ツールが正しく公開されています。
更新中
アップデートの前に、メモリ データが失われないように、必ずdist/data
ディレクトリをバックアップしてください。
トラブルシューティング
- Claude にサーバーが表示されない:
claude_desktop_config.json
内のパスを再確認してください。パスが絶対パスであり、正しいことを確認してください。dist
ディレクトリが存在し、index.js
を含むコンパイルされた JavaScript ファイルが含まれていることを確認します。- Claude Desktop のログでエラーを確認します。
- macOS:
~/Library/Logs/Claude/mcp-server-memorymesh.log
(およびmcp.log
) - Windows: (おそらく
%AppData%\Claude
下のLogs
フォルダ内)
- macOS:
- ツールが表示されない:
npm run build
コマンドがエラーなしで完了したことを確認してください。- スキーマ ファイルが
dist/data/schemas
に正しく配置され、正しい命名規則 (add_[entity].schema.json
) に従っていることを確認します。 - 初期化中にエラーが発生していないか、サーバーのコンソール出力またはログを確認してください。
詳細設定
MemoryMesh では、基本的な設定以外にも動作をカスタマイズする方法がいくつか用意されています。
変数
/config/config.ts
でデフォルト設定を上書きすることができます。
- MEMORY_FILE: ナレッジグラフデータを保存するために使用されるJSONファイルへのパスを指定します。(デフォルト:
dist/data/memory.json
) - SCHEMAS_DIR: スキーマファイルディレクトリへのパス。(デフォルト:
dist/data/schemas/memory.json
)
制限事項
- ノードの削除: AIはナレッジグラフからノードを削除することに躊躇する場合があります。必要に応じてプロンプトを表示して削除を促してください。
貢献
貢献、フィードバック、そしてアイデアを歓迎します!このプロジェクトは、構造化データとAI推論機能を統合するための個人的な探求です。このプロジェクトをさらに推進したり、新しいプロジェクトのアイデアを思いついたりするために、貢献、フィードバック、そしてアイデアを歓迎します。
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
このプロジェクトは、MCP サーバー リポジトリの Knowledge Graph Memory Server に基づいており、そのコア機能を保持しています。
Related MCP Servers
- AsecurityAlicenseAqualityA customized MCP memory server that enables creation and management of a knowledge graph with features like custom memory paths and timestamping for capturing interactions via language models.Last updated -112JavaScriptMIT License
- -securityAlicense-qualityProvides knowledge graph functionality for managing entities, relations, and observations in memory with strict validation rules to maintain data consistency.Last updated -6PythonMIT License
- -securityAlicense-qualityEnhances the MCP memory server by implementing PouchDB for robust document storage and enabling the creation and management of a knowledge graph that captures interactions via language models.Last updated -JavaScriptMIT License
- -securityAlicense-qualityEnhanced knowledge graph memory server for AI assistants that uses Neo4j as the backend storage engine, enabling powerful graph queries and efficient storage of user interaction information with full MCP protocol compatibility.Last updated -TypeScriptMIT License