返回市场
内存银行MCP

内存银行MCP

作者:Protocol-Lattice13 星标更新:2025-11-17

项目介绍

内存银行 MCP 服务器

一款生产就绪的 模型上下文协议 (MCP) 服务器,提供强大的向量原生内存库供 AI 代理使用。该服务器基于 Protocol-Lattice Go Agent 框架,支持持久化、可搜索和可共享的内存,并且支持多种数据库后端。

  • 服务器名称: memory-bank-mcp
  • 版本: 0.1.0

特性

  • 多种向量存储后端: 将记忆持久化到您首选的数据库中。

    • 内存: 快速测试和临时存储。
    • PostgreSQL: 使用 pgvector 扩展。
    • Qdrant: 专用向量数据库。
    • MongoDB: 使用 Atlas 向量搜索。
  • 丰富的内存管理:

    • 短期缓冲区: 在会话中暂时存储记忆,然后再将其提交到长期存储。
    • 长期持久化: 嵌入并存储记忆以实现跨会话的语义检索。
    • 上下文检索: 根据查询获取相关记忆,结合短期和长期结果。
  • 共享内存“空间”:

    • 创建共享内存“空间”,多个代理或用户可以协作。
    • 细粒度访问控制 (ACLs),包括 readerwriteradmin 角色。
    • 支持授予和空间的生存时间 (TTL)。
  • 动态嵌入: 使用来自 Go Agent 框架的 AutoEmbedder,允许通过环境变量配置嵌入模型(例如,OpenAI、Gemini、本地模型)。

配置

使用环境变量配置服务器。

内存存储

设置 MEMORY_STOREinmemorypostgresqdrantmongo 中的一个。

  • PostgreSQL:
    export MEMORY_STORE="postgres"
    export POSTGRES_DSN="postgres://user:pass@host:port/db?sslmode=disable"
    
  • Qdrant:
    export MEMORY_STORE="qdrant"
    export QDRANT_URL="http://localhost:6333"
    export QDRANT_COLLECTION="memories"
    export QDRANT_API_KEY="..." # 可选
    
  • MongoDB:
    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

可用的 MCP 工具

服务器暴露了一整套工具用于内存操作。

核心内存

  • health.ping: 检查服务器是否运行。
  • memory.embed: 获取一段文本的向量嵌入。
  • memory.add_short: 将记忆添加到会话的短期缓冲区。
  • memory.flush: 将会话的短期缓冲区持久化到长期向量存储。
  • memory.store_long: 直接嵌入并存储记忆在长期存储中。
  • memory.retrieve_context: 从会话中检索与查询相关的记忆。

空间(共享内存)

  • spaces.upsert: 创建或更新一个具有 TTL 和 ACL 的共享空间。
  • spaces.grant: 授予一个主体对空间的角色(readerwriteradmin)。
  • spaces.revoke: 撤销一个主体对空间的访问。
  • spaces.list: 列出一个主体有权访问的所有空间。

共享会话

  • shared.join: 让一个主体的会话视图包含特定的空间。
  • shared.leave: 从一个主体的会话视图中移除一个空间。
  • shared.add_short_to: 直接将短期记忆添加到共享空间。
  • shared.retrieve: 从一个主体的合并视图(本地 + 加入的空间)中检索记忆。

MCP 配置:

{
	"servers": {
    "memory-bank": {
      "command": "/usr/local/bin/memory-bank-mcp",
      "args": ["-transport", "http", "-addr", ":8080"]
    }
	},
	"inputs": []
}

诊断

  • engine.metrics: 获取内存引擎性能指标的快照。