Neo4j Knowledge Graph

Neo4j Knowledge Graph

🚀 MCP Neo4j 记忆体服务器

MCP Neo4j 记忆体服务器是一款基于 Neo4j 图数据库的知识图谱存储与检索工具,专为 Model Context Protocol (MCP) 设计了记忆增强功能。它能够处理实体创建、关系建立以及观察信息的存储,还支持复杂的图数据查询,为知识图谱的管理提供了强大的支持。

🚀 快速开始

MCP Neo4j 记忆体服务器是为满足知识图谱存储与检索需求而设计的工具。它借助 Neo4j 图数据库的强大功能,为 MCP 提供了记忆增强能力,可高效处理各类知识图谱相关操作。

✨ 主要特性

  • 知识图谱存储:能将实体及其关系高效地存储在 Neo4j 图数据库中。
  • 复杂查询能力:可利用 Cypher 查询语言进行高效的图遍历和模式匹配。
  • 模糊搜索:结合 Fuse.js 和 Neo4j 全文索引,提供灵活的实体搜索功能。
  • 扩展性:支持集群部署,可处理大规模知识图谱。

📦 安装指南

通过 npm 安装:

npm install @jovanhsu/mcp-neo4j-memory-server

💻 使用示例

基础用法

创建实体及其关系:

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

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

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

// 创建实体
const createResult = await client.callTool('create_entities', {
entities: [
{
name: '李明',
entityType: '人物',
observations: ['喜欢编程', '使用TypeScript']
},
{
name: 'Google',
entityType: '公司',
observations: ['总部位于美国', '业务范围包括搜索、云计算等']
}
]
});

console.log('创建实体结果:', createResult);

// 建立关系
const relationResult = await client.callTool('create_relation', {
sourceEntityName: '李明',
targetEntityName: 'Google',
relationType: '工作于'
});

console.log('建立关系结果:', relationResult);

🔧 技术细节

数据模型

知识图谱在 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

为什么选择 Neo4j?

相比原始版本使用的 JSON 文件存储和 DuckDB 版本,Neo4j 具有以下优势:

  1. 原生图数据库:Neo4j 是专为图数据设计的数据库,非常适合知识图谱的存储与查询。
  2. 高性能查询:使用 Cypher 查询语言可以高效地进行复杂的图遍历和模式匹配。
  3. 关系优先:Neo4j 将关系作为一等公民,使得实体间的关系查询更加高效。
  4. 可视化能力:Neo4j 提供了内置的可视化工具,方便调试和理解知识图谱。
  5. 扩展性:支持集群部署,可以处理大规模知识图谱。

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

联系方式

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-20 11:09

相似服务问题