Skip to main content
Glama

memory-mcp

为 AI 智能体提供持久化、可搜索、带版本控制的记忆功能 —— 由 Valkey(兼容 Redis)提供支持,并通过 HTTP 以 MCP 服务器形式暴露。

适用于任何兼容 MCP 的智能体:Claude Code、Cursor、VS Code 等。

功能特性

  • 存储带有标签、类型和项目作用域的命名记忆条目

  • 支持标签交集搜索、类型/项目过滤以及子字符串搜索

  • 点击追踪(被访问次数多的条目会排在前面)

  • 完整的版本历史记录及回滚功能

  • Prometheus 指标端点

  • 可选的 Bearer Token 认证

Related MCP server: CORTEX Memory MCP

快速开始

cp .env.example .env
# Optional: set MEMORY_MCP_AUTH_TOKEN in .env (see Auth section)
docker compose up -d

这将从 GHCR 拉取预构建的镜像。现在 MCP 服务器可在 http://127.0.0.1:3106/mcp 访问。

如需本地构建:

docker compose build
docker compose up -d

使用现有的 Redis 或 Valkey

默认情况下,docker compose up -d 会启动一个捆绑的 Valkey 容器。若要连接到现有的 Redis 或 Valkey 实例,请设置 VALKEY_URL 并仅启动 memory-mcp 服务:

# .env
VALKEY_URL=redis://your-host:6379

docker compose up -d memory-mcp

任何兼容 Redis 的服务器(Redis 6+、Valkey、KeyDB、通过 rediss:// 连接的 Upstash 等)均可使用。该服务器仅使用基础数据结构:哈希、列表和集合。

智能体设置

将本仓库中的 AGENTS.md 复制到你的项目根目录。它会告知你的智能体如何使用记忆工具、存储什么内容以及何时存储。

然后向你的智能体客户端注册该 MCP 服务器:

Claude Code

# Without auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp

# With auth
claude mcp add memory --transport http http://127.0.0.1:3106/mcp \
  --header "Authorization: Bearer your-token"

或者手动添加到 ~/.claude.json:

{
  "mcpServers": {
    "memory": {
      "type": "http",
      "url": "http://127.0.0.1:3106/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

Cursor

添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目):

{
  "mcpServers": {
    "memory": {
      "url": "http://127.0.0.1:3106/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

VS Code (GitHub Copilot, MCP 扩展)

添加到项目中的 .vscode/mcp.json:

{
  "servers": {
    "memory": {
      "type": "http",
      "url": "http://127.0.0.1:3106/mcp",
      "headers": { "Authorization": "Bearer your-token" }
    }
  }
}

如果你不使用认证,请在任何配置中省略 headers / Authorization 行。

配置

将 .env.example 复制为 .env 并根据需要进行编辑。

变量

默认值

描述

MEMORY_MCP_BIND

127.0.0.1

绑定的接口。仅在设置了 AUTH_TOKEN 时使用 0.0.0.0。

MEMORY_MCP_HOST_PORT

3106

宿主机暴露的端口

MEMORY_MCP_AUTH_TOKEN

(空)

/mcp 的 Bearer token。为空则不认证。生成方式:openssl rand -hex 32

MEMORY_MCP_MAX_ENTRIES_WARN

300

软上限 — 超过时写入会发出警告

MEMORY_MCP_MAX_VERSIONS_PER_ENTRY

20

每个条目的最大版本快照数

MEMORY_MCP_MEM_LIMIT

256m

容器内存上限

VALKEY_IMAGE

valkey/valkey:9.0.3

使用的 Valkey 镜像

认证

默认情况下,服务器在未认证状态下运行。当绑定到回环地址 (127.0.0.1) 且仅从本地机器访问时,这是安全的。

若要启用认证:

# Generate a token
openssl rand -hex 32

# Add to .env
MEMORY_MCP_AUTH_TOKEN=your-generated-token

docker compose up -d

此后所有对 POST /mcp 的请求必须包含:

Authorization: Bearer <token>

GET /health 和 GET /metrics 始终无需认证。

可用工具

工具

描述

memory_search

按标签(交集)、类型、项目或文本子字符串搜索

memory_get

通过 ID 获取一个条目(增加点击计数)

memory_set

创建或更新条目(每次写入都会生成版本)

memory_list

列出条目,支持可选的类型/项目过滤

memory_delete

删除条目(先写入墓碑版本)

memory_history

查看条目的版本历史

memory_rollback

将条目恢复到之前的版本

memory_prune_candidates

找出零点击的陈旧条目以供审查(只读)

记忆类型

pattern(模式), decision(决策), reference(参考), feedback(反馈), incident(事件), project(项目), entity(实体), state(状态)

端点

方法

路径

认证

描述

POST

/mcp

若已配置

MCP JSON-RPC 端点

GET

/health

无

健康检查

GET

/metrics

无

Prometheus 指标

数据模型

每个条目都作为 Redis 哈希存储在 mem:<id> 中:

字段

描述

title

简短的描述性标题

body

完整内容

type

条目类型

tags

逗号分隔的标签列表

source

编写者

project

项目作用域(为空则表示跨项目)

created

创建的 ISO 日期

updated

最后更新的 ISO 日期

hits

通过 memory_get 获取的次数

ttl

过期时间(秒,可选)

版本历史记录存储在 memver:<id> 的 Redis 列表中(最新优先,上限为 MAX_VERSIONS_PER_ENTRY)。

标签、类型和项目索引为 Redis 集合 (tag:<name>, type:<name>, project:<name>)。

许可证

MIT

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers