内容
<div align="center">
# 🧠 RMS 内存 MCP
**为 AI 编程代理提供持久、本地优先的内存。**
停止为 Cursor、Zed 和 Claude Code 等每个会话重新解释您的架构。
[](https://opensource.org/licenses/MIT)
[](https://www.rust-lang.org/)
[](https://crates.io/crates/rms-memory-mcp)
[](https://github.com/max-ramas/rms-memory-mcp/releases)
[](https://github.com/max-ramas/rms-memory-mcp/actions)
[]()
[](https://modelcontextprotocol.io)
[功能](#-关键功能) • [安装](#-安装) • [快速入门](#-快速入门) • [CLI](#-CLI-命令) • [MCP 工具](#-MCP-工具暴露) • [架构](#-架构亮点)
</div>
---
## 问题
您正在开发一个项目,但在不同的代理之间切换 — Cursor、Zed、Claude Code、OpenCode。每一个代理在您关闭标签页时都会丢失对架构决策、系统需求和用户偏好的上下文。您最终会一次又一次地重新解释相同的事情,或者在工具之间复制粘贴过时的 `CLAUDE.md`。
**RMS 内存 MCP** 弥补了这一空白:一个单一的、隔离的、集中式的 Markdown 保险库 — 完美地为 LLM 消费而结构化 — 任何兼容 MCP 的 IDE 都可以读写。
## ✨ 关键功能
| | |
|---|---|
| 🗂️ **全局集中式保险库** | 项目上下文存在于您的存储库之外 — 零 `.mcp` 文件污染。 |
| 🔍 **混合检索(LanceDB)** | 嵌入式向量搜索 + Tantivy 全文搜索,实现零失败上下文命中。 |
| 🌐 **多语言语义解析** | `fastembed-rs` + `multilingual-e5-small` — 原生俄语和英语理解。 |
| 🌳 **AST Markdown 分块** | 基于 `pulldown-cmark` 的分块保持代码块和列表与其父标题绑定。 |
| ⚙️ **动态自动安装** | `rms-memory install` 扫描您的系统并将其直接连接到每个受支持的 IDE。 |
| 📜 **代码规则修补** | `.cursorrules`、`.zed/assistant.md` 等的非破坏性 AST 修补。默认情况下选择加入。 |
| 🧪 **干运行和审计** | 在所有地方使用 `--dry-run`。每次写入都会进行滚动备份 `.bak`。 |
| 🛡️ **六点弹性** | GC、后台文件监视器同步、写入保护快照、macOS 沙盒绕过、`llms.txt` 导出、隔离日志记录。 |
## 📦 安装
### 选项 1:Cargo(推荐)
如果您已安装 Rust,只需从 crates.io 安装:
```bash
cargo install rms-memory-mcp
```
### 选项 2:从源代码构建
```bash
# 1. 克隆存储库
git clone https://github.com/max-ramas/rms-memory-mcp.git
cd rms-memory-mcp
# 2. 构建优化的发布二进制文件
cargo build --release
# 3. 将二进制文件添加到您的全局 PATH
cp target/release/rms-memory-mcp ~/.cargo/bin/
```
> `x86_64-unknown-linux-gnu`、`x86_64-pc-windows-msvc` 和 `aarch64-apple-darwin`(Apple Silicon)的预构建二进制文件在每次 [发布](https://github.com/max-ramas/rms-memory-mcp/releases) 时都会发布。单行安装程序(`install.sh` / `install.ps1`)会自动检测您的架构。
## 🚀 快速入门
连接机器上所有 IDE 的最快方法:
```bash
rms-memory install
```
这会扫描 `~/.config/` 和 `~/Library/Application Support/` 并直接将 `rms-memory` 连接到 **Cursor**、**Zed**、**Claude Code**、**OpenCode** 等 — 无需手动 JSON 编辑。
### 配置您的保险库
配置服务器的最简单方法是运行交互式设置向导。您不需要记住任何 CLI 标志 — 只需运行:
```bash
rms-memory config
```
*(或者,您可以直接传递标志:`rms-memory config --vault-path ~/MyVaults/ --auto-add true`)*
下次您在连接的 IDE 中打开项目时,服务器会读取 MCP `initialize` 握手中的 `rootUri` 并提供一个干净、结构化的保险库:
```text
~/MyVaults/
└── <ProjectHash>/
├── rules/
├── decisions/
├── architecture/
├── artifacts/
├── docs/
└── api/
```
## 🛠 CLI 命令
| 命令 | 描述 |
|---|---|
| `rms-memory serve` | 启动 JSON-RPC stdio 服务器(由您的 IDE 自动触发)。 |
| `rms-memory init` | 将项目注册到全局注册表中。支持 `--dry-run`。 `--full` 强制创建所有 IDE 规则模板。 |
| `rms-memory import` | 扫描现有文档(`README.md`、`docs/`、`ADR/`)并导入它们 — 交互式或通过 `--auto-import`。 |
| `rms-memory install` | 将服务器连接到支持的 IDE。支持 `--dry-run`。 |
| `rms-memory config` | 全局设置的交互式设置向导(`vault-path`、`auto-add`、`inject-rules` 等)。 |
| `rms-memory reindex` | 强制重新索引当前项目保险库。 |
| `rms-memory sync` | 增量 LanceDB 删除然后插入同步(在 `serve` 期间也自动运行)。 |
| `rms-memory gc` | 清除属于已删除保险库的孤立 LanceDB 索引。 |
| `rms-memory log` | 尾随遥测日志(`~/.rms-memory/rms.log`)。 |
| `rms-memory export-llms` | 将当前保险库编译为单个 `llms.txt` 有效载荷。 |
## 🔌 MCP 工具暴露
工具描述被编写为 **面向操作**,因此代理在不需要被询问的情况下主动使用保险库。
<table>
<tr><th>工具</th><th>目的</th><th>输入</th></tr>
<tr>
<td><code>rms-memory_rms_search</code></td>
<td>跨保险库的语义搜索。代理被指示在进行任何更改之前首先调用此函数。</td>
<td><code>{ query, limit, include_content }</code></td>
</tr>
<tr>
<td><code>rms-memory_rms_read</code></td>
<td>读取通过 <code>rms_search</code> 找到的文档的完整内容。</td>
<td><code>{ path }</code></td>
</tr>
<tr>
<td><code>rms-memory_rms_write</code></td>
<td>持久化新的决策、约束或规则。代理在解决棘手的问题或学习偏好后被提示主动调用此函数。</td>
<td><code>{ path, content, mode: replace|append|create }</code></td>
</tr>
</table>
## 🏗 架构亮点
<details>
<summary><b>统一配置和知识隔离</b></summary>
一个中央 `~/.rms-memory/registry.toml` 将每个项目路由到一个隔离的保险库,该保险库根据项目路径的哈希值计算。没有 `.mcp` 文件,没有每个存储库的配置 — 全局 MCP 条目(例如 Zed 的 `settings.json`)可以自动定位到任何工作区。
</details>
<details>
<summary><b>链接文档(零复制导入)</b></summary>
`rms-memory import` 可以创建轻量级 **链接文件** — 带有 `link: <path>` frontmatter 属性的 Markdown 存根。读写被透明地重定向到源文件,而向量索引仍然尊重保险库的目录结构。
</details>
<details>
<summary><b>混合搜索(LanceDB + Tantivy)</b></summary>
嵌入式 LanceDB (`~/.rms-memory/dbs/`) 将向量相似性与全文搜索相结合,因此查询永远不会因为确切的关键词不匹配而返回空结果。
</details>
<details>
<summary><b>AST 感知分块</b></summary>
`pulldown-cmark` 直接解析 Markdown AST。块通过遍历到父标题来构建,严格的 1500 个字符边界和约 200 个字符的重叠窗口用于超大代码块 — 没有句子中间的截断。
</details>
<details>
<summary><b>六点生产弹性</b></summary>
1. 用于 `fastembed` 模型下载的 macOS 沙盒绕过
2. `rms-memory gc` — 孤立的向量存储修剪
3. 后台增量同步(`Delete-then-Insert` 在 `mtime` 上)
4. 具有 3 秒延迟重新同步的实时文件监视器
5. 写入保护快照,带有滚动备份(默认:5)
6. `llms.txt` 导出,用于平面、解耦的 LLM 摄入
</details>
## 🧩 支持的 IDE
| IDE | 自动安装 | 规则注入 |
|---|:---:|:---:|
| Cursor | ✅ | `.cursorrules` |
| Zed | ✅ | `.zed/assistant.md` |
| Claude Code | ✅ | `.claude/CLAUDE.md` |
| OpenCode | ✅ | — |
| VS Code | ✅ | — |
| Antigravity | ✅ | — |
## 📄 许可证
MIT 许可证 — 参见 [LICENSE](LICENSE) 了解详情。
<div align="center">
<sub>由 <a href="https://ramzaeff.com">Maksim Ramzaev</a> · <a href="https://rms-ds.com">RMS 数字服务</a></sub>
</div>