# RSI Boot (pypi · rsi-boot)

Repo-bound memory and self-improving harness for AI coding agents — zero API keys.

- Trust score: 83/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- pypi · `rsi-boot`: 83/100 (this document), [markdown](https://verifymcp.io/servers/apollo-lwx-rsi-boot/rsi-boot.md), [page](https://verifymcp.io/servers/apollo-lwx-rsi-boot/rsi-boot)

## Channel facts

- Registry: `pypi`
- Package: `rsi-boot`
- Version: `0.1.7`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 2 of 42 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to Apollo-lwx/rsi-boot).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 56/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4143 tokens (~258/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 95% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "rsi_knowledge_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the RSI Boot MCP server?

RSI Boot runs locally as a PyPI package, launched with uvx rsi-boot. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add apollo-lwx-rsi-boot -- uvx rsi-boot
```

### Cursor

```json
{
  "mcpServers": {
    "apollo-lwx-rsi-boot": {
      "command": "uvx",
      "args": [
        "rsi-boot"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "apollo-lwx-rsi-boot": {
      "command": "uvx",
      "args": [
        "rsi-boot"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add apollo-lwx-rsi-boot -- uvx rsi-boot
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "apollo-lwx-rsi-boot": {
      "type": "local",
      "command": [
        "uvx",
        "rsi-boot"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add apollo-lwx-rsi-boot --command uvx --arg rsi-boot
```

### Hermes

```yaml
mcp_servers:
  apollo-lwx-rsi-boot:
    command: "uvx"
    args: ["rsi-boot"]
```

### Netclaw

```json
{
  "McpServers": {
    "apollo-lwx-rsi-boot": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "rsi-boot"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add apollo-lwx-rsi-boot -t stdio -c uvx -a rsi-boot
```

### Other

```json
{
  "mcpServers": {
    "apollo-lwx-rsi-boot": {
      "command": "uvx",
      "args": [
        "rsi-boot"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 83, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-11-03 (score 67, 0)

- [security improvement] Malware scan: unverified → pass
- [functional] Package version: 0.1.6 → 0.1.7

### 2026-11-02 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 65, −15)

- [security regression] Malware scan: pass → unverified

### 2026-10-29 (score 80, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-27 (score 64, +1)

- [functional] Package version: 0.1.5 → 0.1.6

### 2026-10-26 (score 63, 0)

- [functional] Package version: 0.1.3 → 0.1.5
- [functional] Package version: 0.1.3 → 0.1.4

## MCP tools (16)

### `rsi_recall` (~202 tokens)

Call before any coding, adaptation, debugging, or design task. Returns prohibitions you must follow, related items, and a skill catalog (name/description/path only). Use feedback_token with rsi_feedback before you wrap up. If decisions is non-empty, call rsi_conflicts / rsi_knowledge_review immediately; do not ask the user to run rsi in a terminal. 任务开始前调用。返回必须遵守的 prohibitions、相关 items，以及技能目录。用 feedback_token 在收工前调用 rsi_feedback。有 decisions 时立刻调 rsi_conflicts / rsi_knowledge_review，不要让用户去终端跑 rsi。

Input parameters:

- `role` (string): 调用方角色（如 developer/test/pm）
- `task` (string, required): 即将开始的任务描述（自然语言）
- `top_k` (integer): 返回条数上限（缺省由召回策略臂决定）

### `rsi_explore` (~225 tokens)

Navigate the knowledge tree by domain module. Empty path lists top-level modules with counts; pass a path (e.g. backend or backend/api) to drill down and list member items (title/brief/id), plus graph edges (related / conflicts) touching this node's items. Use rsi_recall to pull full content after you find the node you want. 按领域板块浏览知识树：空 path 列顶层板块与计数；传 path（如 backend 或 backend/api）下钻列出成员条目（标题/简述/id）并附本节点条目的图谱关联（related）与冲突（conflicts）；需要正文用 rsi_recall。

Input parameters:

- `depth` (integer): 返回的子树层级深度（默认 2）
- `limit` (integer): 最多列出成员条目数（默认 50）
- `path` (string): 知识树节点路径；空 = 列顶层板块，如 backend 或 backend/api = 下钻该板块

### `rsi_feedback` (~217 tokens)

Submit feedback on a recall: explicit rating or IDE implicit action (accepted/applied/modified/copied/referenced/ignored/rejected). On rejected, a comment is extracted as a prohibition. 对召回结果提交反馈：显式评分或 IDE 隐式行为（accepted/applied/modified/copied/referenced/ignored/rejected）；rejected 时填 comment 将提炼为禁止项。

Input parameters:

- `action` (string, required): accepted/applied=采纳应用 modified=修改后采纳 copied=复制 referenced=参考 ignored=忽略 rejected=拒绝
- `comment` (string): 可选评语；action=rejected 时填写将提炼为禁止项（§4.4）
- `feedback_token` (string, required): rsi_recall 返回的反馈令牌
- `modified_content` (string): action=modified 时的修改后内容（用于 diff 比例计算）
- `rating` (integer): 可选 1-5 评分（与 action 可叠加，分别生效）

### `rsi_knowledge_add` (~219 tokens)

Add a knowledge item (title + content required). 添加知识条目（title + content 必填）。

Input parameters:

- `content` (string, required): 条目正文
- `content_type` (string): prohibition/convention/skill/documentation 或案例类型
- `domain` (string): 领域
- `expiry_condition` (string): 失效条件：什么情况下该记忆应视为过时（如「迁移到 JPA 后作废」）
- `pack_id` (string): 阅读包 id；蒸馏时必填，写入 pack_id: 标签
- `roles` (array): 适用角色，空=通用
- `source_url` (string): 来源（文档路径/signal），带来源的 active 落正式
- `tags` (array): 标签
- `title` (string, required): 条目标题
- `trigger_condition` (string): 前提条件：这条记忆在什么前提下成立（如「仅当使用 MyBatis 时」）

### `rsi_knowledge_search` (~87 tokens)

Search the knowledge base (FTS5 + CJK bigram by default; embedding is optional). 搜索知识库（默认纯 FTS5 + CJK bigram；embedding 为可选增强）。

Input parameters:

- `query` (string, required): 检索查询
- `role` (string): 角色过滤
- `top_k` (integer): 返回条数上限

### `rsi_knowledge_delete` (~42 tokens)

Delete a knowledge item (deletion right). 删除指定知识条目（删除权）。

Input parameters:

- `id` (string, required): 知识条目 ID

### `rsi_knowledge_update` (~352 tokens)

Update an existing memory in place by id (title/content/tags/roles/domain/description/trigger_condition/expiry_condition) — prefer updating over re-adding duplicates. action=merge combines near-duplicates: keep the more complete one, archive the rest (recoverable, not hard-deleted) and record a supersedes edge. Preserves id and location. 按 id 原地更新已有记忆（改 title/content/tags/roles/domain/description/前提与失效条件），改优于新建重复。action=merge 合并近重复：保留更完整者、其余归档（可恢复非硬删）并写 supersedes 边；保留 id 与所在目录。

Input parameters:

- `action` (string): update=按 id 原地改字段（默认）；merge=合并近重复
- `content` (string): 新正文（短知识≤1500，案例类≤20000）
- `description` (string): 一句话简述
- `domain` (string): 领域/板块
- `expiry_condition` (string): 失效条件
- `id` (string): update 必填：目标条目 id
- `ids` (array): merge 必填：待合并的条目 id（≥2）
- `keep_id` (string): merge 可选：指定保留者；缺省自动取正文最长/最新的一条
- `roles` (array): 适用角色（整体替换）
- `tags` (array): 标签（整体替换）
- `title` (string): 新标题（≤120 字）
- `trigger_condition` (string): 前提条件

### `rsi_knowledge_review` (~307 tokens)

Approve pending norms: approve moves to official dirs and injects prohibitions; reject archives. Does not create new bodies. Approved conventions are recall-only (no rsi-convention rule files). 审批 pending 规范：approve 搬到正式目录并注入禁止项，reject 搬到 archive。不新建正文。约定获准后只进召回，不会写成 rsi-convention 规则文件。

Input parameters:

- `action` (string, required): approve/reject=审批；skip=抑制决策卡（不审批）
- `all_pending` (boolean): true = 审批 tags 不含 bootstrap_run_id 的 pending（日常 auto-extract 等）；不含本轮 bootstrap 抽取，除非同时传 bootstrap_run_id
- `bootstrap_run_id` (string): 只审批该 bootstrap 轮次的抽取（与 all_pending 联用，或单独表示本轮全部）
- `content_type` (string): 批量审批时按内容类型过滤（convention/architecture/faq/documentation）
- `id` (string): 待审知识条目 ID；action=skip 时为决策卡 id（extract:<run_id> 或冲突 id）
- `ids` (array): 批量审批的条目 ID 列表
- `include_archived` (boolean): 批量审批时包含 archived（bootstrap 限量溢出）条目

### `rsi_review` (~143 tokens)

Harness improvement proposals: list/approve/reject/rollback/generate and config snapshots snapshot_list/snapshot_switch/snapshot_export. Harness 改进提案：list/approve/reject/rollback/generate 及配置快照 snapshot_list/snapshot_switch/snapshot_export。

Input parameters:

- `action` (string, required): 操作类型
- `out_dir` (string): bundle 导出目录（snapshot_export）
- `proposal_id` (string): 提案 ID（approve/reject/rollback）
- `reason` (string): reject/rollback 理由
- `status` (string): list 状态过滤
- `version` (integer): 快照版本（snapshot_switch/export）

### `rsi_conflicts` (~561 tokens)

List or resolve suspected conflicts. Three kinds: (1) learned memory vs handwritten rules (contradiction/stale/overlap) — user_wins keeps your rule (learned memory no longer injected), memory_wins keeps learned memory (edit the rule file yourself), coexist keeps both and stops reminding; (2) knowledge pairs (version/doc_code/incoherent) — keep_item keeps item_id and archives the peer source_url, keep_peer keeps the user_rule_path side, coexist keeps both; (3) explain (conflict_id required) expands both sides read-only. Call explain first when the user wants detail; do not close the card. 查询疑似冲突并对冲突做出裁决。三类：① 学习记忆 vs 手写规则（contradiction/stale/overlap）——user_wins=以你的规则为准（学习记忆不再注入）、memory_wins=以学习记忆为准（返回规则文件位置请手动修改）、coexist=两者共存不再提醒；② 知识对（version/doc_code/incoherent）——keep_item=保留 item_id 侧并归档对侧 source_url、keep_peer=保留 user_rule_path 侧、coexist=两侧转/保持可用且不再提醒；③ explain（conflict_id 必填）=只读展开两侧摘录与各 option 影响，不改库。用户要展开说明时先 explain，不要关掉抉择卡。

Input parameters:

- `action` (string, required): list=查询冲突（默认） resolve=裁决 scan=立即扫描 explain=只读展开
- `bootstrap_run_id` (string): list 过滤：只列该 bootstrap run 的冲突（item 侧或 user_rule_path 侧条目 tags 含 bootstrap_run_id:<id>）
- `conflict_id` (string): resolve/explain 必填：冲突 id
- `decisions` (array): resolve 批量：逐条裁决，存在时忽略 conflict_id/resolution
- `limit` (integer): list 分页：每页条数（夹到 [1, 200]）
- `note` (string): resolve 可选：裁决备注
- `offset` (integer): list 分页：起始偏移
- `resolution` (string): resolve 必填：规则冲突用 user_wins/memory_wins/coexist；version/doc_code/incoherent 用 keep_peer/keep_item/coexist
- `status` (string): list 过滤：open/user_wins/memory_wins/keep_peer/keep_item/coexist/closed/all

### `rsi_stats` (~179 tokens)

Memory usage stats: period=day/week/month summaries of reach, adoption, prohibition follow-through, and proposal pass rate. 记忆使用统计：period=day/week/month 汇总触达/采纳/禁止项遵循/提案通过率。

Input parameters:

- `export` (boolean): true 时导出到 ~/.rsi/exports/ 并返回路径
- `format` (string): 导出格式（默认 json）
- `group_by` (string): 分组维度：intent 或召回臂 arm
- `include_stale` (boolean): true 时附失活候选（长期未召回且未编辑的正式条目，只读）
- `period` (string, required): 统计周期（必填）
- `stale_days` (integer): 失活判定天数（默认 30）

### `rsi_impact` (~359 tokens)

Value/impact panel for evangelism: injected cost (chars + est tokens), recall value (hit rate + on-demand exposure vs full corpus), behavioral gains (adoption, compliance, proposal pass), a time curve, and an A/B token-savings calculator. Honesty: RSI cannot see the host's real token usage, so 'tokens saved' is ONLY produced from a user-supplied before/after comparison (ab={baseline:{tokens,tasks},treatment:{tokens,tasks}}); without it no savings number is invented. export=true writes a one-page markdown to ~/.rsi/exports/. 价值/影响力面板（供宣讲）：注入成本（字符+token 估算）、召回价值（命中率与按需暴露 vs 全库）、行为收益（采纳/合规/提案通过率）、时间曲线，以及一个 A/B 省 token 计算器。诚实原则：RSI 看不到宿主真实 token 用量，‘省了多少’只在用户喂入用前/用后对照（ab 参数）时才产出，否则不编造任何省量；export=true 导出一页纸 markdown。

Input parameters:

- `ab` (object): 用前/用后对照输入（数字来自宿主自己报的 token 用量，本工具只做差，不估算）
- `export` (boolean): true 时导出一页纸 markdown 到 ~/.rsi/exports/ 并返回路径
- `period` (string): 统计窗口（默认 week）
- `snapshot` (boolean): true 时顺带把当前窗口聚合落一条日快照（攒长期曲线）

### `rsi_learn` (~501 tokens)

Teaching / audit / closeout learn / promote / reading-pack actions. The host agent writes the lesson (Catch→Teach→Fix) then teach_record; RSI does not write the lesson. pack_list / pack_open / pack_done walk reading packs. Unavailable actions return not_in_phase — follow message. 教学/审计/收工学习/晋升/阅读包。Agent 自己 Catch→Teach→Fix 后 teach_record；不要让 RSI 代写 lesson。pack_list / pack_open / pack_done 串联阅读包。未开放的 action 返回 not_in_phase，按 message 改用其它工具。

Input parameters:

- `action` (string): teach_catch / teach_record / skip / rubric / audit_start / audit_probes / audit_report / audit_finish / extract / promote / pack_list / pack_open / pack_done
- `changed_files` (array): host ATS file list for audit_start
- `disclaimer_partial` (boolean)
- `draft_id` (string): alias of id
- `findings` (array): host findings for audit_report
- `globs` (array): host ATS globs for audit_start
- `id` (string): teach-draft id or reading-pack id
- `items` (array): classified closeout items for extract
- `lane` (string): pack_list filter: skills_rules / teaching / docs / code / git / conversation / cursor / other
- `lang` (string): explicit locale override
- `lesson` (object): host-written lesson; correct_fix required for teach_record
- `low_confidence` (boolean)
- `overall` (string): pass or fail
- `pack_id` (string): alias of id for pack_open / pack_done
- `payload` (object)
- `probe_results` (array): uploaded probe results; RSI does not exec
- `probe_summary` (object)
- `promote_to_pattern` (boolean)
- `reason` (string): skip reason
- `reopen_skipped` (boolean): pack_list: true = 把不允许 skip 的 skipped 包改回 pending
- `scope` (string): audit/extract scope: session or full
- `scope_id` (string): required when scope=full
- `status` (string): pack_done: done / skipped / pending
- `system_attempts` (array): teach_catch attempts
- `trigger` (object): teach_catch trigger

### `rsi_memory_health` (~249 tokens)

Memory health findings: scan/list/explain/resolve. scan attributes a rejected or low-rated recall to every retrieved id, opens incorrect when comment polarity contradicts the memory, and opens stale_source when a changed source file no longer contains the title phrase. resolve is archive, revise, keep, or snooze. Scan never archives by itself. 记忆健康发现：scan/list/explain/resolve。scan 把拒绝或低分记到本次召回的每一条记忆上；评语极性与记忆相反时开 incorrect，来源已变且标题短语不在文件中时开 stale_source。resolve 取 archive、revise、keep、snooze。扫描本身不会归档。

Input parameters:

- `action` (string, required): scan=立即扫描 list=列出发现 explain=只读展开 resolve=裁决
- `finding_id` (string): explain / resolve 必填
- `note` (string): resolve 可选备注
- `resolution` (string): resolve 必填：archive / revise / keep / snooze
- `status` (string): list 过滤；缺省为 open 与 awaiting_edit

### `rsi_memory` (~136 tokens)

Open or search memory files. index lists entries, open reads one id, reindex rebuilds cache, graph returns mermaid text, rules lists what is injected into the host. 打开或检索记忆文件。index 列目录，open 按 id 读全文，reindex 重建缓存，graph 返回 mermaid 文本，rules 列出当前注入宿主的记忆。

Input parameters:

- `action` (string): index / open / reindex / graph / rules
- `id` (string): exact 32-hex document id for open
- `lang` (string): explicit locale override

### `rsi_web_ui` (~225 tokens)

Open or close the local memory dashboard. action=open (default) binds 127.0.0.1 and returns url (path /dashboard) plus snapshot_url (/api/snapshot). action=close stops the listener so the page is unreachable. action=status only reports whether it is listening. Do not change rsi serve startup args; the page stays down until this tool is opened. Show the returned url to the user. 开关本机记忆大屏。action=open（默认）只绑 127.0.0.1，返回 url（路径 /dashboard）和 snapshot_url（/api/snapshot）。action=close 关掉监听，页面即不可访问。action=status 只查询是否在听。不要改 rsi serve 的启动参数；没调用 open 之前没有页面。把返回的 url 告诉用户。

Input parameters:

- `action` (string): open 开启本机页面（默认）；close 关闭后地址不可访问；status 只查询是否在听。不要改 rsi serve 的启动参数。

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/apollo-lwx-rsi-boot/rsi-boot#diagnostics

## Score history

- 2026-11-05: 83
- 2026-11-04: 67
- 2026-11-03: 67
- 2026-11-02: 67
- 2026-11-01: 66
- 2026-10-31: 66
- 2026-10-30: 65
- 2026-10-29: 80
- 2026-10-28: 64
- 2026-10-27: 64
- 2026-10-26: 63
- 2026-10-25: 63
- 2026-10-24: 76
- 2026-10-23: 76
- 2026-10-22: 61

## Common questions

### What is the RSI Boot MCP server?

RSI Boot is an MCP server listed in the public MCP registry as io.github.Apollo-lwx/rsi-boot. Repo-bound memory and self-improving harness for AI coding agents, zero API keys. This page covers its PyPI package (rsi-boot).

### Is the RSI Boot MCP server safe to use?

RSI Boot scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the RSI Boot MCP server expose?

RSI Boot exposes 16 tools: rsi_recall, rsi_explore, rsi_feedback, rsi_knowledge_add, rsi_knowledge_search, and 11 more. Their descriptions and schemas cost roughly 4,004 tokens of context every time the server is loaded.

### Is the RSI Boot MCP server still maintained?

RSI Boot is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the RSI Boot MCP server under?

RSI Boot declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/rsi-boot/
- Socket report: https://socket.dev/pypi/package/rsi-boot
- Repository: https://github.com/Apollo-lwx/rsi-boot
- Changelog RSS feed: https://verifymcp.io/servers/apollo-lwx-rsi-boot/rsi-boot.xml
- Changelog JSON feed: https://verifymcp.io/servers/apollo-lwx-rsi-boot/rsi-boot.json
- HTML version of this page: https://verifymcp.io/servers/apollo-lwx-rsi-boot/rsi-boot
