Mcp Knowledge Graph について
MCP Knowledge Graph は、Claude などの AI モデルに永続的なローカルメモリを提供する MCP サーバーです。エンティティ、リレーション、オブザベーションを JSONL ファイルに保存し、ローカル開発での利用に重点を置いたフォークです。
主な機能
- 01エンティティ、リレーション、オブザベーションのメモリへの保存
- 02キーワード検索とメモリ名による完全一致の取得
- 03既定のマスターデータベースと名前付きデータベース
- 04.aim ディレクトリによるプロジェクトローカルな保存の自動判定
- 05_aim 安全マーカーによる無関係なファイルへの書き込み防止
活用シーン
- 01複数の会話にまたがるプロジェクトの背景や設定の保持
- 02仕事や個人など、トピックごとのメモリの分離
- 03単一のプロジェクトディレクトリに限定したメモリの管理
MCP 対応
本プロジェクトは MCP サーバーであり、aim_memory_store や aim_memory_search などのメモリ操作ツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| context | string | いいえ | 任意の記憶コンテキストです。指定しない場合は、デフォルトでマスターデータベースが使用されます。'work'、'personal'、'health'、'basket-weaving' など、説明的な名前を指定してください。新しいコンテキストは自動的に作成されます。 |
| location | enum | いいえ | 任意の保存場所の上書き指定です。'project' はプロジェクト内の .aim ディレクトリを強制的に使用し、'global' はグローバルディレクトリを強制的に使用します。指定しない場合は自動検出されます。project | global |
| entities | array | はい |
詳細
MCP ナレッジグラフ
ローカルナレッジグラフを通じた、AI モデルの永続メモリです。
エンティティ、関係、観察内容を使って、会話をまたいで情報を保存・取得できます。Claude Code/Desktop や、MCP 互換のあらゆる AI プラットフォームで動作します。
「.aim」および「aim_」の接頭辞を使用する理由
AIM は AI Memory(AI メモリ)を表し、このシステムの中核となる概念です。3 つの AIM 要素により、明確な整理と安全性を実現します。
.aimディレクトリ:AI メモリファイルを整理し、簡単に識別できるようにしますaim_ツールの接頭辞:複数のツールを使う構成で、関連するメモリ機能をまとめます_aim安全マーカー:各メモリファイルの先頭に{"type":"_aim","source":"mcp-knowledge-graph"}を記載し、無関係な JSONL ファイルを誤って上書きするのを防ぎます
この一貫した AIM の命名規則により、どのディレクトリ、ツール、ファイルが AI メモリシステムに属するのかが明確になります。
重要:.aim ディレクトリと _aim ファイルマーカーの違い
名前が似ている、異なる 2 つのものです。
.aim= プロジェクトローカルのディレクトリ名(プロジェクトの検出には、必ず.aimという名前を付ける必要があります)_aim= ファイルの安全マーカー(JSONL ファイル内に記載します:{"type":"_aim","source":"mcp-knowledge-graph"})
プロジェクトローカルストレージの場合:
- プロジェクトのルートにあるディレクトリ名は、必ず
.aimにしてください - 例:
my-project/.aim/memory.jsonl - システムはこの正確な名前を探します
グローバルストレージ(--memory-path)の場合:
- 任意のディレクトリを使用できます
- 例:
~/yourusername/.aim/、~/memories/、~/Dropbox/ai-memory/、~/Documents/ai-data/ - 場所は自由に選べます。使いやすい場所を指定してください
ストレージの動作
ファイルの保存場所の優先順位:
.aimがあるプロジェクト -.aim/memory.jsonlを使用します(プロジェクトローカル)- プロジェクトがない、または .aim がない場合 - 設定済みのグローバルディレクトリを使用します
- コンテキスト - 接尾辞を追加します:
memory-work.jsonl、memory-personal.jsonl
安全システム:
- すべてのメモリファイルの先頭には
{"type":"_aim","source":"mcp-knowledge-graph"}が記載されます - このマーカーがないファイルへの書き込みをシステムが拒否します
- 無関係な JSONL ファイルを誤って上書きするのを防ぎます
マスターデータベースの概念
マスターデータベースは主要なメモリストアで、特定のデータベースが指定されていない場合にデフォルトで使用されます。一覧では常に default という名前で表示され、memory.jsonl として保存されます。
- デフォルトの動作:別のデータベースを指定しない限り、すべてのメモリ操作でマスターデータベースを使用します
- 常に利用可能:プロジェクトローカルとグローバルの両方の場所に存在します
- 主要ストレージ:すべての会話を通じて保持される、メインのナレッジグラフです
- 名前付きデータベース:特定のトピックを整理するための、任意の追加データベース(
work、personal、health)
主な機能
- マスターデータベース:すべての操作でデフォルトとして使用される、主要なメモリストア
- 複数のデータベース:トピック別にメモリを整理するための、任意の名前付きデータベース
- プロジェクト検出:
.aimディレクトリを使って、プロジェクトローカルのメモリを自動的に使用します - 保存場所の指定:操作でプロジェクトまたはグローバルストレージを強制的に使用できます
- 安全な操作:無関係なファイルを上書きしないための保護機能を内蔵しています
- データベースの検出:両方の場所にある、利用可能なすべてのデータベースを一覧表示します
クイックスタート
グローバルメモリ(推奨)
claude_desktop_config.json または .claude.json に追加します。一般的な方法は 2 つあります。
オプション 1:デフォルトの .aim ディレクトリ(シンプル)
{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/.aim"
]
}
}
}
オプション 2:Dropbox/クラウド同期(ポータブル)
複数のマシンからメモリにアクセスするには、同期フォルダーを使用します。この MCP サーバーの作者も、自身のメモリをこの方法で管理しています。
{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/Dropbox/ai-memory"
]
}
}
}
これにより、指定したディレクトリにメモリファイルが作成されます。
memory.jsonl- マスターデータベース(すべての操作でデフォルトとして使用)memory-work.jsonl- 仕事用データベースmemory-personal.jsonl- 個人用データベース- など
プロジェクトローカルメモリ
任意のプロジェクトで、.aim ディレクトリを作成します。
mkdir .aim
このプロジェクトから実行すると、メモリツールはグローバルストレージの代わりに .aim/memory.jsonl(プロジェクトローカルのマスターデータベース)を自動的に使用します。
AI によるデータベースの使用方法
設定が完了すると、AI モデルはデフォルトでマスターデータベースを使用します。または、context パラメーターで名前付きデータベースを指定できます。新しいデータベースは自動的に作成されるため、セットアップは不要です。
// Master Database (default - no context needed)
aim_memory_store({
entities: [{
name: "John_Doe",
entityType: "person",
observations: ["Met at conference"]
}]
})
// Work database
aim_memory_store({
context: "work",
entities: [{
name: "Q4_Project",
entityType: "project",
observations: ["Due December 2024"]
}]
})
// Personal database
aim_memory_store({
context: "personal",
entities: [{
name: "Mom",
entityType: "person",
observations: ["Birthday March 15th"]
}]
})
// Master database in specific location
aim_memory_store({
location: "global",
entities: [{
name: "Important_Info",
entityType: "reference",
observations: ["Stored in global master database"]
}]
})
ファイル構成
グローバル設定:
/Users/yourusername/.aim/
├── memory.jsonl # Master Database (default)
├── memory-work.jsonl # Work database
├── memory-personal.jsonl # Personal database
└── memory-health.jsonl # Health database
プロジェクト設定:
my-project/
├── .aim/
│ ├── memory.jsonl # Project Master Database (default)
│ └── memory-work.jsonl # Project Work database
└── src/
利用可能なツール
aim_memory_store- 新しいメモリー(人物、プロジェクト、概念)を保存しますaim_memory_add_facts- 既存のメモリーに事実を追加しますaim_memory_link- 2 つのメモリーをリンクしますaim_memory_search- キーワードでメモリーを検索しますaim_memory_get- 正確な名前を指定して特定のメモリーを取得しますaim_memory_read_all- データベース内のすべてのメモリーを読み込みますaim_memory_list_stores- 利用可能なデータベースを一覧表示しますaim_memory_forget- メモリーを削除しますaim_memory_remove_facts- メモリーから特定の事実を削除しますaim_memory_unlink- メモリー間のリンクを削除します
パラメーター
context(任意)- 名前付きデータベース(work、personalなど)を指定します。デフォルトはマスターデータベースですlocation(任意)- 保存場所としてprojectまたはglobalを強制的に指定します。デフォルトでは自動検出されます
データベースの検出
aim_memory_list_stores を使って、利用可能なデータベースをすべて確認できます。
{
"project_databases": [
"default", // Master Database (project-local)
"project-work" // Named database
],
"global_databases": [
"default", // Master Database (global)
"work",
"personal",
"health"
],
"current_location": "project (.aim directory detected)"
}
重要なポイント:
- 「default」 = どちらの場所でもマスターデータベースです
- 現在の場所には、プロジェクトストレージとグローバルストレージのどちらを使用しているかが表示されます
- マスターデータベースはどこでも利用できます。これがプライマリメモリーストアです
- 名前付きデータベースは、特定のトピック向けに任意で追加できます
設定例
重要: メモリーファイルの保存場所を指定するには、必ず --memory-path を指定してください。
読み取り操作を自動承認する(推奨):
{
"mcpServers": {
"Aim-Memory-Bank": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph",
"--memory-path",
"/Users/yourusername/.aim"
],
"autoapprove": [
"aim_memory_search",
"aim_memory_get",
"aim_memory_read_all",
"aim_memory_list_stores"
]
}
}
}
トラブルシューティング
「File does not contain required _aim safety marker」エラー:
- ファイルがこのシステムに属していない可能性があります
- 手動で作成した JSONL ファイルでは、1 行目に
{"type":"_aim","source":"mcp-knowledge-graph"}が必要です - ファイルを手動で作成した場合は、
_aimマーカーを追加するか、ファイルを削除してシステムに再作成させてください
メモリーが予期しない場所に保存される場合:
.aimフォルダーがあるプロジェクトディレクトリ内にいるか確認してください(プロジェクトローカルストレージが使用されます)- そうでない場合は、設定済みのグローバルな
--memory-pathディレクトリが使用されます aim_memory_list_storesを使って、利用可能なすべてのデータベースと現在の場所を確認してくださいls .aim/またはls /Users/yourusername/.aim/を使って、メモリーファイルを確認してください
類似したデータベースが多すぎる場合:
- AI モデルは一貫した名前を使おうとしますが、異なる名前を作成することがあります
- 必要に応じて、不要なデータベースファイルを手動で削除してください
- AI にシンプルで一貫したデータベース名を使うよう促してください
- ご注意ください:マスターデータベースは常にデフォルトで利用できます。名前付きデータベースは任意です
要件
- Node.js 22+
- MCP 互換の AI プラットフォーム
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。