使用说明
Mem0 MCP服务器-Node.js(仅限HTTP)
Mem0 MCP(模型上下文协议)服务器的Node.js实现 仅HTTP操作 以简化部署和集成。
这是基于此回购 coleam00/mcp-mem0.git
特性
- 仅HTTP操作:仅通过HTTP API运行的简化服务器
- 工作空间集成:自动将内存存储在活动项目目录中
- RESTful API:易于与web应用程序、VSCode扩展和MCP客户端集成
- 本地文件存储:将记忆存储在
.Mem0-Files工作区根目录中的目录 - MCP工具:提供
save_memory,get_all_memories,以及search_memories工具 - 认证:基于令牌的身份验证,用于安全的API访问
- 速率限制:防止API滥用的内置保护
- 可配置存储:插件架构支持多个存储后端
- ESM模块:使用ES模块的现代Node.js实现
- Docker支持:容器化部署选项
快速开始
-
安装依赖项:
npm install -
配置环境:
cp .env.example .env # Edit .env with your configuration -
运行服务器:
# Start the HTTP server (default port 8484) npm start # Start with specific workspace (recommended) npm run start:workspace /path/to/your/project # Start in development mode with auto-restart npm run dev -
验证它是否正常工作:
# Check server status curl http://localhost:8484/ # Or open in browser: http://localhost:8484 -
使用HTTP API:
# Save a memory curl -X POST http://localhost:8484/api/memory/save \ -H "Content-Type: application/json" \ -H "Authorization: Bearer 550EA5B7-4C7B-4B17-9BF7-5A6B6D232FA2" \ -d '{"text": "Your memory here", "userId": "vscode-user"}' # Search memories curl "http://localhost:8484/api/memory/search?query=memory&userId=vscode-user" \ -H "Authorization: Bearer 550EA5B7-4C7B-4B17-9BF7-5A6B6D232FA2"
配置
服务器是通过环境变量配置的。复制 .env.example 向 .env 并配置:
基本配置
HOST:要绑定的主机(默认值:0.0.0.0)PORT:要侦听的端口(默认值:8484)STORAGE_PROVIDER:存储后端(local或postgresql)-目前仅local已实施LOCAL_STORAGE_DIR:本地存储目录(默认:.Mem0-Files)PROJECT_DIR:存储内存的工作区目录(自动检测或显式设置)
HTTP服务器配置(始终启用)
HTTP_SERVER_ENABLED:启用HTTP API服务器(true或false,默认值:false)HTTP_SERVER_PORT:HTTP服务器端口(默认值:3000)HTTP_SERVER_HOST:HTTP服务器主机(默认值:0.0.0.0)API_TOKEN:HTTP API的身份验证令牌(启用HTTP服务器时需要)CORS_ORIGINS:允许的CORS源(默认值:http://localhost:*,https://localhost:*)RATE_LIMIT_WINDOW_MS:速率限制窗口(毫秒)(默认值:900000-15分钟)RATE_LIMIT_MAX_REQUESTS:每个窗口的最大请求数(默认值:100)
LLM配置(用于未来的Mem0集成)
LLM_PROVIDER:法学硕士提供者(openai,openrouter,或ollama)LLM_API_KEY:LLM提供商的API密钥LLM_CHOICE:要使用的模型(例如。,gpt-4o-mini)EMBEDDING_MODEL_CHOICE:嵌入模型(例如。,text-embedding-3-small)
MCP客户端配置
带有Roo代码扩展名的VS代码
要将此MCP服务器与VS Code和Roo Code扩展一起使用:
设置步骤:
- 安装Roo Code扩展 来自市场的VS Code
- 生成配置 通过运行:
npm run config(这将显示确切的路径) - 打开VS代码设置 (Cmd/Ctrl+,)
- 搜索“roo” 查找Roo代码设置
- 查找“MCP服务器”配置 在Roo Code设置中
- 复制并粘贴生成的配置 从步骤2
配置示例:
选项1:标准传输(直接过程通信) 将此配置添加到Roo Code MCP服务器设置中:
{
"mem0-nodejs": {
"command": "node",
"args": ["/absolute/path/to/mem0_mcp_server_nodejs/src/main.js"],
"env": {
"TRANSPORT": "stdio",
"STORAGE_PROVIDER": "local",
"LOCAL_STORAGE_DIR": ".Mem0-Files",
"DEFAULT_USER_ID": "vscode-user",
"DEBUG": "false"
}
}
}
选项2:SSE传输(基于HTTP的通信) 首先,使用SSE传输启动服务器:
TRANSPORT=sse HTTP_SERVER_ENABLED=true npm start
然后将此配置添加到Roo Code MCP服务器设置中:
{
"mcpServers": {
"mem0-sse": {
"transport": "sse",
"url": "http://localhost:8484/sse",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN_HERE"
},
"description": "Mem0 MCP Server via SSE transport"
}
}
}
VS代码中的用法:
配置后,您可以使用Roo Code中的内存工具:
- 保存记忆:使用
save_memory用于存储有关项目、编码模式或决策的信息的工具 - 找回记忆:使用
get_all_memories查看所有存储的信息 - 搜索记忆:使用
search_memories查找具体信息
示例用法:
@mem0-nodejs save_memory "This project uses ESM modules and stores data in .Mem0-Files directory"
@mem0-nodejs search_memories "ESM modules"
@mem0-nodejs get_all_memories
重要提示:
- 替换
/absolute/path/to/mem0_mcp_server_nodejs/与项目的实际绝对路径 - 服务器将创建一个
.Mem0-Files项目根目录中的目录 - 每个VS Code工作区都可以有自己的内存存储
- 记忆被隔离
DEFAULT_USER_ID设置 - 您可以使用以下命令找到确切的路径
pwd项目目录中的命令
带有HTTP API的VS代码(推荐)
为了使用VS Code和Roo Code进行最简单的设置,请使用HTTP API,它消除了对绝对文件路径的需要:
快速设置:
-
启动HTTP服务器:
API_TOKEN=your-secure-token HTTP_SERVER_ENABLED=true npm start -
配置Roo代码 在VS代码设置中:
{ "mem0-http": { "transport": "sse", "url": "http://localhost:3000", "headers": { "Authorization": "Bearer your-secure-token" } } } -
在VS代码中使用:
@mem0-http save_memory "This project uses React with TypeScript" @mem0-http search_memories "React"
📚 文档:
- 完整安装指南 -分步说明
- 快速参考 -命令和故障排除
- HTTP API参考 -完整的API文件
克劳德桌面(stdio)
将此添加到您的Claude Desktop配置中:
{
"mcpServers": {
"mem0-nodejs": {
"command": "node",
"args": ["path/to/mem0_mcp_server_nodejs/src/main.js"],
"env": {
"TRANSPORT": "stdio",
"STORAGE_PROVIDER": "local",
"LOCAL_STORAGE_DIR": ".Mem0-Files"
}
}
}
}
可用工具
save_memory
将信息存储在长期记忆中。
参数:
text(必填):要存储的内容userId(可选):用户标识符(默认为配置的用户)
获取所有记忆
检索用户存储的所有内存。
参数:
userId(可选):用户标识符limit(可选):要返回的最大内存数(默认值:50)
搜索_存储
使用基于文本的搜索来搜索记忆。
参数:
query(必填):搜索查询userId(可选):用户标识符limit(可选):返回的最大结果数(默认值:3)
本地存储结构
本地存储提供程序创建以下结构:
.Mem0-Files/
├── users/
│ └── [userId]/
│ ├── [memoryId1].json
│ ├── [memoryId2].json
│ └── ...
└── index/
└── [userId].json
每个内存文件包含:
{
"id": "uuid",
"userId": "user",
"memory": "memory content",
"metadata": {
"originalText": "original input",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
}
发展
以开发模式运行
npm run dev
测试
npm test
代码检查
npm run lint
码头工人
构建图像
npm run docker:build
运行容器
npm run docker:run
项目状态
这是一个早期实施,状态如下:
✅ 实现
- [x] 基本MCP服务器设置
- [x] 本地文件存储提供商
- [x] 核心MCP工具(保存、获取、搜索)
- [x] 项目结构和配置
- [x] 基于文本的基本搜索
- [x] 使用Express.js的HTTP API服务器
- [x] 基于令牌的身份验证
- [x] 速率限制和安全
- [x] 双传输支持(stdio+HTTP)
- [x] 全面的API文件
- [x] 通过HTTP集成VS代码
🚧 进行中
- []增强Mem0集成
- []嵌入语义搜索
- []PostgreSQL存储提供程序
- []SSE传输支持(HTTP服务器就绪,SSE端点待定)
📋 计划的
- []用于内存处理的完全LLM集成
- []高级搜索算法
- []内存分析和管理
- []基于Web的内存浏览器
开发说明
有关开发文档、实施细节和项目规划文件,请参阅 Dev-Notes/ 文件夹。
贡献
该项目正在积极开发中。欢迎投稿!
许可证
MIT许可证
