mcpField
R
Renor

Renor

远程服务
renor.cloud记忆与知识192 天前更新

关于 Renor

Renor 是为编码 Agent 提供的本地记忆服务,可将 Claude Code、Codex、Cursor 保存的内容写入 Markdown 文件,并供后续会话检索。它使用指定文件夹保存笔记和 SQLite 搜索索引;默认不使用模型,也不向设备外发送数据。

主要功能

  1. 01将 Agent 记忆保存为 Markdown
  2. 02跨会话搜索已保存内容
  3. 03支持手动编辑的笔记
  4. 04使用 SQLite 构建搜索索引
  5. 05可选择本地或远程嵌入模型

适用场景

  1. 01在不同编码 Agent 间延续项目决策
  2. 02让新会话查找已保存事实
  3. 03将现有 Markdown 笔记纳入搜索
  4. 04在不配置模型时进行精确词语搜索

MCP 相关

Renor 通过 stdio MCP 服务向客户端提供记忆保存和搜索能力。笔记默认留在本地,配置模型密钥后,相关文本可能会发送给所选模型服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.renor.cloud/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Renor

Claude Code 将一项决策保存到 Renor;一个全新的 Codex 会话将其找回
自托管的 Renor,真实会话:Claude Code 保存一项决策,一个全新的 Codex 会话将其找回。等待过程已加速。

engine-public-ci

Renor 是编码 Agent 的记忆库:它会将你告诉 Claude Code、Codex 或 Cursor 的内容保存在你电脑上的 Markdown 文件夹中,并通过 MCP 将这些内容提供给它们中的任何一个。

每个新的 Agent 会话都从零开始:你得重新解释项目、上周的决策及其原因,还有你纠正过两次的事情。有了 Renor,一个 Agent 保存的信息,下一个 Agent 就能找到。记忆以普通文件的形式保存,由你掌控。它在本地运行,无需账户或 API 密钥;除非你配置了模型,否则不会将任何内容发送到电脑之外。无需安装的托管版本请访问 https://renor.cloud。

快速开始

你需要 Node 22 和 git。安装是唯一需要联网的步骤。

git clone https://github.com/patrickpassosb/renor-engine.git
cd renor-engine
node -v                    # must print v22.x
npm ci && npm rebuild better-sqlite3 --ignore-scripts=false && npm run build
node scripts/smoke-self-hosted.mjs

最后一条命令会启动 MCP 服务,保存一条事实(Ada favorite_color cerulean),用三种方式搜索它,然后停止。它会在临时文件夹中运行,之后删除该文件夹,因此绝不会触碰你的笔记。最后会显示:

PASS: self-hosted stdio MCP can remember and retrieve a current fact.

下载的是 ZIP 文件而不是克隆?ZIP 中没有 git 历史记录可用于标记构建,因此请改用 RENOR_BUILD_COMMIT=0000000 npm run build 进行构建。Node 版本错误或跳过了安装脚本?请参阅故障排除。

连接你的 Agent

**无需克隆。**安装 Node 22 后,一行命令即可注册已发布的包。你的笔记会保存到主目录中的隐藏 .renor 文件夹(~/.renor,启动时会打印到 stderr;不会复用现有的 renor 文件夹);若要使用其他文件夹,可在 claude 命令中添加 -e VAULT_PATH=/absolute/path,或在 codex 命令中添加 --env VAULT_PATH=/absolute/path。首次启动会下载约 130 MB,耗时约 15 秒;如果你的 Agent 显示一次连接失败,请重启它。

claude mcp add --scope user renor-local -- npx -y renor-engine mcp
codex mcp add renor-local -- npx -y renor-engine mcp

对于 Cursor 或任何其他客户端,服务命令为 npx,参数为 -y renor-engine mcp。运行 claude mcp remove renor-local 和 codex mcp remove renor-local 可撤销此操作。本节其余内容介绍如何从克隆的仓库进行同样的设置,同时也能让你修改代码。

从克隆的仓库开始。

选择一个用于存放记忆的文件夹(新建一个空文件夹即可;Obsidian 库也可以),然后为其建立索引。在同一个 shell 中,从 renor-engine 目录运行此命令及以下命令:

export VAULT_PATH="$HOME/renor-notes"    # absolute path; created if missing
node dist/cli.js index

以下每条命令都会使用你当前正在使用的 Node 22 启动 Renor(node -p process.execPath),因此 Agent 不需要在自己的 PATH 中配置 Node 22。在新的终端中,先重新运行 export 那一行:否则每条命令都会报错 VAULT_PATH: run the export line above first,而不会注册一个无法启动的服务(Agent 只会显示“Connection closed”)。

Claude Code

