使用说明
Mnemosyne MCP
用于具有局部语义搜索的AI代理的知识图内存。API成本为零。
以希腊记忆女神、缪斯之母姆涅莫辛尼的名字命名。
概述
Mnemosyne使用Neo4j知识图和局部向量嵌入为AI代理提供持久内存。与需要付费API访问的传统解决方案不同,Mnemosyne通过ONNX Runtime本地运行嵌入。
主要特点:
- 基于BGE嵌入的局部语义搜索
- 没有API密钥或外部依赖项
- 初始设置后脱机工作
- 与模型上下文协议(MCP)兼容
- 直接替代基于云的解决方案
性能比较
| 度量 | 云服务 | Mnemosyne |
|---|---|---|
| 成本 | 约0.02美元/百万代币 | 免费 |
| API密钥 | 必需 | 无 |
| 网络 | 始终需要 | 仅限初始下载 |
| 隐私 | 外部 | 本地 |
| 延迟 | ~100ms | ~200-500ms |
安装
先决条件
- Node.js>=20.0.0
- Neo4j数据库(下载)
快速入门(NPM)
npx @zhadyz/mnemosyne-mcp
来源
git clone https://github.com/zhadyz/mnemosyne-mcp.git
cd mnemosyne-mcp
npm install
npm run build
Neo4j设置
- 安装Neo4j桌面
- 创建数据库实例
- 设置凭据(默认密码:
neo4j) - 启动数据库(默认端口:7687)
环境配置
创建 .env 在项目根目录中:
EMBEDDING_PROVIDER=local
LOCAL_EMBEDDING_MODEL=Xenova/bge-base-en-v1.5
NEO4J_URI=bolt://127.0.0.1:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=neo4j
# NEO4J_DATABASE - Automatically set by router based on project config
多项目数据库路由
Mnemosyne包括 内置动态数据库路由 它会根据您当前的项目自动选择正确的Neo4j数据库。
为什么要使用多数据库架构?
规模绩效:
- 问题10⁴ 实体而不是10⁵+ 单片架构
- 通过数据库分区实现O(log n)查询复杂性
- 线性项目添加而不降低性能
项目隔离:
- 命名空间分离可防止知识图的交叉污染
- 每个项目都有自己的独立数据库
- 用于跨项目学习的全球模式数据库
设置
1.在Neo4j中创建项目数据库:
CREATE DATABASE my_project_db IF NOT EXISTS;
CREATE DATABASE another_project_db IF NOT EXISTS;
2.添加 .mnemosyne 文件到每个项目根目录:
# Project-specific database name (required)
MNEMOSYNE_DATABASE=my_project_db
# Optional metadata
PROJECT_NAME=My Project
RETENTION_DAYS=90
AUTO_CLEANUP=true
ISOLATION_LEVEL=project
3.路由器自动检测数据库:
Your Projects:
├─ project-alpha/
│ └─ .mnemosyne → MNEMOSYNE_DATABASE=alpha_db
│ Routes to "alpha_db" database ✓
│
├─ project-beta/
│ └─ .mnemosyne → MNEMOSYNE_DATABASE=beta_db
│ Routes to "beta_db" database ✓
│
└─ unconfigured-project/
No .mnemosyne → Routes to "neo4j" (global patterns) ✓
路由器从您当前的工作目录向上遍历目录树,找到 .mnemosyne 或 .env,并路由到指定的数据库。如果找不到配置,则默认为 neo4j (全球模式数据库)。
模板: 将包含的模板复制到您的项目中:
cp node_modules/@zhadyz/mnemosyne-mcp/.mnemosyne.template .mnemosyne
# Edit MNEMOSYNE_DATABASE to your database name
克劳德集成
克劳德代码(推荐)
使用一个命令将Mnemosyne添加到Claude Code中:
claude mcp add --scope user mnemosyne -- npx -y @zhadyz/mnemosyne-mcp
验证是否已安装:
claude mcp list
你应该看看 mnemosyne: npx -y @zhadyz/mnemosyne-mcp - ✓ Connected
默认配置:
- Neo4j URI:
bolt://localhost:7687 - 用户名/密码:
neo4j/neo4j - 数据库:自动(通过路由器-
neo4j如果不.mnemosyne文件已找到) - 嵌入:局部(BGE base-en-v1.5768尺寸)
自定义Neo4j设置:
如果您使用不同的凭据,请编辑 ~/.claude.json 并添加环境变量:
claude mcp add --scope user mnemosyne \
-e NEO4J_PASSWORD=your_password \
-- npx -y @zhadyz/mnemosyne-mcp
双MCP实例设置(项目+全局内存)
对于高级工作流,请运行 两个独立的Mnemosyne实例 -一个用于项目特定知识,一个用于跨项目模式。
架构:
- 工程实例:使用自动路由(查找
.mnemosyne在您的项目中) - 全局实例:始终路由到
neo4j数据库(强制覆盖)
设置:
# Project-specific knowledge (automatic routing)
claude mcp add --scope user mnemosyne-project -- npx -y @zhadyz/mnemosyne-mcp
# Global cross-project patterns (forced to neo4j database)
claude mcp add --scope user mnemosyne-global \
-e MNEMOSYNE_FORCE_DATABASE=neo4j \
-- npx -y @zhadyz/mnemosyne-mcp
代理使用:
工具在Claude中带有前缀:
mcp__mnemosyne-project__create_entities→ 存储在项目数据库中mcp__mnemosyne-global__create_entities→ 全球门店neo4j数据库
Agent的决策启发式:
存储于 项目数据库 当知识是:
- 项目特定代码:类、函数、API、模型
- 项目背景:依赖关系、架构决策、当地惯例
- 临时学习:当前的冲刺模式、调试见解
存储于 全局数据库 当知识是:
- 可重用模式:错误处理策略、设计模式
- 框架最佳实践:Next.js优化、React模式
- 安全模式:身份验证流程、输入验证
- 元学习:跨多个项目的有效方法
默认规则:不确定时,存储在项目数据库中。验证后手动将经过验证的模式提升到全局数据库。
克劳德桌面
基本设置:
添加到 claude_desktop_config.json:
{
"mcpServers": {
"mnemosyne": {
"command": "npx",
"args": ["-y", "@zhadyz/mnemosyne-mcp"],
"env": {
"NEO4J_URI": "bolt://127.0.0.1:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "neo4j",
"EMBEDDING_PROVIDER": "local",
"LOCAL_EMBEDDING_MODEL": "Xenova/bge-base-en-v1.5"
}
}
}
}
双实例设置(项目+全局):
{
"mcpServers": {
"mnemosyne-project": {
"command": "npx",
"args": ["-y", "@zhadyz/mnemosyne-mcp"],
"env": {
"NEO4J_URI": "bolt://127.0.0.1:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "neo4j",
"EMBEDDING_PROVIDER": "local",
"LOCAL_EMBEDDING_MODEL": "Xenova/bge-base-en-v1.5"
}
},
"mnemosyne-global": {
"command": "npx",
"args": ["-y", "@zhadyz/mnemosyne-mcp"],
"env": {
"NEO4J_URI": "bolt://127.0.0.1:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "neo4j",
"EMBEDDING_PROVIDER": "local",
"LOCAL_EMBEDDING_MODEL": "Xenova/bge-base-en-v1.5",
"MNEMOSYNE_FORCE_DATABASE": "neo4j"
}
}
}
}
地方发展
{
"mcpServers": {
"mnemosyne": {
"command": "node",
"args": ["/absolute/path/to/mnemosyne-mcp/dist/router.js"],
"env": {
"NEO4J_URI": "bolt://127.0.0.1:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "neo4j",
"EMBEDDING_PROVIDER": "local",
"LOCAL_EMBEDDING_MODEL": "Xenova/bge-base-en-v1.5"
}
}
}
}
嵌入模型
Mnemosyne支持多种BGE模型:
| 型号 | 尺寸 | 大小 | 用例 |
|---|---|---|---|
| bge-base-en-v1.5 | 768 | 90MB | 平衡(默认) |
| bge-small-en-v1.5 | 384 | 30MB | 资源受限 |
| bge-large-en-v1.5 | 1024 | 200MB | 最大精度 |
| bge-m3 | 1024 | 200MB | 多语言 |
模型在首次使用时自动下载并缓存到 ~/.cache/huggingface/.
用法
创建实体
{
"name": "create_entities",
"arguments": {
"entities": [{
"name": "TypeScript",
"entityType": "programming_language",
"observations": [
"Strongly typed superset of JavaScript",
"Compiles to JavaScript",
"Static type checking"
]
}]
}
}
语义搜索
{
"name": "semantic_search",
"arguments": {
"query": "type-safe languages for web development",
"limit": 5
}
}
建立关系
{
"name": "create_relations",
"arguments": {
"relations": [{
"from": "TypeScript",
"to": "JavaScript",
"relationType": "compiles_to"
}]
}
}
建筑
EmbeddingServiceFactory
├── DefaultEmbeddingService (testing)
├── OpenAIEmbeddingService (cloud)
└── LocalEmbeddingService (ONNX)
所有服务均已实施 IEmbeddingService,实现无缝的提供商交换。
本地嵌入堆栈
- ONNX运行时: 优化的机器学习推理
- Transformers.js: JavaScript机器学习库
- BGE模型: BAAI通用嵌入
- L2标准化: 向量相似性搜索
发展
npm test # Run tests
npm run test:watch # Watch mode
npm run build # Build
npm run dev # Development mode
npm run fix # Lint and format
配置
| 变量 | 选项 | 描述 |
|---|---|---|
EMBEDDING_PROVIDER |
auto, local, openai |
供应商选择 |
LOCAL_EMBEDDING_MODEL |
BGE型号名称 | 本地型号选择 |
NEO4J_URI |
bolt://... |
数据库连接 |
NEO4J_USERNAME |
string | 数据库用户 |
NEO4J_PASSWORD |
string | 数据库密码 |
NEO4J_DATABASE |
string | 数据库名称 |
提供商选择:
auto:如果存在API密钥,则为OpenAI,否则为本地local:始终使用本地嵌入openai:始终使用OpenAI(需要API密钥)
鸣谢
分叉自 纪念mcp 甘农大厅。
附加内容:
- 本地ONNX嵌入支持
- BGE模型集成
- 自动回退配置
- 零依赖操作
许可证
MIT许可证-请参阅 许可证 文件。
贡献
欢迎拉取请求。
建造于 扎兹 由ONNX Runtime+Transformers.js+BGE嵌入提供支持