AI代码代理记忆服务器

RLM Memory MCP Server是一个为AI代码代理提供持久化记忆和语义文件发现的服务,通过记录代码变更和构建语义索引,帮助AI代理在不同会话间保持记忆并快速定位相关文件。

  • by jumpino27
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 jumpino27/RLM-Memory-MCP-Server

使用说明

RLM内存MCP服务器

任何AI编码代理的持久内存+语义文件发现。

适用于Claude Code、OpenAI Codex、Gemini CLI、Cursor、Windsurf——任何会说话的东西 主控程序.

这是什么?

AI代理在会话之间会忘记一切。此MCP服务器修复了以下问题:

  • 🧠 记忆 --每次任务完成后,代理都会记录 什么 它改变了 为什么下一节课,它记得。
  • 🗺️ 文件映射 -代码库的语义索引(“此文件是登录表单”,“这是签出API”),因此代理找到正确的文件 无需对整个repo进行grep操作.
  • 🔄 双向的 --代理人 询问 MCP(“用户想修复提交按钮——哪些文件?”),MCP会回复文件、历史记录和建议。

核心思想(递归大模型):代理故意对文件系统“视而不见”,并将MCP用作眼睛和内存,使其更快、更便宜、更专注。

┌────────────────────────────────────────────────────────┐
│  AI Agent (Claude Code, Codex, Gemini CLI, Cursor...)  │
│                                                        │
│  "User wants to fix login" ──► rlm_query               │
│                            ◄── relevant files+history  │
│  [does the work]                                       │
│  "Here's what I changed"   ──► rlm_smart_memory        │
└────────────────────────────────────────────────────────┘
                          │ stdio (MCP)
┌────────────────────────────────────────────────────────┐
│  RLM Memory MCP Server                                 │
│  • JSON storage per project (projects/<name>/.rlm/)    │
│  • AI-powered matching via OpenRouter or Gemini        │
│  • Web UI for you at http://localhost:3848             │
└────────────────────────────────────────────────────────┘

设置分为3个步骤

1.安装和构建

git clone https://github.com/jumpino27/RLM-Memory-MCP-Server.git
cd RLM-Memory-MCP-Server
npm install
npm run build

2.添加API密钥

复制 .env.example 到 .env 并设置 一 按键:

# Option A (recommended): OpenRouter — one key, any model
# https://openrouter.ai/keys
OPENROUTER_API_KEY="sk-or-..."

# Option B: Google Gemini direct — https://aistudio.google.com/
# GEMINI_API_KEY="..."
  • 随着 开放路由 服务器使用 google/gemini-3.5-flash 默认情况下——快速、廉价、接近Pro质量。
  • 随着 双子座直接 它使用 gemini-3.5-flash.
  • 根本没有钥匙? 一切仍然使用关键字匹配(只是不那么聪明)。

想要一个不同的模型吗?集 LLM_MODEL (例如。 anthropic/claude-haiku-4.5 或 openai/gpt-4o-mini OpenRouter上)。看 .env.example 对于所有选项。

3.连接您的AI代理

替换 C:\\path\\to 在那里克隆了repo。

克劳德代码 (一个命令):

claude mcp add rlm-memory -- node C:\\path\\to\\RLM-Memory-MCP-Server\\dist\\index.js

OpenAI Codex命令行界面 --添加到 ~/.codex/config.toml:

[mcp_servers.rlm-memory]
command = "node"
args = ["C:\\path\\to\\RLM-Memory-MCP-Server\\dist\\index.js"]

Gemini CLI --添加到 ~/.gemini/settings.json:

{
  "mcpServers": {
    "rlm-memory": {
      "command": "node",
      "args": ["C:\\path\\to\\RLM-Memory-MCP-Server\\dist\\index.js"]
    }
  }
}

任何其他MCP客户端:启动 node dist/index.js 超过stdio。

💡 告诉你的代理人如何使用它: 从以下位置复制规则 example_agents.md 进入您代理的说明文件(CLAUDE.md, AGENTS.md, .cursorrules, …).


工作流程

首次参与项目 --索引一次:

rlm_init → rlm_index_codebase → rlm_verify_index

之后的每一项任务 --三个步骤:

1. rlm_query          "User wants X — which files?"   → files + history + tips
2. (agent does the actual work)
3. rlm_smart_memory   "Here's what I changed"         → remembered forever

就是这样。代理工作得越多,记忆就越聪明。


工具

日常司机

工具 它做什么
rlm_query ⭐ 在这里开始每一项任务。 询问用户的请求→ 获取相关文件、过去的记忆和建议
rlm_smart_memory ⭐ 在这里结束每一项任务。 使用丰富的元数据(组件类型、功能区域、编辑历史)记录更改

项目设置

工具 它做什么
rlm_init 注册一个项目以进行内存跟踪
rlm_index_codebase 扫描代码库并构建语义文件映射
rlm_verify_index 后索引检查:“这就是全部吗?”——显示细分+差距

