一款生产就绪的 模型上下文协议 (MCP) 服务器,提供强大的向量原生内存库供 AI 代理使用。该服务器基于 Protocol-Lattice Go Agent 框架,支持持久化、可搜索和可共享的内存,并且支持多种数据库后端。
memory-bank-mcp0.1.0多种向量存储后端: 将记忆持久化到您首选的数据库中。
pgvector 扩展。丰富的内存管理:
共享内存“空间”:
reader、writer 和 admin 角色。动态嵌入: 使用来自 Go Agent 框架的 AutoEmbedder,允许通过环境变量配置嵌入模型(例如,OpenAI、Gemini、本地模型)。
使用环境变量配置服务器。
设置 MEMORY_STORE 为 inmemory、postgres、qdrant 或 mongo 中的一个。
export MEMORY_STORE="postgres"
export POSTGRES_DSN="postgres://user:pass@host:port/db?sslmode=disable"
export MEMORY_STORE="qdrant"
export QDRANT_URL="http://localhost:6333"
export QDRANT_COLLECTION="memories"
export QDRANT_API_KEY="..." # 可选
export MEMORY_STORE="mongo"
export MONGO_URI="mongodb+srv://..."
export MONGO_DATABASE="main"
export MONGO_COLLECTION="memories"
SHORT_TERM_SIZE: 每个会话短期缓冲区的最大项目数。(默认:20)DEFAULT_SPACE_TTL_SEC: 空间的默认生存时间(秒)。(默认:86400 / 24小时)服务器使用 AutoEmbedder,它尊重来自 Go Agent 框架的 ADK_EMBED_* 环境变量。例如,要使用 Gemini:
export ADK_EMBED_PROVIDER="gemini"
export ADK_EMBED_MODEL="text-embedding-004"
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
go install github.com/Protocol-Lattice/memory-bank-mcp@latest
# 运行服务器(默认使用 stdio 传输)
memory-bank-mcp
服务器暴露了一整套工具用于内存操作。
health.ping: 检查服务器是否运行。memory.embed: 获取一段文本的向量嵌入。memory.add_short: 将记忆添加到会话的短期缓冲区。memory.flush: 将会话的短期缓冲区持久化到长期向量存储。memory.store_long: 直接嵌入并存储记忆在长期存储中。memory.retrieve_context: 从会话中检索与查询相关的记忆。spaces.upsert: 创建或更新一个具有 TTL 和 ACL 的共享空间。spaces.grant: 授予一个主体对空间的角色(reader、writer、admin)。spaces.revoke: 撤销一个主体对空间的访问。spaces.list: 列出一个主体有权访问的所有空间。shared.join: 让一个主体的会话视图包含特定的空间。shared.leave: 从一个主体的会话视图中移除一个空间。shared.add_short_to: 直接将短期记忆添加到共享空间。shared.retrieve: 从一个主体的合并视图(本地 + 加入的空间)中检索记忆。{
"servers": {
"memory-bank": {
"command": "/usr/local/bin/memory-bank-mcp",
"args": ["-transport", "http", "-addr", ":8080"]
}
},
"inputs": []
}
engine.metrics: 获取内存引擎性能指标的快照。