Token导航 LogoToken导航TokenDH.com
Nexmem MCP logo
办公协作stdio官方级别未说明来源级核验

Nexmem MCP

MCP Server

NexMem 是一个即插即用的团队共享记忆服务器,为AI编码代理提供持久化的知识图谱,支持多种数据库后端。

工具数

11

提示词数

0

GitHub Stars

5

资源数

0
团队协作PythonClaudeClaude DesktopClaudeCursor

安装说明

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

作者 / 组织

arpanroy41

提供方

arpanroy41

最后核验

2026/5/17 20:22

快速接入

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

命令预览

pip install mcp-nexmem

详细介绍

NexMem MCP

团队共享代理内存 --具有可插拔数据库后端的即插即用MCP内存服务器。

NexMem为AI编码代理(Cursor、Claude Desktop等)提供了一个整个团队共享的持久知识图。代理在工作中学习——发现服务、架构模式和约定——然后在未来的会话中立即回忆起这些知识。

特性

  • 自我或团队记忆 --个人图或共享团队图,可通过env-var切换
  • 5个存储后端 --JSONL(默认)、SQLite、MongoDB、PostgreSQL、Redis
  • 原子操作 --当多个团队成员同时写作时,没有比赛条件
  • 强一致性 --reads总是返回最新状态
  • 电线兼容 --JSONL格式与 @modelcontextprotocol/server-memory 用于进口/出口
  • 引导式自主 --内置指令告诉代理保存什么(不保存什么)
  • 可扩展 --通过实现添加自定义后端 StorageAdapter ABC

快速开始

1.安装

pip install mcp-nexmem

或者使用数据库后端:

pip install "mcp-nexmem[mongodb]"   # MongoDB
pip install "mcp-nexmem[postgres]"  # PostgreSQL
pip install "mcp-nexmem[redis]"     # Redis
pip install "mcp-nexmem[all]"       # All backends

2.配置

添加到您的 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nexmem": {
      "command": "nexmem-mcp",
      "env": {
        "NEXMEM_MODE": "self"
      }
    }
  }
}

3.重新启动IDE

就是这样。代理现在有持久内存。

交互式设置

有关为您生成配置的指导设置:

nexmem-mcp init

或者运行安装脚本:

bash scripts/install.sh

配置参考

所有配置都是通过环境变量(前缀: NEXMEM_):

变量默认值描述
NEXMEM_MODEselfself 为了个人记忆, team 为共享
NEXMEM_USER_NAME操作系统用户名您的身份
NEXMEM_TEAM_NAME*(团队要求)*团队标识符
NEXMEM_BACKENDjsonljsonl / sqlite / mongodb / postgres / redis
NEXMEM_READ_ONLYfalse禁用写入工具
NEXMEM_INSTRUCTIONS*(内置)*自定义指令文件路径或内联文本

后端特定变量

变量默认值
NEXMEM_JSONL_PATH~/.nexmem/memory.jsonl
NEXMEM_SQLITE_PATH~/.nexmem/memory.db
NEXMEM_MONGODB_URImongodb://localhost:27017/nexmem
NEXMEM_POSTGRES_URIpostgresql://localhost:5432/nexmem
NEXMEM_REDIS_URLredis://localhost:6379/0

命名空间:数据隔离的工作原理

NEXMEM_TEAM_NAMENEXMEM_USER_NAME 控制哪个 命名空间 您的数据存储在下。命名空间在同一数据库中提供完全的数据隔离。

Config命名空间谁可以查看数据
MODE=self, USER_NAME=aliceself:alice只有爱丽丝
MODE=self, USER_NAME=bobself:bob只有鲍勃
MODE=team, TEAM_NAME=platform-engteam:platform-eng每个人都有相同的团队名称
MODE=team, TEAM_NAME=frontendteam:frontend不同的团队,单独的图表

每个实体和关系都用数据库中的命名空间标记:

{ "namespace": "team:platform-eng", "name": "AuthService", "entity_type": "service", ... }
  • 在团队模式下, NEXMEM_TEAM_NAME 确定命名空间。所有设置相同团队名称的团队成员共享一个知识图。
  • 在自我模式下, NEXMEM_USER_NAME 确定命名空间。每个用户都有一个私有图。
  • 多个团队可以共享同一个数据库——他们的数据由名称空间隔离。
  • 切换模式不会删除数据。两者 self:aliceteam:platform-eng 可以共存。

为什么团队共享?

如果没有共享内存,团队中的每个代理都会独立工作。爱丽丝的经纪人花了20分钟追踪 PaymentService 对请求进行身份验证,然后Bob的代理在第二天执行完全相同的工作。新员工的经纪人从头开始重新发现每一个建筑决策。知识被锁在单独的会话中,并在对话结束时消失。

当NexMem处于团队模式时,这个循环就会打破:

之前 --每个开发人员的代理在每个会话中都从零开始。同样的服务、模式和陷阱一次又一次地被重新发现。上车很慢。部落知识存在于代理无法阅读的Slack线程和过时的维基页面中。

之后 --一名特工发现 PaymentService 使用gRPC并依赖于 AuthService几秒钟后,每个团队成员的经纪人都知道了。新员工的代理在第一天就已经了解了团队花费数月时间积累的架构、命名约定和不明显的配置细节。

这种情况发生在 零额外努力 --代理读取和写入共享图是其工作流程的自然组成部分。没有人需要记住“保存到内存”或手动维护文档。知识图随着团队的工作而有机增长,并保持最新状态,因为它是由实际接触代码的代理编写的。

团队组建

步骤1:提供共享数据库

选择一个你的团队都能访问的数据库。

选项A:MongoDB Atlas(推荐,提供免费层)

  1. 注册地址: mongodb.com/atlas 并创建免费M0集群
  2. 创建数据库用户并将网络访问设置为 0.0.0.0/0 (允许所有IP)
  3. 单击连接>驱动程序>复制连接字符串
  4. 将其用作 NEXMEM_MONGODB_URI (附加 /nexmem 作为数据库名称)

选项B:本地Docker(用于测试)

docker compose --profile mongodb up -d

步骤2:共享配置

每个团队成员都将此添加到他们的 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "nexmem": {
      "command": "nexmem-mcp",
      "env": {
        "NEXMEM_MODE": "team",
        "NEXMEM_TEAM_NAME": "platform-eng",
        "NEXMEM_BACKEND": "mongodb",
        "NEXMEM_MONGODB_URI": "mongodb://shared-host:27017/nexmem"
      }
    }
  }
}

第三步:正常工作

代理将主动对共享知识图进行读写操作。当爱丽丝的经纪人发现 PaymentService 使用gRPC,Bob的代理也会立即知道,无需手动同步。

运作原理

数据模型

NexMem存储了一个包含两种记录的知识图:

实体 --代理知道的事情(服务、仓库、API等):

{"type":"entity","name":"PaymentAPI","entityType":"service","observations":["Uses gRPC","Handles billing"]}

关系 --实体之间的连接:

{"type":"relation","from":"PaymentAPI","to":"AuthService","relationType":"depends_on"}

工具

服务器公开了11个MCP工具:

工具说明
read_graph阅读整个知识图谱
search_nodes按名称、类型或观察值搜索实体
open_nodes按名称获取特定实体
create_entities创建新实体
create_relations在实体之间创建关系
add_observations向现有实体添加观察结果
delete_entities删除实体及其关系
delete_observations删除具体观察结果
delete_relations删除特定关系
get_memory_status显示当前配置、模式和运行状况
import_jsonl从上游服务器内存格式导入

代理行为

服务器包括指导代理的内置指令:

  • 自动读取 --在相关任务开始时搜索内存
  • 主动写作 --无需询问即可保存有用的发现(服务、模式、决策)
  • 抖动噪音 --不会保存琐碎或临时的信息

您可以通过以下方式自定义此行为 NEXMEM_INSTRUCTIONS.

冲突安全

与基于文件的加载方法不同→ 修改→ 覆盖(导致竞争条件),NexMem使用 原子数据库操作:

  • create_entitiesINSERT ... ON CONFLICT DO NOTHING
  • add_observations → 原子阵列附加
  • delete_entities → 按名称进行原子删除

两名团队成员同时写作,两人都成功了,没有相互覆盖。

存储后端

Jsonl(默认)

零依赖。商店1 .jsonl 中每个命名空间的文件 ~/.nexmem/。为了安全起见,使用文件锁定。最适合自我模式。

SQLite

零额外依赖(使用stdlib)。存储单个 .db 带有适当表和索引的文件。使用WAL模式和交易。适合轻量级本地使用。

MongoDB

安装: pip install "mcp-nexmem[mongodb]"

推荐给团队。文档模型很自然。用途 insertMany(ordered=false) 因为幂等创建, $push 用于原子观测。

PostgreSQL

安装: pip install "mcp-nexmem[postgres]"

使用JSONB列进行观察。 INSERT ... ON CONFLICT DO NOTHING 用于安全的并发写入。通过asyncpg实现连接池。

瑞迪斯

安装: pip install "mcp-nexmem[redis]"

将实体存储为哈希字段,将关系存储为集合成员。快速阅读。 HSETNX 原子创造。

自定义适配器

实施 StorageAdapter ABC并注册:

from nexmem_mcp.adapters import register_adapter
from nexmem_mcp.adapters.base import StorageAdapter

@register_adapter("dynamodb")
class DynamoDBAdapter(StorageAdapter):
    ...

导入现有数据

如果您有来自的JSONL文件 @modelcontextprotocol/server-memory 或其他MCP内存服务器使用 import_jsonl 工具:

"Import this data into memory: 
"

或者通过编程,代理可以调用 import_jsonl(jsonl_content="...").

码头工人

数据库后端

docker compose --profile mongodb up -d    # MongoDB on :27017
docker compose --profile postgres up -d   # PostgreSQL on :5432
docker compose --profile redis up -d      # Redis on :6379

在Docker中运行服务器

docker build --target all -t nexmem-mcp .
docker run -e NEXMEM_MODE=team -e NEXMEM_BACKEND=mongodb \
  -e NEXMEM_MONGODB_URI=mongodb://host:27017/nexmem nexmem-mcp

发展

git clone https://github.com/arpanroy41/nexmem-mcp.git
cd nexmem-mcp
pip install -e ".[dev]"
pytest

许可证

麻省理工学院

目录标签

目录标签

团队协作PythonClaude本地部署知识图谱AI编码数据持久化数据库后端

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP