Token导航 LogoToken导航TokenDH.com
Memento Core logo
AI代理未说明官方级别未说明来源级核验

Memento Core

MCP Server

Memento是一个为AI助手提供跨会话持久记忆存储和检索的本地服务,采用两阶段检索机制和纯文件存储。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
持久记忆本地存储TypeScriptClaude上下文管理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Kotrotsos

提供方

Kotrotsos

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

纪念品

为AI助手提供持久、可搜索的内存。

Memento是一个MCP服务器,为Claude提供跨会话、项目和机器的长期内存。储存你学到的东西,稍后搜索,只回忆你需要的东西。

没有数据库。没有嵌入模型。没有外部服务。纯文件,在本地运行。

______________________________________________________________________

运作原理

大多数人工智能助手在会话结束时会忘记一切。Memento通过为Claude提供一个可以跨会话读写的持久存储来修复这个问题。

设计围绕 两阶段检索:search返回紧凑的片段,这样AI就可以决定什么是相关的,然后recall只获取它实际需要的条目的完整内容。这使上下文窗口保持精简,成本低。

存储仅在磁盘上附加JSONL文件。搜索是BM25,与大多数搜索引擎的概率排名相同。没有机器学习,没有API,只有快速的确定性文本匹配。

______________________________________________________________________

安装

选项1:克劳德代码插件

claude plugin add github:Kotrotsos/memento-core

插件通过SessionStart钩子在首次使用时自动构建(大约需要10秒)。之后就是瞬间。

选项2:手动

git clone https://github.com/Kotrotsos/memento-core.git
cd memento-core
npm install && npm run build

然后注册MCP服务器。将此添加到您的 ~/.mcp.json 或项目级别 .mcp.json:

{
  "mcpServers": {
    "memento": {
      "command": "node",
      "args": ["/path/to/memento-core/build/index.js"]
    }
  }
}

重新启动克劳德代码。你应该看看 memory_* 工具可用。

______________________________________________________________________

MCP工具

Memento通过模型上下文协议公开了五个工具。

memory_store

创建新内存或更新现有内存。

memory_store(content, namespace?, tags?, id?, relations?, ttl?)
参数类型默认值说明
contentstring必填内存文本
namespace字符串"global"在哪里归档: global, projects/my-app, decisions等等。
tagsstring\[\][]过滤标签: architecture, preference, bug等等。
idstringauto提供一个现有的ID来更新该内存
relationsstring\[\][]相关存储器的ID
ttlstring永久ISO 8601过期。在此时间戳之后,内存将从结果中排除

示例

{
  "content": "Use JSONL for storage. Chosen over SQLite (binary, overkill) and single JSON files (can't stream/append).",
  "namespace": "decisions",
  "tags": ["architecture", "storage"]
}

______________________________________________________________________

memory_search

用BM25排名搜索记忆。返回片段,而不是完整内容。

memory_search(query, namespace?, tags?, limit?)
参数类型默认值说明
querystring必填搜索词
namespacestringall作用域结果到命名空间
tagsstring\[\]--按标签筛选(AND逻辑,所有必须匹配)
limit编号10返回的最大结果

回应

[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "namespace": "decisions",
    "tags": ["architecture", "storage"],
    "snippet": "Use JSONL for storage. Chosen over SQLite (binary, overkill) and single JSON files...",
    "score": 6.41,
    "updated": "2026-02-26T14:30:00Z"
  }
]

摘要是内容的前150个字符,足以在不燃烧上下文的情况下判断相关性。

______________________________________________________________________

memory_recall

获取特定内存ID的完整内容。使用搜索后加载您实际需要的内容。

memory_recall(ids)
参数类型说明
idsstring\[\]以前搜索的一个或多个内存ID

回应

[
  {
    "id": "550e8400-...",
    "namespace": "decisions",
    "content": "Use JSONL for storage. Chosen over SQLite (binary, overkill) and single JSON files (can't stream/append). JSONL is append-friendly, streamable, human-readable, and grep-compatible.",
    "tags": ["architecture", "storage"],
    "created": "2026-02-26T14:30:00Z",
    "updated": "2026-02-26T14:30:00Z",
    "source": "claude-code",
    "relations": [],
    "ttl": null
  }
]

______________________________________________________________________

memory_delete

软删除内存。该条目保留在JSONL文件中,但被排除在所有查询之外。

memory_delete(id, namespace)

______________________________________________________________________

memory_list_namespaces

列出所有具有条目计数的命名空间。没有参数。