维护和额外费用

工具 它做什么
rlm_manage_sitemap 删除/移动/重命名文件时,保持文件映射同步
rlm_status 项目统计
rlm_list_projects 所有跟踪项目
rlm_recall_memory 简单的关键字内存搜索(传统--首选 rlm_query)
rlm_find_files_by_intent 语义文件搜索(传统--首选 rlm_query)
rlm_create_memory 基本内存创建(传统--首选 rlm_smart_memory)

例子: rlm_query

{
  "project_name": "my-app",
  "user_request": "The user wants to fix the submit button color on the login form"
}

退货:

{
  "relevant_files": [
    { "path": "src/components/LoginForm.tsx", "description": "Login form with submit button",
      "component_type": "form", "feature_area": "auth",
      "recent_changes": ["Added hover state to submit button"] }
  ],
  "relevant_memories": [
    { "summary": "Changed submit button to theme primary color", "date": "..." }
  ],
  "ai_analysis": "The submit button lives in LoginForm.tsx and uses theme.ts colors...",
  "suggestions": ["Check theme.ts for the color tokens"]
}

例子: rlm_smart_memory

{
  "project_name": "my-app",
  "user_prompt": "Fix the submit button color",
  "changes_context": "Changed the submit button in LoginForm to use the primary theme color instead of hardcoded blue. Added hover state.",
  "files_modified": [
    { "path": "src/components/LoginForm.tsx", "change_type": "modified",
      "change_summary": "Button color now uses theme.primary, added hover state" }
  ],
  "affected_areas": ["auth", "ui"]
}

Web UI(为你,人类)

npm start   # → http://localhost:3848
  • 浏览所有项目、内存和语义文件映射
  • 从浏览器测试每个MCP工具
  • 删除过时的内存/文件条目
  • 查看实时AI提供商状态(例如。 openrouter · google/gemini-3.5-flash)

配置参考

所有设置均已生效 .env (参见 .env.example):

变量 默认值 描述
OPENROUTER_API_KEY -- OpenRouter密钥(推荐)-- 得到一个
GEMINI_API_KEY -- 谷歌Gemini密钥-- 得到一个
LLM_PROVIDER auto auto / openrouter / gemini.Auto更喜欢OpenRouter
LLM_MODEL google/gemini-3.5-flash (OpenRouter)/ gemini-3.5-flash (直接) 您的供应商提供的任何型号
LLM_REASONING_EFFORT low minimal / low / medium / high --助手呼叫的思考深度
LLM_MAX_TOKENS 4096 每次调用的最大输出令牌数
LLM_TIMEOUT_MS 60000 每次请求超时
UI_PORT 3848 Web UI端口
RLM_DATA_DIR <install dir>/projects 存储项目内存的位置(将其设置为将数据保存在安装树之外)

脚本: npm start (网络用户界面)· npm run mcp (MCP服务器直接)· npm run build · npm test (端到端烟雾测试)· npm run dev (具有自动重新加载功能的UI)· npm run typecheck


数据是如何存储的

一切都是纯JSON,不需要数据库:

RLM-Memory-MCP-Server/
└── projects/
    └── my-app/.rlm/
        ├── config.json       # project info
        ├── memory_log.json   # every recorded task
        └── file_map.json     # the semantic file index

备份 通过复制 projects/. 检查 使用任何文本编辑器或web UI。


常见问题

这在没有API密钥的情况下工作吗? 是的,所有工具都回归到加权关键字匹配。AI匹配更聪明。

为什么要集中存储数据,而不是在每个仓库中存储? 一个可以备份的地方,可以在UI中跨项目浏览,没有 .rlm 仓库中的杂乱,即使仓库被删除,也能幸存下来。

哪种代理最有效? 任何具有MCP能力的代理。工具描述教代理如何使用它们,以及 example_agents.md 有插入指令。

rlm_query 对比 rlm_recall_memory? rlm_query 搜索文件+记忆+编辑历史记录并添加AI分析。 rlm_recall_memory 只按关键字搜索记忆。使用 rlm_query.

人工智能的成本是多少? 助手调用很小,推理工作量很低。随着 google/gemini-3.5-flash (1.5美元/M输入,9美元/M输出)典型查询的成本只有几分之一。


项目结构(供贡献者使用)

src/
├── index.ts            # MCP server entry (stdio) — registers all tools
├── ui/server.ts        # Web UI (Express) at localhost:3848
├── services/
│   ├── llm.ts          # Multi-provider AI layer (OpenRouter / Gemini + fallbacks)
│   └── database.ts     # JSON file storage
├── tools/              # MCP tool implementations
├── schemas/index.ts    # Zod input validation
├── types.ts            # Shared types
└── constants.ts        # Paths, models, limits

许可证

麻省理工学院