内存数据库服务

MCP Memory Enhanced是一个增强版的内存数据库服务,支持JSON和SQLite双存储后端,提供高性能和可扩展性,适用于需要快速数据存储和检索的场景。

  • by JamesPrial
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 JamesPrial/mcp-memory-enhanced

使用说明

MCP内存增强

增强型叉子 MCP内存服务器 SQLite后端支持可提高性能和可扩展性。 现在是v1.0.0-生产就绪! 🚀

🚀 特征

  • 双存储后端:在JSON(原始)和SQLite存储之间进行选择
  • 性能优化:SQLite后端,用于更快的实体创建和搜索
  • 生产就绪Docker支持:多阶段构建、运行状况检查和UnRAID兼容性
  • 向后兼容:与原始MCP协议100%兼容
  • 迁移工具:从JSON无缝迁移到SQLite存储
  • 综合基准测试:内置性能验证和监控

📊 性能比较

<<<<<<<头 基于10000个实体的基准:

操作 JSON后端 SQLite后端 改进
实体创建 678毫秒 145毫秒 快4.7倍
搜索(5个查询) 90毫秒 67毫秒 快1.3倍
内存使用量 11.3MB 11.3MB 相似
存储空间 3.9MB 9.6MB JSON更紧凑

注意:性能因硬件和数据集特性而异。SQLite擅长索引搜索和并发访问,而JSON为这个数据集大小提供了更简单的部署和更小的文件大小。

基于1万至50万个实体的数据集的综合基准(2025-08-08年验证):

操作 JSON后端 SQLite后端 改进
实体创建(10万) 60.86秒 1.95秒 快31倍
实体创建(500K) 979.38s 8.24s 快119倍
搜索(10K数据集) 312.91ms/搜索 13.41ms/搜索 快23倍
内存使用量 ~400MB(100K) ~20MB(100K) 减少92%
存储大小* TBD TBD 减小约30%

*存储大小验证待定;初步测试显示减少了30-40%

备注:性能改进随数据集大小而变化。更大的数据集显示出更显著的改进,50万个实体的创建速度提高了119倍,内存减少了90%以上。使用Node.js v22在标准硬件上运行基准测试。

dev/v.0.2

🐳 Docker快速入门

docker run -d \
  --name mcp-memory-enhanced \
  -p 6970:6970 \
  -v /path/to/data:/data \
  -e STORAGE_TYPE=sqlite \
  ghcr.io/jamesprial/mcp-memory-enhanced:latest

📦 安装

来自npm(通过GitHub)

# Latest version
npm install github:JamesPrial/mcp-memory-enhanced

# Specific version
npm install github:JamesPrial/mcp-memory-enhanced#v1.0.0

来源

git clone https://github.com/JamesPrial/mcp-memory-enhanced.git
cd mcp-memory-enhanced
npm install
npm run build

使用Docker Compose

docker-compose up -d

🔧 配置

环境变量

变量 默认值 描述
STORAGE_TYPE json 存储后端: sqlite 或 json
STORAGE_PATH OS临时目录 数据文件目录
SQLITE_DB_NAME knowledge.db SQLite数据库文件名
PORT 6970 健康检查服务器端口(仅限Docker)
LOG_LEVEL info 日志记录级别

MCP配置

添加到MCP客户端设置中:

{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/mcp-memory-enhanced/dist/index.js"],
      "env": {
        "STORAGE_TYPE": "sqlite",
        "STORAGE_PATH": "/path/to/data"
      }
    }
  }
}

🔄 从JSON到SQLite的迁移

# Using the migration tool
npm run migrate /path/to/knowledge-graph.jsonl

或者使用Docker:

docker run --rm \
  -v /path/to/json-data:/source \
  -v /path/to/sqlite-data:/data \
  ghcr.io/jamesprial/mcp-memory-enhanced:latest \
  node dist/migrate.js /source/knowledge-graph.jsonl

🏥 健康检查(仅限Docker)

Docker容器在以下位置提供了一个健康端点 http://localhost:6970/health:

{
  "status": "healthy",
  "timestamp": "2025-08-05T12:00:00.000Z",
  "storage": {
    "type": "sqlite",
    "stats": {
      "entityCount": 1000,
      "relationCount": 500,
      "observationCount": 2000,
      "storageSize": 1048576
    }
  }
}

🚀 UnRAID部署

  1. 下载 UnRAID模板
  2. 在UnRAID web UI中:Docker→ 添加容器→ 模板
  3. 选择模板文件并根据需要进行配置

🛠️ 发展

运行测试

npm test

构建Docker镜像

docker build -f Dockerfile.standalone -t mcp-memory-enhanced .

本地运行

STORAGE_TYPE=sqlite npm start

📈 建筑

增强型MCP内存服务器使用干净的存储抽象层:

┌─────────────────┐
│   MCP Client    │
└────────┬────────┘
         │ stdio
┌────────▼────────┐
│   MCP Server    │
│   (index.ts)    │
└────────┬────────┘
         │
┌────────▼────────┐
│ KnowledgeGraph  │
│    Manager      │
└────────┬────────┘
         │
┌────────▼────────┐
│ IStorageBackend │
└────────┬────────┘
         │
    ┌────┴────┐
    │         │
┌───▼───┐ ┌──▼────┐
│ JSON  │ │SQLite │
└───────┘ └───────┘

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feat/amazing-feature)
  3. 提交您的更改(git commit -m 'feat: add amazing feature')
  4. 推到分支(git push origin feat/amazing-feature)
  5. 打开拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📊 状态

  • 第一阶段:✅ 核心实施(完成)
  • 第二阶段:✅ Docker支持(完整)
  • 第三阶段:✅ CI/CD管道(完整)
  • 第四阶段:🔄 生产硬化(下)

🤖 通过以下方式增强了生产使用❤️ 通过 @詹姆斯·普里阿尔