使用说明
内存0 mcp
MCP服务器 自托管 Mem0带Qdrant向量搜索+Neo4j图形内存。
您在寻找Mem0 Cloud吗? 这 官方mem0-mcp服务器 与托管平台合作 应用程序.mem0.ai。此项目用于自托管部署,您可以在其中运行自己的Qdrant、Ollama和Neo4j。
为什么存在
官方MCP服务器需要一个Mem0 Cloud API密钥。如果您使用自己的Qdrant和Ollama自托管Mem0,则没有现成的MCP服务器连接到您的基础设施。这个确实如此。
它连接到什么:
- Qdrant 用于向量记忆(语义搜索)
- Neo4j 用于图形内存(实体关系)
- 奥拉玛 用于嵌入(不需要OpenAI/Anthropic密钥)
- OpenMemory API 用于写入(保持SQLite+Qdrant同步)
工具
| 工具 | 描述 | 后端 |
|---|---|---|
search_memories |
跨所有记忆的语义搜索 | Ollama embed+Qdrant |
add_memory |
存储新内存 | OpenMemory API |
list_memories |
列出所有存储的记忆 | Qdrant滚动 |
delete_memory |
按ID | API+Qdrant回退删除内存 |
search_graph |
查找实体关系 | Neo4j |
get_entity |
获取实体的所有连接 | Neo4j |
先决条件
运行在可访问位置的自托管Mem0堆栈:
- Qdrant (矢量存储)
- 奥拉玛 使用嵌入模型(例如。,
nomic-embed-text) - OpenMemory API (mem0ai/mem0)
- Neo4j 5+ 社区或企业(可选,用于图形内存)
如果这些端口位于远程服务器上,请使用SSH隧道在本地转发端口。
设置
1.安装
pip install git+https://github.com/tensakulabs/mem0-mcp.git
2.配置克劳德代码
claude mcp add -s user mem0-mcp -- \
uvx --from git+https://github.com/tensakulabs/mem0-mcp.git mem0-mcp
或者手动添加到MCP配置中:
{
"mcpServers": {
"mem0": {
"command": "uvx",
"args": ["--from", "git+https://github.com/tensakulabs/mem0-mcp.git", "mem0-mcp"],
"env": {
"MEM0_QDRANT_URL": "http://127.0.0.1:6333",
"MEM0_OLLAMA_URL": "http://127.0.0.1:11435",
"MEM0_API_BASE": "http://127.0.0.1:8765",
"MEM0_NEO4J_URL": "bolt://127.0.0.1:7687",
"MEM0_NEO4J_PASSWORD": "your-password",
"MEM0_USER_ID": "your-user-id"
}
}
}
}
3.SSH隧道(如果远程)
如果您的Mem0堆栈位于远程服务器上:
ssh -f -N \
-L 8765:127.0.0.1:8765 \
-L 6333:127.0.0.1:6333 \
-L 11435:127.0.0.1:11434 \
-L 7687:127.0.0.1:7687 \
user@your-server
配置
所有这些都是通过具有合理默认值的环境变量实现的:
| 变量 | 默认值 | 描述 |
|---|---|---|
MEM0_API_BASE |
http://127.0.0.1:8765 |
OpenMemory API(用于写入) |
MEM0_QDRANT_URL |
http://127.0.0.1:6333 |
Qdrant REST API |
MEM0_OLLAMA_URL |
http://127.0.0.1:11435 |
Ollama(用于嵌入) |
MEM0_EMBED_MODEL |
nomic-embed-text:latest |
嵌入模型名称 |
MEM0_COLLECTION |
openmemory |
Qdrant集合名称 |
MEM0_USER_ID |
justin |
用于内存筛选的用户ID |
MEM0_NEO4J_URL |
bolt://127.0.0.1:7687 |
Neo4j螺栓端点 |
MEM0_NEO4J_USER |
neo4j |
Neo4j用户名 |
MEM0_NEO4J_PASSWORD |
mem0graph |
Neo4j密码 |
建筑
Claude Code / Claude Desktop
└── MCP stdio → mem0-mcp
├── READS → Qdrant (vector search, all memories)
├── SEARCH → Ollama (embed query) + Qdrant (similarity)
├── GRAPH → Neo4j (entity relationships)
└── WRITES → OpenMemory API (SQLite + Qdrant sync)
为什么是混合读/写? OpenMemory API使用SQLite作为内存列表的真相来源。如果其他代理(如OpenClaw)直接写入Qdrant,API将看不到这些内存。从Qdrant的阅读可以直接看到一切。通过API编写使两个存储保持同步。
许可证
麻省理工学院
