mcpField
M
MCP Neo4j Knowledge Graph Memory Server

MCP Neo4j Knowledge Graph Memory Server

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

MCP Neo4j Knowledge Graph Memory Server について

AI アシスタントとユーザーのやり取りから得た情報を、Neo4j グラフデータベースに保存して検索する MCP メモリサーバーです。公式の Knowledge Graph Memory Server を拡張したもので、複雑なナレッジグラフを扱うアプリケーションに適しています。

主な機能

  1. 01Neo4j によるグラフデータベースでの保存
  2. 02エンティティ、リレーション、オブザベーションの作成・参照・更新・削除
  3. 03あいまい検索と完全一致検索
  4. 04Cypher によるグラフクエリとトラバーサル
  5. 05Docker を使ったデプロイ

活用シーン

  1. 01セッションをまたいだ AI アシスタントの長期記憶の保持
  2. 02複雑な関係性を扱うナレッジグラフの構築
  3. 03Claude Desktop とグラフデータベースの記憶の接続

MCP 対応

MCP プロトコルに対応したメモリサーバーです。MCP クライアントから、エンティティ、リレーション、オブザベーションの読み書きを呼び出せます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"neo4j-memory-server-jovanhsu": {
"command": "npx",
"args": [
"-y",
"@jovanhsu/mcp-neo4j-memory-server"
]
}
}
}
起動コマンドnpx -y @jovanhsu/mcp-neo4j-memory-server

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

パッケージ
npm@jovanhsu/mcp-neo4j-memory-server

ツール

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

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

詳細

MCP Neo4j ナレッジグラフメモリーサーバー

npm version License: MIT TypeScript Neo4j

概要

MCP Neo4j Knowledge Graph Memory Serverは、Neo4jグラフデータベースを基盤とするナレッジグラフメモリーサーバーです。AI アシスタントとユーザーとのやり取りから得られる情報を保存、検索します。このプロジェクトは、公式のKnowledge Graph Memory Serverを強化したバージョンで、バックエンドのストレージエンジンとしてNeo4jを使用します。

Neo4jをストレージバックエンドとして使用することで、より強力なグラフクエリ機能、優れたパフォーマンスと拡張性を実現します。特に、複雑なナレッジグラフアプリケーションの構築に適しています。

特長

  • 🚀 Neo4jを基盤とする高性能なグラフデータベースストレージ
  • 🔍 強力なあいまい検索と完全一致機能
  • 🔄 エンティティ、関係、観察の完全なCRUD操作
  • 🌐 MCPプロトコルと完全互換
  • 📊 複雑なグラフクエリとトラバーサルに対応
  • 🐳 デプロイしやすいDocker対応

インストール

前提条件
  • Node.js >= 22.0.0
  • Neo4jデータベース(ローカルまたはリモート)
npmでインストール
# 全局安装
npm install -g @jovanhsu/mcp-neo4j-memory-server

# 或作为项目依赖安装
npm install @jovanhsu/mcp-neo4j-memory-server
Dockerを使用
# 使用docker-compose启动Neo4j和Memory Server
git clone https://github.com/JovanHsu/mcp-neo4j-memory-server.git
cd mcp-neo4j-memory-server
docker-compose up -d
環境変数の設定

サーバーは以下の環境変数で設定します。

環境変数説明デフォルト値
NEO4J_URINeo4jデータベースのURIbolt://localhost:7687
NEO4J_USERNeo4jのユーザー名neo4j
NEO4J_PASSWORDNeo4jのパスワードpassword
NEO4J_DATABASENeo4jデータベース名neo4j

Claudeとの連携

Claude Desktopでの設定

claude_desktop_config.jsonに以下の設定を追加します。

{
  "mcpServers": {
    "graph-memory": {
      "command": "npx",
      "args": [
        "-y",
        "@izumisy/mcp-neo4j-memory-server"
      ],
      "env": {
        "NEO4J_URI": "neo4j://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "password",
        "NEO4J_DATABASE": "memory"
      }
    }
  }
}
Claude WebでMCP Inspectorを使用
  1. MCP Inspectorをインストールします
  2. Neo4j Memory Serverを起動します。
    npx @jovanhsu/mcp-neo4j-memory-server
    
  3. 別のターミナルでMCP Inspectorを起動します。
    npx @modelcontextprotocol/inspector npx @jovanhsu/mcp-neo4j-memory-server
    
  4. ブラウザーでMCP Inspectorのインターフェースにアクセスします

使用方法

Claudeのカスタム指示