[
  { "namespace": "global", "count": 42 },
  { "namespace": "projects/my-app", "count": 17 },
  { "namespace": "decisions", "count": 8 }
]

______________________________________________________________________

管理用户界面

Memento包括一个用于浏览和管理记忆的网络界面。

npm run admin

开放时间: http://localhost:3000.自定义端口:

MEMENTO_ADMIN_PORT=8080 npm run admin

您将获得:

  • 带有内存计数、命名空间计数、标签云和最近条目的仪表板
  • 带深入查看功能的命名空间浏览器
  • 带有元数据(标签、时间戳、源、TTL、关系)的全内存查看器
  • 通过表单创建、编辑和删除
  • BM25使用命名空间和标签过滤器进行搜索
  • 包含存储路径和磁盘使用情况的服务器信息页面

______________________________________________________________________

让克劳德自动使用Memento

当克劳德在会话开始时回忆上下文,并在结束前存储重要内容时,记忆碎片效果最佳。您可以使用Claude Code钩子来强制执行此操作。

1.创建挂钩脚本

~/.claude/hooks/session-start-memento.sh

#!/bin/bash
INPUT=$(cat)
PROJECT=$(basename "$(echo "$INPUT" | jq -r '.cwd // empty')" 2>/dev/null)
if [ -n "$PROJECT" ]; then
  echo "[Memento] Search Memento for relevant memories about \"$PROJECT\" before starting work."
else
  echo "[Memento] Search Memento for relevant memories before starting work."
fi

~/.claude/hooks/stop-memento.sh

#!/bin/bash
STOP_REASON=$(cat | jq -r '.stop_reason // "end_turn"')
if [ "$STOP_REASON" = "end_turn" ]; then
  echo "[Memento] Before finishing: did you store significant findings, decisions, or completed work in Memento?"
fi
chmod +x ~/.claude/hooks/session-start-memento.sh
chmod +x ~/.claude/hooks/stop-memento.sh

2.将钩子登记在 ~/.claude/settings.json

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "bash ~/.claude/hooks/session-start-memento.sh",
            "timeout": 5
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "bash ~/.claude/hooks/stop-memento.sh",
            "timeout": 5
          }
        ]
      }
    ]
  }
}

3.自动允许Memento工具

将这些添加到 permissions.allow 所以克劳德从来不需要征得许可:

{
  "permissions": {
    "allow": [
      "mcp__memento__memory_store",
      "mcp__memento__memory_recall",
      "mcp__memento__memory_search",
      "mcp__memento__memory_delete",
      "mcp__memento__memory_list_namespaces"
    ]
  }
}

______________________________________________________________________

书写美好回忆

你得到的东西的质量取决于你储存的东西的品质。

正面加载关键信息。 BM25不关心位置,但片段显示了前150个字符。把核心事实放在第一位。

# Good
Use JSONL for storage. Chosen over SQLite (binary) and single JSON files (can't stream).

# Bad
After a long discussion about storage options, we eventually decided that JSONL would work best.

每个记忆一个概念。 单独的关注点不会竞争相关性,可以独立回忆。

始终包含标签。 没有标签的记忆只能通过全文搜索找到。

使用命名空间对域进行分段。 一个 global 包含数千个条目的命名空间会变得嘈杂。范围至 projects/my-appdecisions 以获得更清洁的结果。

______________________________________________________________________

存储布局

~/.memento/
  memories/
    global.jsonl
    decisions.jsonl
    procedures.jsonl
    projects/
      my-app.jsonl
      another-project.jsonl

每一行 .jsonl 文件是一个内存条目。写入总是附加的。更新会写入一个具有相同ID的新条目,加载程序只保留最新版本。删除并写入一个条目 deleted: true.

MEMENTO_HOME 更改基本目录。

______________________________________________________________________

配置

变量默认值描述
MEMENTO_HOME~/.memento所有存储的基本目录
MEMENTO_ADMIN_PORT3000管理web UI的端口

______________________________________________________________________

插件命令

当作为Claude Code插件安装时,有三个斜线命令可用:

命令描述
/memento-search 搜索记忆,并可选择回忆完整内容
/memento-store 使用引导的命名空间和标签选择存储内存
/memento-admin [port]启动管理web UI

______________________________________________________________________

技术细节

  • 建筑:设计原则、存储模型、搜索算法、上下文工程
  • 架构参考:完整字段引用、数据消除规则、响应格式
  • 上下文工程指南:渐进式披露策略、写作指南、反模式、缩放

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

持久记忆本地存储TypeScriptClaude上下文管理本地部署AI助手信息检索

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP