mcpField
M
memocall

memocall

本地服务
github.com/baodq06记忆与知识219 周前更新

关于 memocall

MemoCall 是供 Claude Code 使用的只读 MCP 服务,可跨项目检索过往对话并整理为精简 Markdown。它提供搜索、会话提纲和按轮次加载,便于定位长记录中的内容,且不会修改会话文件。

主要功能

  1. 01按项目目录列出会话
  2. 02按关键词搜索对话
  3. 03加载精简 Markdown 记录
  4. 04生成长会话的提示词提纲
  5. 05查找匹配轮次或加载指定范围
  6. 06精简模式省略工具输出

适用场景

  1. 01回忆先前项目中的工作
  2. 02查找讨论过某项设置的会话
  3. 03查看长对话中的指定轮次
  4. 04无需复制记录文件即可获取精简上下文

MCP 相关

MemoCall 通过 MCP 向 Claude Code 提供五种只读工具,读取本地会话记录,并返回可搜索、格式化的对话上下文。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"baodq06-memocall": {
"command": "npx",
"args": [
"-y",
"memocall"
]
}
}
}
启动命令npx -y memocall

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmemocall0.1.0

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
cwdstring否可选:仅表示项目路径包含此子字符串的会话。
limitinteger否要列出的会话数上限(默认值为 40)。

详细介绍

MemoCall

一个 MCP 服务,让 Claude Code 按需回忆你过去对话的上下文——无论来自哪个项目。

Claude Code 可以恢复会话,但要把另一场对话的上下文带入当前会话却很麻烦——要么复制粘贴导出内容,要么手动翻找原始转录文件,而且恢复功能也只能看到当前目录。MemoCall 将这一切变成一句简单的提问:“我之前在做什么?”或“加载我们设置 X 时的会话”,然后它会将转录内容整理成简洁的 Markdown——即使来自完全不同的项目。

它是只读的。Claude Code 已经会将每个会话记录到 ~/.claude/projects/<project>/<id>.jsonl;这个服务只读取这些文件,去除冗余内容、精简工具调用,并返回易读的转录内容。它不会写入文件、挂载钩子,也不会触碰正在进行的会话。

你将获得

安装后,五个工具可在每个会话中使用。Claude 会根据请求选择合适的工具:

工具功能
list_sessions查看所有项目中的近期对话,按目录分组。“我之前在做什么?”
search_sessions按关键词查找过去的对话(匹配标题、首条消息和路径)。
load_session将一场对话加载为简洁的 Markdown——通过 id 或 query。还可通过 turns 指定轮次范围。
session_outline生成一场对话的轻量级大纲:列出你的提示词并编号。非常适合超长会话。
search_in_session仅返回某场对话中与关键词匹配的轮次。

你不需要直接调用这些工具——像平常一样交流,Claude 会调用它们:

You:  what sessions have i worked on recently?
You:  load the one where we set up the license invitation system
You:  which session did we debug the keychain SIGKILL thing in?

转录内容的呈现方式

原始转录是冗长的事件日志(单个大文件就达到 11 MB)。memocall 会像 Conductor 一样,将每轮对话精简为核心内容:

**You:** right now i need to set up a system to invite prospects...
↳ 12 tool calls (Bash ×5, Read ×4, Edit ×3)
**Claude:** I've set up the invitation flow. Key decisions: ...

工具调用的输出会被省略(这是节省令牌的关键,也有助于保护隐私——详见下文)。被放弃或编辑过的消息分支会被移除,让你看到对话实际进行的过程。令牌预算会通过从中间截断,确保即使是 11 MB 的会话也远低于 Claude Code 的 MCP 输出上限。

浏览大型会话

单个响应无法容纳 1,000 轮的会话,因此对于大型会话,不要一次性全部输出,而是逐步浏览:

  1. session_outline → 列出所有提示词并编号,生成一份简短的大纲(任何会话都能容纳)。
  2. search_in_session → 直接跳转到与某个主题相关的轮次,或者使用 turns: "300-340" 调用 load_session,提取指定范围(轮次编号来自大纲)。

这样,你就能始终访问超长对话的中间部分——单独使用 load_session 会从中间截断内容,但借助大纲和范围/搜索工具,Claude 可以按需访问任意部分。

安装

需要 Claude Code CLI(以及 Node 18+)。只需一行命令——npx 会获取并运行已发布的包:

claude mcp add --scope user memocall -- npx -y memocall

--scope user 会让它在所有目录的每个会话中都可用。重启 Claude Code(或开启新会话),然后让它列出你的会话。使用 claude mcp list 验证——你应该会看到 memocall: … ✔ Connected。

或者从源代码运行(用于开发)
git clone https://github.com/baodq06/memocall.git
cd memocall && npm install && npm run build
claude mcp add --scope user memocall -- node "$(pwd)/dist/index.js"

隐私与安全

  • 仅在本地运行。 无网络、无身份验证、无遥测。它只会读取 ~/.claude/projects/ 下的文件,不会读取其他内容。
  • 简洁模式会省略工具输出,而秘密信息(令牌、密钥、环境变量)通常就在这些输出中——因此,默认输出比原始转录安全得多。
  • format: "full" 会包含简短的工具输入,可能会显示敏感字符串。请谨慎使用。
  • 转录中仍可能包含秘密信息;处理已加载的上下文时,应像对待原始对话一样谨慎。

局限性

  • 回忆尽力而为:Claude Code 会在 cleanupPeriodDays 后删除转录记录(默认 30)。
  • 分叉会话可能仅包含分叉后的对话轮次。
  • 转录格式没有文档说明,且可能随 Claude Code 版本变化;所有格式相关知识都集中在 src/jsonl.ts 中,因此如有变化,只需修改一个文件。

开发

npm run build           # compile TypeScript -> dist/
npm test                # unit suite (node:test) on synthetic fixtures
npm run smoke           # optional: checks all YOUR real sessions stay under the output cap
node dist/parser.js <file.jsonl> [--full|--outline] [--turns 10-20] [--search "kw"] [--max N] [--think]   # test the parser
node test-client.mjs    # drive the server over stdio like Claude Code does
npm run inspect         # open the MCP Inspector UI

目录结构:

  • src/jsonl.ts — 转录格式相关的所有知识(辅助函数、排序、分类)。
  • src/parser.ts — JSONL → 精简 Markdown(核心转换)。
  • src/locator.ts — 会话枚举 + 缓存的元数据索引。
  • src/index.ts — 负责连接这三个工具的 MCP 服务。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。