Claudeのカスタム指示に以下の内容を追加します。

Follow these steps for each interaction:

1. User Identification:
   - You should assume that you are interacting with default_user
   - If you have not identified default_user, proactively try to do so.

2. Memory Retrieval:
   - Always begin your chat by saying only "Remembering..." and search relevant information from your knowledge graph
   - Create a search query from user words, and search things from "memory". If nothing matches, try to break down words in the query at first ("A B" to "A" and "B" for example).
   - Always refer to your knowledge graph as your "memory"

3. Memory
   - While conversing with the user, be attentive to any new information that falls into these categories:
     a) Basic Identity (age, gender, location, job title, education level, etc.)
     b) Behaviors (interests, habits, etc.)
     c) Preferences (communication style, preferred language, etc.)
     d) Goals (goals, targets, aspirations, etc.)
     e) Relationships (personal and professional relationships up to 3 degrees of separation)

4. Memory Update:
   - If any new information was gathered during the interaction, update your memory as follows:
     a) Create entities for recurring organizations, people, and significant events
     b) Connect them to the current entities using relations
     b) Store facts about them as observations
APIの例

独自のアプリケーションでこのサーバーを使用する場合は、MCPプロトコルを介して通信できます。

import { McpClient } from '@modelcontextprotocol/sdk/client/mcp.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';

// 创建客户端
const transport = new StdioClientTransport({
  command: 'npx',
  args: ['-y', '@izumisy/mcp-neo4j-memory-server'],
  env: {
    NEO4J_URI: 'bolt://localhost:7687',
    NEO4J_USER: 'neo4j',
    NEO4J_PASSWORD: 'password',
    NEO4J_DATABASE: 'neo4j'
  }
});

const client = new McpClient();
await client.connect(transport);

// 创建实体
const result = await client.callTool('create_entities', {
  entities: [
    {
      name: '用户',
      entityType: '人物',
      observations: ['喜欢编程', '使用TypeScript']
    }
  ]
});

console.log(result);

Neo4jを選ぶ理由

元のバージョンで使用されていたJSONファイルストレージやDuckDBバージョンと比較すると、Neo4jには以下の利点があります。

  1. ネイティブなグラフデータベース:Neo4jはグラフデータ専用に設計されたデータベースであり、ナレッジグラフの保存とクエリに最適です
  2. 高性能なクエリ:Cypherクエリ言語を使用して、複雑なグラフトラバーサルやパターンマッチングを効率的に実行できます
  3. 関係を優先:Neo4jでは関係が第一級の要素として扱われるため、エンティティ間の関係を効率的にクエリできます
  4. 可視化機能:Neo4jには組み込みの可視化ツールがあり、ナレッジグラフのデバッグや理解に役立ちます
  5. 拡張性:クラスターでのデプロイに対応しており、大規模なナレッジグラフを処理できます

実装の詳細

データモデル

Neo4jにおけるナレッジグラフのストレージモデルは以下のとおりです。

(Entity:EntityType {name: "实体名称"})
(Entity)-[:HAS_OBSERVATION]->(Observation {content: "观察内容"})
(Entity1)-[:RELATION_TYPE]->(Entity2)
あいまい検索の実装

この実装では、Neo4jの全文検索機能とFuse.jsを組み合わせ、柔軟なエンティティ検索を実現しています。

  • Neo4jの全文検索インデックスを使用して初期検索を行います
  • Fuse.jsであいまいマッチング機能を追加します
  • 検索結果には完全一致と部分一致が含まれ、関連性順に並べ替えられます

開発

環境設定
# 克隆仓库
git clone https://github.com/JovanHsu/mcp-neo4j-memory-server.git
cd mcp-neo4j-memory-server

# 安装依赖
pnpm install

# 构建项目
pnpm build

# 开发模式(使用MCP Inspector)
pnpm dev
テスト
# 运行测试
pnpm test
リリース
# 准备发布
npm version [patch|minor|major]

# 发布到NPM
npm publish

貢献ガイド

コードの提供、問題の報告、改善案の提案を歓迎します。以下の手順に従ってください。

  1. このリポジトリをフォークします
  2. 特性ブランチを作成します (git checkout -b feature/amazing-feature)
  3. 変更をコミットします (git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします (git push origin feature/amazing-feature)
  5. Pull Requestを作成します

関連プロジェクト

ライセンス

本プロジェクトはMITライセンスのもとで提供されています。詳しくはLICENSEファイルをご覧ください。

お問い合わせ

コメント

MCP は初めてですか?

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

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