mcpField
M
MCP Neo4j Knowledge Graph Memory Server

MCP Neo4j Knowledge Graph Memory Server

本地服务
github.com/JovanHsu记忆与知识2385 周前更新

关于 MCP Neo4j Knowledge Graph Memory Server

基于 Neo4j 图数据库的 MCP 记忆服务,用于存储和检索 AI 助手与用户交互中的信息。它是官方 Knowledge Graph Memory Server 的增强版本,适合构建复杂的知识图谱应用。

主要功能

  1. 01基于 Neo4j 的图数据库存储
  2. 02实体、关系和观察的增删改查
  3. 03模糊搜索与精确匹配
  4. 04支持 Cypher 图查询与遍历
  5. 05提供 Docker 部署方式

适用场景

  1. 01为 AI 助手保存跨会话的长期记忆
  2. 02构建需要复杂关系查询的知识图谱
  3. 03在 Claude 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

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

来自项目 README

MCP Neo4j Knowledge Graph Memory Server

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. Fork本仓库
  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文件。

联系方式

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。