Token导航 LogoToken导航TokenDH.com
MCP Neo4j Memory logo
数据服务stdio官方级别未说明来源级核验

MCP Neo4j Memory

MCP Server

一个基于Neo4j图数据库的模型上下文协议(MCP)服务器,提供持久化记忆功能,支持复杂关系存储和多会话知识查询分析。

工具数

9

提示词数

0

GitHub Stars

947

资源数

0
知识图谱PythonClaude记忆存储Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

neo4j-contrib

提供方

neo4j-contrib

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install mcp-neo4j-memory

详细介绍

🧠🕸️ Neo4j知识图内存MCP服务器

mcp名称:io.github.neo4j-contrib/mcp-neo4j-memory

🌟 概述

一种模型上下文协议(MCP)服务器实现,通过Neo4j图形数据库集成提供持久内存功能。

通过将信息存储在图形结构中,该服务器将实体之间的复杂关系作为内存节点进行维护,并能够长期保留可以在多个对话或会话中查询和分析的知识。

随着 Neo4j光环 您可以免费托管自己的数据库服务器,也可以与合作者共享。否则,您可以在本地运行自己的Neo4j服务器。

MCP服务器利用Neo4j的图形数据库功能创建了一个作为外部存储系统的互连知识库。通过Cypher查询,它允许探索和检索存储的信息,分析不同数据点之间的关系,并从积累的知识中生成见解。克劳德的能力可以进一步增强这种记忆。

🕸️ 图形架构

  • Memory -用名称、类型和观察值表示实体的节点。
  • Relationship -具有类型的两个实体之间的关系。

🔍 用法示例

Let's add some memories 
I, Michael, living in Dresden, Germany work at Neo4j which is headquartered in Sweden with my colleagues Andreas (Cambridge, UK) and Oskar (Gothenburg, Sweden)
I work in Product Management, Oskar in Engineering and Andreas in Developer Relations.

结果Claude调用了create_entities和create_relations工具。

![](./docs/images/employee_create_entities_and_relations.png)

![](./docs/images/employee_graph.png)

📦 组件

🔧 工具

服务器提供以下核心工具:

🔎 查询工具

  • read_graph

- 阅读整个知识图谱 - 无需输入 - 返回:包含实体和关系的完整图

  • search_nodes

- 基于查询搜索节点 - 输入: - query (string):搜索与名称、类型、观察结果匹配的查询 - 返回:匹配子图

  • find_nodes

- 按名称查找特定节点 - 输入: - names (字符串数组):要检索的实体名称 - 返回:具有指定节点的子图

♟️ 实体管理工具

  • create_entities

- 在知识图中创建多个新实体 - 输入: - entities:对象数组,包含: - name (string):实体名称 - type (string):实体的类型 - observations (字符串数组):对实体的初步观察 - 返回:已创建实体

  • delete_entities

- 删除多个实体及其关联关系 - 输入: - entityNames (字符串数组):要删除的实体名称 - 返回:成功确认

🔗 关系管理工具

  • create_relations

- 在实体之间创建多个新关系 - 输入: - relations:对象数组,包含: - source (string):源实体的名称 - target (string):目标实体的名称 - relationType (string):关系类型 - 返回:已创建关系

  • delete_relations

- 从图中删除多个关系 - 输入: - relations:与create_relations具有相同架构的对象数组 - 返回:成功确认

📝 观测管理工具

  • add_observations

- 向现有实体添加新的观察结果 - 输入: - observations:对象数组,包含: - entityName (string):要添加的实体 - contents (字符串数组):要添加的观察值 - 返回:添加了观察详细信息

  • delete_observations

- 从实体中删除具体观察结果 - 输入: - deletions:对象数组,包含: - entityName (string):要从中删除的实体 - observations (字符串数组):要删除的观察值 - 返回:成功确认

🔧 使用Claude Desktop

💾 安装

pip install mcp-neo4j-memory

⚙️ 配置

将服务器添加到您的 claude_desktop_config.json 配置如下:

"mcpServers": {
  "neo4j": {
    "command": "uvx",
    "args": [
      "mcp-neo4j-memory@0.4.5",
      "--db-url",
      "neo4j+s://xxxx.databases.neo4j.io",
      "--username",
      "",
      "--password",
      ""
    ]
  }
}

或者,您可以设置环境变量:

"mcpServers": {
  "neo4j": {
    "command": "uvx",
    "args": [ "mcp-neo4j-memory@0.4.5" ],
    "env": {
      "NEO4J_URL": "neo4j+s://xxxx.databases.neo4j.io",
      "NEO4J_USERNAME": "",
      "NEO4J_PASSWORD": ""
    }
  }
}

命名空间

对于多租户部署,请添加 --namespace 在工具名称前添加前缀:

"args": [ "mcp-neo4j-memory@0.4.5", "--namespace", "myapp", "--db-url", "..." ]

工具变成: myapp-read_graph, myapp-create_entities等等。

也可以使用 NEO4J_NAMESPACE 环境变量。

🌐 HTTP传输模式

服务器支持基于web的部署和微服务的HTTP传输:

# Basic HTTP mode (defaults: host=127.0.0.1, port=8000, path=/mcp/)
mcp-neo4j-memory --transport http

# Custom HTTP configuration
mcp-neo4j-memory --transport http --host 127.0.0.1 --port 8080 --path /mcp/

HTTP配置的环境变量:

export NEO4J_TRANSPORT=http
export NEO4J_MCP_SERVER_HOST=127.0.0.1
export NEO4J_MCP_SERVER_PORT=8080
export NEO4J_MCP_SERVER_PATH=/mcp/
export NEO4J_NAMESPACE=myapp
mcp-neo4j-memory

🔄 运输方式

服务器支持三种传输模式:

  • 工作室 (默认):本地工具和Claude Desktop的标准输入/输出
  • 上海证券交易所:基于web的部署的服务器发送事件
  • 超文本传输协议:适用于现代web部署和微服务的流式HTTP

🐳 使用Docker

"mcpServers": {
  "neo4j": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-e", "NEO4J_URL=neo4j+s://xxxx.databases.neo4j.io",
      "-e", "NEO4J_USERNAME=",
      "-e", "NEO4J_PASSWORD=",
      "mcp/neo4j-memory:0.4.5"
    ]
  }
}

🔒 安全保护

服务器包括全面的安全保护 安全默认值 在使用HTTP传输时,可以防止常见的基于网络的攻击,同时保留完整的MCP功能。

🛡️ DNS重新绑定保护

可信主机中间件 验证主机标头以防止DNS重新绑定攻击:

默认安全:

  • localhost127.0.0.1 默认情况下允许主机

环境变量:

export NEO4J_MCP_SERVER_ALLOWED_HOSTS="example.com,www.example.com"

🌐 CORS保护

跨源资源共享(CORS) 默认情况下,保护会阻止基于浏览器的请求:

环境变量:

export NEO4J_MCP_SERVER_ALLOW_ORIGINS="https://example.com,https://app.example.com"

🔧 完成安全配置

开发设置:

mcp-neo4j-memory --transport http \
  --allowed-hosts "localhost,127.0.0.1" \
  --allow-origins "http://localhost:3000"

生产设置:

mcp-neo4j-memory --transport http \
  --allowed-hosts "example.com,www.example.com" \
  --allow-origins "https://example.com,https://app.example.com"

🚨 安全最佳实践

对于 allow_origins:

  • 请具体说明: ["https://example.com", "https://example.com"]
  • 从不使用 "*" 在生产中持有证书
  • 在生产中使用HTTPS源

对于 allowed_hosts:

  • 包括您的实际域名: ["example.com", "www.example.com"]
  • 仅包括用于开发的localhost
  • 从不使用 "*" 除非你了解风险

🐳 Docker部署

Neo4j内存MCP服务器可以使用Docker进行远程部署。Docker部署应该使用HTTP传输来实现web可访问性。为了将此部署与Claude Desktop等应用程序集成,您必须在MCP配置中使用代理,例如 mcp-remote.

📦 使用您的内置图像

在当地建造后 docker build -t mcp-neo4j-memory:latest .:

# Run with http transport (default for Docker)
docker run --rm -p 8000:8000 \
  -e NEO4J_URI="bolt://host.docker.internal:7687" \
  -e NEO4J_USERNAME="neo4j" \
  -e NEO4J_PASSWORD="password" \
  -e NEO4J_DATABASE="neo4j" \
  -e NEO4J_TRANSPORT="http" \
  -e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
  -e NEO4J_MCP_SERVER_PORT="8000" \
  -e NEO4J_MCP_SERVER_PATH="/mcp/" \
  mcp/neo4j-memory:latest

# Run with security middleware for production
docker run --rm -p 8000:8000 \
  -e NEO4J_URI="bolt://host.docker.internal:7687" \
  -e NEO4J_USERNAME="neo4j" \
  -e NEO4J_PASSWORD="password" \
  -e NEO4J_DATABASE="neo4j" \
  -e NEO4J_TRANSPORT="http" \
  -e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
  -e NEO4J_MCP_SERVER_PORT="8000" \
  -e NEO4J_MCP_SERVER_PATH="/mcp/" \
  -e NEO4J_MCP_SERVER_ALLOWED_HOSTS="example.com,www.example.com" \
  -e NEO4J_MCP_SERVER_ALLOW_ORIGINS="https://example.com" \
  mcp/neo4j-memory:latest

🔧 环境变量

变量默认值描述
NEO4J_URIbolt://localhost:7687Neo4j连接URI
NEO4J_USERNAMEneo4jNeo4j用户名
NEO4J_PASSWORDpasswordNeo4j密码
NEO4J_DATABASEneo4jNeo4j数据库名称
NEO4J_TRANSPORTstdio (本地), http (远程)传输协议(stdio, http,或 sse)
NEO4J_MCP_SERVER_HOST127.0.0.1 (本地)要绑定的主机
NEO4J_MCP_SERVER_PORT8000HTTP/SSE传输端口
NEO4J_MCP_SERVER_PATH/mcp/访问MCP服务器的路径
NEO4J_MCP_SERVER_ALLOW_ORIGINS_(空-默认安全)_允许的CORS源的逗号分隔列表
NEO4J_MCP_SERVER_ALLOWED_HOSTSlocalhost,127.0.0.1以逗号分隔的允许主机列表(DNS重新绑定保护)
NEO4J_NAMESPACE_(空-无前缀)_工具名称的命名空间前缀(例如。, myapp-read_graph)

🌐 传统Web访问的SSE传输

当使用SSE传输(用于传统web客户端)时,服务器会公开一个HTTP端点:

# Start the server with SSE transport
docker run -d -p 8000:8000 \
  -e NEO4J_URI="neo4j+s://demo.neo4jlabs.com" \
  -e NEO4J_USERNAME="recommendations" \
  -e NEO4J_PASSWORD="recommendations" \
  -e NEO4J_DATABASE="neo4j" \
  -e NEO4J_TRANSPORT="sse" \
  -e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
  -e NEO4J_MCP_SERVER_PORT="8000" \
  --name neo4j-memory-mcp-server \
  mcp-neo4j-memory:latest

# Test the SSE endpoint
curl http://localhost:8000/sse

# Use with MCP Inspector
npx @modelcontextprotocol/inspector http://localhost:8000/sse

🚀 发展

📦 先决条件

  1. 安装 uv (通用虚拟环境):
# Using pip
pip install uv

# Using Homebrew on macOS
brew install uv

# Using cargo (Rust package manager)
cargo install uv
  1. 克隆存储库并设置开发环境:
# Clone the repository
git clone https://github.com/yourusername/mcp-neo4j-memory.git
cd mcp-neo4j-memory

# Create and activate virtual environment using uv
uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows

# Install dependencies including dev dependencies
uv pip install -e ".[dev]"

🐳 码头工人

构建并运行Docker容器:

# Build the image
docker build -t mcp/neo4j-memory:latest .

# Run the container
docker run -e NEO4J_URL="neo4j+s://xxxx.databases.neo4j.io" \
          -e NEO4J_USERNAME="your-username" \
          -e NEO4J_PASSWORD="your-password" \
          mcp/neo4j-memory:latest

📄 许可证

此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。

目录标签

目录标签

知识图谱PythonClaude记忆存储本地部署图数据库关系分析自然语言处理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP