使用说明
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
许可证
麻省理工学院