claude mcp add --scope user renor-local -e VAULT_PATH="${VAULT_PATH:?run the export line above first}" -- "$(node -p process.execPath)" "$PWD/dist/cli.js" mcp

重启 Claude Code;在每个项目中,/mcp 都会列出 renor-local。运行 claude mcp remove renor-local 可撤销此操作。

Codex

codex mcp add renor-local --env VAULT_PATH="${VAULT_PATH:?run the export line above first}" -- "$(node -p process.execPath)" "$PWD/dist/cli.js" mcp

重启 Codex;运行 codex mcp list 可以看到它。运行 codex mcp remove renor-local 可撤销此操作。

Cursor

Cursor 从 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目)读取 MCP 服务。运行以下命令可打印配置项:

VAULT_PATH="${VAULT_PATH:?run the export line above first}" node -e 'console.log(JSON.stringify({ mcpServers: { "renor-local": { command: process.execPath,
  args: [process.cwd() + "/dist/cli.js", "mcp"], env: { VAULT_PATH: process.env.VAULT_PATH } } } }, null, 2))'

将其放入该文件,或将 renor-local 配置项合并到现有的 mcpServers 中,然后检查 Cursor 的 MCP 设置,确保已启用 renor-local。(此仓库的 cursor-plugin/ 文件夹是用于 renor.cloud 托管服务的 Cursor 插件,需要 Renor 账号;它不会连接到此引擎。)

**其他任何 MCP 客户端:**命令为 node dist/cli.js mcp(stdio),并设置 VAULT_PATH。

接下来让 Agent 记住一些内容,然后在新会话中询问相关内容。Agent 保存的内容可立即搜索。你手动添加或编辑的 Markdown 文件,则需要再次运行 node dist/cli.js index 后才能搜索。

内容存储位置

内容位置
你的笔记$VAULT_PATH 中的所有 Markdown 文件。Renor 会读取这些文件;你可以使用任何工具编辑它们。
Agent 保存的内容以 Markdown 格式追加到同一文件夹中:事实保存到 System/Memory Events Ledger.md,笔记保存到 Memory/Daily/<date>.md。
搜索索引位于 $VAULT_PATH/.semantic-memory/index.db 的 SQLite 数据库。该索引为派生数据:运行 node dist/cli.js index 会根据 Markdown 文件重建索引。

Renor 保存的所有内容都在这一个文件夹中,因此你可以像处理其他文件夹一样备份、同步或移动它。除非你设置了模型密钥,否则任何内容都不会离开你的设备:EMBEDDING_PROVIDER=openai 会将笔记文本发送给 OpenAI 以生成嵌入;设置证据模型密钥(RENOR_EVIDENCE_API_KEY 或某个 OLLAMA_* 密钥)后,搜索会将匹配到的笔记发送给该模型。如果你的 shell 已导出此类密钥,请在注册服务时添加 -e RENOR_EVIDENCE_MODE=off(Codex:--env)。所有设置及其默认值见:docs/ENVIRONMENT-VARIABLES.md。

**不使用嵌入进行搜索。**未设置任何选项时,Renor 不会使用嵌入模型,因此只能通过笔记中的原词找到内容:blue notebook 可以找到“The blue notebook is on the desk”,但 where is my notebook? 找不到。无论是否使用嵌入,都能找到已保存的事实。若要按含义搜索,请设置 EMBEDDING_PROVIDER=openai 和 OPENAI_API_KEY,或设置 local,以便下载一次模型并在本机运行;然后运行 node dist/cli.js rebuild,为现有笔记生成嵌入(详情)。

更多内容

  • docs/self-hosting.md:故障排查、嵌入、带 OAuth 登录的 HTTP 服务、通过 HTTP 连接 Agent、工具列表、所有者名称、多 Agent(“蜂群”)工具(为每个 Agent 设置 RENOR_CONNECTION_NAME),以及保险库的保护方式。
  • skill/SKILL.md:提供给 Agent 的说明,让它无需提醒即可回忆并保存记忆。大部分内容介绍托管工具(get_context、remember);上文的 renor-local 服务使用其他名称(search、remember_fact、note),详见其 Stdio 部分。

Renor 是单所有者引擎:一个人的笔记,一组 Agent。它不是多用户产品。

贡献、许可证与安全

欢迎贡献。CONTRIBUTING.md 介绍了环境搭建和测试,并列出了适合新手的议题。Renor 自有代码采用 AGPL-3.0-only 许可(LICENSE);从上游项目导入的文件仍采用 ISC 许可(NOTICE、UPSTREAM.md)。请按照 SECURITY.md 中的说明私下报告漏洞,不要在公开议题中报告。

评论

支持 Markdown

第一次接触 MCP?

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

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