Token导航 LogoToken导航TokenDH.com
Neo4j Memory MCP logo
AI代理stdio官方级别未说明来源级核验

Neo4j Memory MCP

MCP Server

一个实现AI代理中上下文窗口溢出的解决方案,通过在运行时内存中存储大型图形结果并返回短内存路径,支持Cypher查询和模式检查的FastAPI应用。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
内存管理PythonAI代理

安装说明

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

作者 / 组织

PrashantSedhain

提供方

PrashantSedhain

最后核验

2026/5/17 20:22

运行时

Python

快速接入

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

命令预览

python3 -m venv .venv

详细介绍

Neo4j内存MCP

该项目实施了论文中的核心方法 *解决AI代理中的上下文窗口溢出问题*:工具不会将大型图形结果直接传递回模型上下文。相反,镜像工具将结果存储在运行时内存中,并返回短内存路径。稍后的工具在执行之前将这些路径解析回完整值。

它也遵循了官方的形状 neo4j/mcp 服务器通过暴露模式检查和Cypher执行工具,默认情况下启用只读模式。

包括什么

  • 一个具有REST端点的FastAPI应用程序,用于每会话Neo4j连接设置、模式查找、读取查询、写入查询和内存检索。
  • 安装在FastAPI应用程序内的FastMCP服务器 /mcp-server/mcp/.
  • 磁盘支持的运行时内存存储,用于存储超大或始终持久的工具输出。
  • 会话范围的运行时内存,因此指针只能在原始会话中解析。
  • 内存中的会话注册表,因此每个客户端会话都维护自己的Neo4j连接详细信息。
  • 镜像Neo4j工具:

- configure-neo4j-session - get-neo4j-session-status - disconnect-neo4j-session - get-schema - read-cypher - write-cypher - describe-memory - retrieve-final-answer-from-memory - slice-memory-list

项目布局

src/neo4j_memory_mcp/
  api/app.py             FastAPI app and REST endpoints
  mcp_server/server.py   FastMCP tool definitions
  config.py              Environment-based settings
  memory.py              Pointer-based runtime memory store
  neo4j_service.py       Neo4j driver wrapper
  runtime.py             Shared application context
  main.py                Uvicorn entrypoint

配置

复制 .env.example.env 并设置:

NEO4J_DEFAULT_DATABASE=neo4j
NEO4J_DEFAULT_READ_ONLY=true
NEO4J_FETCH_SIZE=1000
NEO4J_QUERY_TIMEOUT_SECONDS=30

服务器不再在其环境中存储单个Neo4j连接。客户端通过REST或MCP为每个会话提供连接详细信息,服务器在该会话的整个生命周期内将它们保存在内存中。

NEO4J_MEMORY_ALWAYS_STORE=true 通过返回工具输出的指针而不是原始有效载荷,使交互与论文保持一致。

当客户端连接时,服务器会发出不透明的会话令牌。对于之后的REST调用,请将其发送进来 X-Session-Token.

启动指南

cd "/Users/mac1/Documents/Codex Projects/Neo4j-memory-mcp"

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

cp .env.example .env

编辑 .env 如果要覆盖数据库名称、只读模式、获取大小或查询超时的默认值:

NEO4J_DEFAULT_DATABASE=neo4j
NEO4J_DEFAULT_READ_ONLY=true
NEO4J_FETCH_SIZE=1000
NEO4J_QUERY_TIMEOUT_SECONDS=30

然后启动服务器:

.venv/bin/uvicorn neo4j_memory_mcp.api.app:app --host 0.0.0.0 --port 8000

如果先激活虚拟环境,则等效命令为:

source .venv/bin/activate
uvicorn neo4j_memory_mcp.api.app:app --host 0.0.0.0 --port 8000

您还可以从虚拟环境中的模块入口点开始:

.venv/bin/python -m neo4j_memory_mcp.main

启动后,检查:

  • 健康: http://localhost:8000/api/health
  • 会话连接: POST http://localhost:8000/api/session/connect
  • 架构: GET http://localhost:8000/api/schema
  • MCP传输: http://localhost:8000/mcp-server/mcp/

端点

终点:

  • REST API运行状况: GET /api/health
  • REST会话连接: POST /api/session/connect 回报 session_token
  • REST会话状态: GET /api/session/status 随着 X-Session-Token
  • REST会话断开连接: POST /api/session/disconnect 随着 X-Session-Token
  • REST架构: GET /api/schema 随着 X-Session-Token
  • REST读取查询: POST /api/query/read 随着 X-Session-Token
  • REST写入查询: POST /api/query/write 随着 X-Session-Token
  • REST内存获取: GET /api/memory/{memory_path} 随着 X-Session-Token
  • MCP传输: /mcp-server/mcp/

论文如何映射到此代码

  1. 输入检查: MemoryStore.resolve_if_pointer() 检测工具参数是否是内存路径,并在底层函数运行之前解析它,但仅在当前会话命名空间内。
  2. 原始工具行为: Neo4jService 包含纯模式和Cypher操作。
  3. 会话绑定: SessionManager 生成不透明的会话令牌,并保留每个令牌的Neo4j连接设置和驱动程序,而无需将凭据写入磁盘。
  4. 后处理和内存路径返回: AppContext.mirrored_call() 存储结果并返回指针元数据,而不是大型原始有效载荷。
  5. 最终答案检索: retrieve-final-answer-from-memoryGET /api/memory/{memory_path} 当在创建结果的同一会话中明确请求时,返回存储的结果。

备注

  • 只读密码保护是有意保守的,可以阻止常见的写入、管理、模式、APOC突变和 PROFILE 声明。
  • Neo4j密码仅在会话配置期间接受,并保存在进程内存中,而不是运行时内存存储或API响应中。
  • 会话令牌是服务器生成的,而不是客户端选择的,这避免了意外冲突,并使令牌猜测变得更加困难。
  • get-schema 用途 apoc.meta.schema(),匹配安装APOC的官方Neo4j MCP服务器先决条件。
  • 对于非常大的列表结果, slice-memory-list 允许客户端在不重新运行查询的情况下拉回窗口。
  • 运行时内存目录下的每个会话都有内存命名空间,因此一个会话无法解析另一个会话的指针。

目录标签

目录标签

内存管理PythonAI代理图形数据库本地部署Cypher查询FastAPI

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP