mcpField
M
Mcp Knowledge Graph

Mcp Knowledge Graph

ローカル
github.com/shanehollomanメモリ・ナレッジ88622 週間前に更新

Mcp Knowledge Graph について

MCP Knowledge Graph は、Claude などの AI モデルに永続的なローカルメモリを提供する MCP サーバーです。エンティティ、リレーション、オブザベーションを JSONL ファイルに保存し、ローカル開発での利用に重点を置いたフォークです。

主な機能

  1. 01エンティティ、リレーション、オブザベーションのメモリへの保存
  2. 02キーワード検索とメモリ名による完全一致の取得
  3. 03既定のマスターデータベースと名前付きデータベース
  4. 04.aim ディレクトリによるプロジェクトローカルな保存の自動判定
  5. 05_aim 安全マーカーによる無関係なファイルへの書き込み防止

活用シーン

  1. 01複数の会話にまたがるプロジェクトの背景や設定の保持
  2. 02仕事や個人など、トピックごとのメモリの分離
  3. 03単一のプロジェクトディレクトリに限定したメモリの管理

MCP 対応

本プロジェクトは MCP サーバーであり、aim_memory_store や aim_memory_search などのメモリ操作ツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"knowledge-graph": {
"command": "npx",
"args": [
"-y",
"mcp-knowledge-graph"
]
}
}
}
起動コマンドnpx -y mcp-knowledge-graph

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-knowledge-graph

ツール

10

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
contextstringいいえ任意の記憶コンテキストです。指定しない場合は、デフォルトでマスターデータベースが使用されます。'work'、'personal'、'health'、'basket-weaving' など、説明的な名前を指定してください。新しいコンテキストは自動的に作成されます。
locationenumいいえ任意の保存場所の上書き指定です。'project' はプロジェクト内の .aim ディレクトリを強制的に使用し、'global' はグローバルディレクトリを強制的に使用します。指定しない場合は自動検出されます。project | global
entitiesarrayはい

詳細

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/
  • 場所は自由に選べます。使いやすい場所を指定してください

ストレージの動作

ファイルの保存場所の優先順位:

  1. .aim があるプロジェクト - .aim/memory.jsonl を使用します(プロジェクトローカル)
  2. プロジェクトがない、または .aim がない場合 - 設定済みのグローバルディレクトリを使用します
  3. コンテキスト - 接尾辞を追加します: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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。