Memory 知识库与上下文服务器
Memory 知识库与上下文服务器 使用说明
项目简介
Memory 是一个自托管的知识库系统,能够接收和索引多种类型的数据,包括邮件、文档、电子书、网页等,支持语义搜索和备注管理。项目集成了 Model Context Protocol(MCP),通过标准化接口连接支持MCP的AI助手,提供上下文数据和工具调用功能。它支持用户和团队管理,确保多用户环境下的安全和权限控制。
主要功能点
- 多模态内容接入:支持邮件、文档、电子书、网页、漫画等多类型内容导入与处理。
- 语义搜索:基于向量数据库实现跨内容的相关性搜索和检索。
- MCP集成:直接支持Model Context Protocol,方便AI助手访问上下文及执行工具。
- 观察与偏好管理:AI助手可记录和检索用户偏好和长期观察数据。
- 笔记管理:支持Markdown格式的笔记创建和全文检索。
- 用户和团队管理:支持多用户身份验证、权限和团队访问控制。
- RESTful API:提供完整的API,便于程序化访问和集成。
- 后台任务处理:使用Celery和RabbitMQ实现异步内容处理和同步任务。
- 丰富的内容同步:支持邮件同步、网页抓取、Git笔记同步等多种同步方式。
- 安全配置:提供通过代理解决MCP基本认证限制的方案,确保API安全。
安装步骤
-
准备环境
- 安装 Docker 和 Docker Compose
- 确保 Python 3.11 或更高版本(用于工具脚本)
-
克隆仓库并启动开发环境
- 克隆 'memory' 仓库
- 进入项目目录
- 运行 './dev.sh' 脚本启动依赖服务(PostgreSQL、RabbitMQ、Qdrant)并初始化数据库
-
启动完整应用
- 运行 'docker-compose up -d' 启动所有服务,包括API和后台工作者
- 访问 'http://localhost:8000' 使用API和管理界面(管理员界面在 '/admin' 路径)
-
创建用户
- 使用命令 'python tools/add_user.py --email [email protected] --password yourpassword --name "Your Name"' 创建用户
-
配置MCP代理
由于MCP目前不支持基本认证,请使用内置的代理转发请求:- 运行代理:
- 'python tools/simple_proxy.py --remote-server http://localhost:8000 --email [email protected] --password yourpassword --port 8080'
- 将您的AI助手MCP客户端配置为访问 'http://localhost:8080'
- 运行代理:
MCP服务器配置示例
{ "name": "memory", "command": "uvicorn", "args": ["memory.api.api:app", "--host=0.0.0.0", "--port=8001", "--log-level=info"] }
- name:MCP服务器名称
- command:启动FastAPI应用的命令
- args:命令参数,启动内置MCP接口的API服务器,MCP路径默认是'/mcp'
注意:此API服务器默认监听8000端口,MCP客户端通过代理端口(如8080)访问时,代理负责认证和请求转发。
基本使用方法
-
通过MCP协议调用工具
连接到代理端口,AI助手可调用服务器注册的工具,如获取笔记列表、执行搜索、管理任务和团队等。 -
笔记管理
- 列出笔记文件:调用'core_note_files'
- 获取单个笔记内容:调用'core_fetch_file'
- 保存笔记:调用'core_create_note'
-
内容同步和后台任务
使用'run_celery_task.py'脚本运行异步任务,例如同步邮件、电子书、Git仓库等。 -
团队与权限管理
通过命令行工具'tools/access_control.py'管理项目、团队和用户权限。 -
扩展集成
支持Discord通知、GitHub同步、Google Drive和日历等集成服务,使用内置API进行管理。 -
安全
- 不要将API直接暴露于公网
- 使用代理处理认证
- 通过环境变量和 'secrets/' 文件夹安全地管理凭据
详细文档和高级用法参考项目README及代码注释。