使用说明
项目简介
'mcp-neo4j' 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供知识图谱形式的结构化记忆服务。它允许 LLM 通过标准化的 MCP 协议,利用工具接口来创建、读取、更新和删除知识图谱中的实体和关系,从而增强 LLM 的上下文理解和推理能力。该项目包含两个主要的服务器实现:
- 'mcp-neo4j-memory': 使用 Neo4j 图数据库存储知识图谱。
- 'mcp-json-memory': 使用 JSON 文件存储知识图谱。
- 'mcp-neo4j-cypher': 提供执行 Cypher 查询的工具,直接操作 Neo4j 数据库。
主要功能点
- 知识图谱存储与管理: 支持使用 Neo4j 图数据库或 JSON 文件作为知识图谱的存储后端。
- 实体和关系操作: 提供工具用于创建、删除、更新知识图谱中的实体和关系。
- 观察记录: 支持为实体添加观察记录,用于存储实体的相关信息。
- 图谱查询: 提供基本的关键词搜索和节点检索功能,方便 LLM 客户端获取相关上下文信息。
- Cypher 查询 (mcp-neo4j-cypher): 允许执行 Cypher 查询,灵活地从 Neo4j 数据库中检索和操作数据。
- MCP 协议标准: 遵循 MCP 协议,易于与任何兼容 MCP 协议的 LLM 客户端集成。
- Stdio 传输: 使用 Stdio 作为默认的传输协议,方便部署和运行。
安装步骤
-
克隆仓库:
git clone https://github.com/neo4j-contrib/mcp-neo4j.git cd mcp-neo4j -
安装依赖: 根据你选择的服务器类型,进入相应的目录安装依赖。
-
对于 'mcp-neo4j-memory' 和 'mcp-json-memory' (Node.js):
cd servers/mcp-neo4j-memory # 或 cd servers/mcp-json-memory npm install或使用 'yarn':
yarn install -
对于 'mcp-neo4j-cypher' (Python):
cd servers/mcp-neo4j-cypher pip install -r requirements.txt
-
-
构建项目 (Node.js 服务器): 对于 'mcp-neo4j-memory' 和 'mcp-json-memory',需要构建项目:
nx build mcp-neo4j-memory # 或 nx build mcp-json-memory构建产物会生成在 'dist/servers/mcp-neo4j-memory' 或 'dist/servers/mcp-json-memory' 目录。
服务器配置
以下是 MCP 客户端连接 'mcp-neo4j-memory' 和 'mcp-json-memory' 服务器的配置示例 (JSON 格式):
1. mcp-neo4j-memory 服务器配置:
{ "serverName": "mcp-neo4j-memory", // 服务器名称,用于客户端识别 "command": "./dist/servers/mcp-neo4j-memory/main.js", // 启动服务器的命令,根据实际路径调整 "args": [], // 启动参数,本服务器无需额外参数 "transport": "stdio" // 使用 Stdio 传输协议 }
注意:
- 'command' 的路径需要根据实际构建产物路径进行调整。
- 确保 Neo4j 数据库服务已启动并可连接,默认连接地址为 'neo4j://localhost:7687',用户名 'neo4j',密码 'marwhompa' (可在 'servers/mcp-neo4j-memory/src/main.ts' 中修改)。
2. mcp-json-memory 服务器配置:
{ "serverName": "mcp-json-memory", // 服务器名称 "command": "./dist/servers/mcp-json-memory/main.js", // 启动命令,根据实际路径调整 "args": ["./memory.json"], // 启动参数,指定 JSON 存储文件路径 (可选,默认在服务器目录下 memory.json) "transport": "stdio" // 使用 Stdio 传输协议 }
注意:
- 'args' 可以指定 JSON 文件存储路径,如果不提供,默认会在服务器目录下创建 'memory.json' 文件。
- 'command' 的路径同样需要根据实际构建产物路径调整。
3. mcp-neo4j-cypher 服务器配置 (Python):
{ "serverName": "mcp-neo4j-cypher", "command": "python", "args": ["./src/mcp_neo4j_cypher/__init__.py", "--db-url", "bolt://localhost:7687", "--username", "neo4j", "--password", "marwhompa"], "transport": "stdio" }
注意:
- 'args' 中包含了连接 Neo4j 数据库的参数,请根据实际情况修改 '--db-url', '--username', '--password' 的值。
- 确保 Python 环境已配置,并且安装了 requirements.txt 中的依赖。
基本使用方法
-
启动服务器: 根据选择的服务器类型,在相应的服务器目录下执行启动命令 (例如 'node dist/servers/mcp-neo4j-memory/main.js' 或 'python src/mcp_neo4j_cypher/init.py ...')。
-
配置 MCP 客户端: 在兼容 MCP 协议的 LLM 客户端中,根据上述 "服务器配置" 部分的示例,配置服务器连接信息。
-
使用工具接口: 通过 LLM 客户端,可以调用服务器提供的工具接口,例如:
- 'create_entities': 创建新的知识图谱实体。
- 'create_relations': 创建实体之间的关系。
- 'add_observations': 为实体添加观察记录。
- 'read_graph': 读取完整的知识图谱数据。
- 'search_nodes': 搜索知识图谱节点。
- 'open_nodes': 打开指定的知识图谱节点。
- 'read-neo4j-cypher' (mcp-neo4j-cypher): 执行 Cypher 查询 (只读)。
- 'write-neo4j-cypher' (mcp-neo4j-cypher): 执行 Cypher 查询 (写入)。
- 'get-neo4j-schema' (mcp-neo4j-cypher): 获取 Neo4j 数据库 Schema 信息。
具体工具的使用方式和参数,请参考 'servers/mcp-neo4j-memory/src/main.ts', 'servers/mcp-json-memory/src/main.ts' 和 'servers/mcp-neo4j-cypher/src/mcp_neo4j_cypher/server.py' 文件中 'ListToolsRequestSchema' 的处理逻辑和工具的 'inputSchema' 定义。
信息
分类
数据库与文件