mcpField
M
MCP Memory with Redis Graph

MCP Memory with Redis Graph

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

MCP Memory with Redis Graph について

LLMとの会話の記憶をRedis Graphにナレッジグラフとして保存するMCPサーバーです。複数の記憶タイプ、検索、記憶間の関連付けに対応します。

主な機能

  1. 01複数タイプの記憶を保存
  2. 02タイプやキーワードで記憶を検索
  3. 03記憶間の関連を作成・取得
  4. 04記憶の更新と削除

活用シーン

  1. 01会話の長期的なコンテキスト保持
  2. 02プロジェクト情報や問題の記録
  3. 03関連するタスクや記憶の連結

MCP 対応

MCPサーバーは、記憶グラフ項目の保存、取得、検索、更新、削除のほか、記憶間の関連を作成・取得するツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"exec"
]
}
}
}
起動コマンドdocker run -i --rm exec

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

パッケージ
ociexec

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Redis Graph を使用した MCP メモリー

このプロジェクトは、長期メモリーの保存に Redis Graph を使用する、LLM との会話向けメモリーシステムを実装します。

セットアップ

前提条件
  • Docker と Docker Compose
  • Node.js(v16 以降)
RedisGraph を使用して Redis を実行する
  1. RedisGraph モジュールを含む Redis コンテナを起動します。
docker-compose up -d
  1. RedisGraph モジュールを含む Redis が実行中であることを確認します。
docker exec -it mcp-memory-redis-1 redis-cli

Redis CLI を開いたら、RedisGraph モジュールが読み込まれているか確認できます。

127.0.0.1:6379> MODULE LIST

読み込まれたモジュールの一覧に RedisGraph が表示されます。

アプリケーションから Redis に接続する

アプリケーションは src/index.ts の設定を使用して Redis に接続します。デフォルトでは、次の設定で接続します。

  • ホスト:localhost
  • ポート:6379

これらの設定を変更する必要がある場合は、src/index.ts の Redis クライアント設定を更新してください。

使用方法

  1. 依存関係をインストールします。
npm install
  1. アプリケーションを起動します。
npm start

メモリーツール

アプリケーションには、メモリーを管理するためのツールが用意されています。

  • create_memory:新しいメモリーを作成します
  • retrieve_memory:ID を指定してメモリーを取得します
  • search_memories:種類またはキーワードでメモリーを検索します
  • update_memory:既存のメモリーを更新します
  • delete_memory:メモリーを削除します
  • create_relation:メモリー間の関係を作成します
  • get_related_memories:特定のメモリーに関連するメモリーを取得します

使用例

// Create a memory
const memory = await memoryService.createMemory({
  type: MemoryNodeType.CONVERSATION,
  content: 'This is a conversation about Redis Graph',
  title: 'Redis Graph Discussion',
});

// Search for memories
const memories = await memoryService.searchMemories(
  { keyword: 'Redis' },
  { limit: 10, orderBy: 'created', direction: 'DESC' },
);

概要

MCP Memory は、LLM との会話からメモリーを保存および取得するためのツールを提供するサーバーです。バックエンドとして Redis Graph を使用してメモリーのナレッジグラフを作成し、情報間の複雑な関係を扱えるようにします。

機能

  • さまざまな種類のメモリーを保存します(会話、プロジェクト、タスク、課題、設定、財務、やること)
  • メモリー間の関係を作成します
  • さまざまな条件に基づいてメモリーを検索および取得します
  • メモリーを更新および削除します

メモリーの種類

このシステムは、さまざまな状況に対応できるよう、複数の種類のメモリーをサポートしています。

  • 会話:一般的な会話のメモリー
  • トピック:話し合った特定のトピック
  • プロジェクト:プロジェクトの詳細(例:法定通貨ベンダーを無効化するスクリプト)
  • タスク:実行する具体的なタスク
  • 課題:バグやインシデント
  • 設定:設定の詳細(例:手数料に関する製品設定)
  • 財務:金融に関するアドバイスや情報
  • やること:やること項目

使用例

1. プロジェクトの詳細

プロジェクト、設定、システムに関する情報を保存します。

create_memory(
  type: "Project",
  name: "Fiat Vendor Disable Script",
  description: "Script to disable fiat vendors in the system",
  content: "The script is located at /scripts/disable-vendor.js and takes vendor ID as parameter"
)
2. 課題への対応

バグやインシデントを記録します。

create_memory(
  type: "Issue",
  title: "Payment Processing Timeout",
  severity: "high",
  status: "open",
  content: "Payments are timing out when processing large transactions over $10,000"
)
3. 個人向けの金融アドバイス

金融に関するアドバイスを保存します。

create_memory(
  type: "Finance",
  category: "Investment",
  content: "Recommendation to allocate 60% to index funds, 30% to bonds, and 10% to speculative investments",
  metadata: {
    riskProfile: "moderate",
    timeHorizon: "long-term"
  }
)
4. 仕事関連のやること項目

実行するタスクを保存します。

create_memory(
  type: "Todo",
  title: "Update payment network documentation",
  priority: "medium",
  completed: false,
  content: "Update the documentation to include the new payment networks: Visa Direct and MasterCard Send"
)

メモリー間の関係

メモリー間の関係を作成して、ナレッジグラフを構築できます。

create_relation(
  fromId: "issue-123",
  toId: "project-456",
  type: "PART_OF"
)

メモリーの検索

さまざまな条件に基づいてメモリーを検索します。

search_memories(
  type: "Project",
  keyword: "payment",
  limit: 10
)

アーキテクチャ

このシステムは Redis Graph を使用して、グラフデータベースのノードとしてメモリーを保存します。各メモリーはプロパティを持つノードであり、メモリー間の関係はグラフ内のエッジです。

MCP サーバーはメモリーグラフを操作するためのツールを提供し、LLM が必要に応じて情報を保存および取得できるようにします。

ライセンス

ISC

Redis Graph の操作

Redis CLI ヘルパーの使用

Redis に接続し、一般的な RedisGraph コマンドを表示するヘルパースクリプトを用意しています。

npm run redis:cli

メモリーグラフを操作する際に便利なコマンドの一覧を含む Redis CLI セッションが開きます。

グラフの確認

メモリーグラフの現在の状態を確認するには、次を実行します。

npm run check:graph

グラフ内のすべてのノード、財務メモリー、関係が表示されます。

グラフの詳細な確認

グラフのスキーマと内容をさらに詳しく確認するには、次を実行します。

npm run inspect:graph
よく使用する RedisGraph コマンド

redis-cli で実行できる便利なコマンドを以下に示します。

  1. すべてのグラフを一覧表示します。

    GRAPH.LIST
    
  2. すべてのノード数を数えます。

    GRAPH.QUERY memory "MATCH (n) RETURN count(n)"
    
  3. 財務メモリーを表示します。

    GRAPH.QUERY memory "MATCH (n:Finance) RETURN n.id, n.title, n.content"
    
  4. 特定の内容を検索します。

    GRAPH.QUERY memory "MATCH (n) WHERE n.content CONTAINS 'debit card' RETURN n.id, n.type, n.content"
    
  5. 関係を表示します。

    GRAPH.QUERY memory "MATCH (a)-[r]->(b) RETURN a.id, type(r), b.id"
    

Docker で実行する

MCP Memory サーバーを Docker で実行するには、次のコマンドを実行します。

# Build the Docker image
docker build -t mcp/memory .

# Run the container on the same network as Redis
docker run --rm -i --network=mcp-memory_default -e REDIS_URL=redis://redis:6379 mcp/memory

テスト

いくつかのテストスクリプトを用意しています。

# Test Redis connection
npm run test:redis

# Test memory operations
npm run test:memory

# Test memory service
npm run test:service

コメント

MCP は初めてですか?

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

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