rms_search
Search project memory using semantic queries across vault (Markdown) or code corpora. Returns a decision envelope with ranked results or abstains when relevance is insufficient.
Instructions
Search RMS Memory. Returns a decision envelope: {decision: inject|abstain, reason, injected_ids, results}. corpus=vault (default) searches human Markdown memory; code searches derived semantic code; all ranks each corpus independently and combines them with Reciprocal Rank Fusion, never raw vector distances. Pass projects: [key, …] for read-only cross-project federation (when both project and projects are set, projects wins so injected rules stay compatible); vault/all across multiple projects requires every listed key to have cross_project_vault=true (hard error otherwise — no silent degrade). Weak matches abstain when min_score is set; content is bounded by max_chars.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of chunks to return. Default is 10. | |
| query | Yes | The semantic query string to search for. | |
| corpus | No | Corpus to search. Defaults to vault. | |
| project | No | Registered project key, used when the MCP client did not provide a workspace root. Ignored when `projects` is also set. | |
| projects | No | Explicit list of registered project keys for read-only federated search (max 8 after dedupe). Does not change the active bind. When set together with `project`, this list wins. Vault/all with len>1 requires cross_project_vault=true on every listed key. | |
| max_chars | No | Maximum total characters of injected content across results (default 2000). Truncates/drops weaker hits to stay within budget. | |
| min_score | No | Optional minimum relevance in 0..1 (distance and RRF normalized). If the best hit is weaker, rms_search abstains with an empty results list (fail-closed). | |
| min_confidence | No | Optional minimum confidence threshold (0.0–1.0). Records with NULL confidence are always included. CAUTION: do NOT use high values (e.g. 0.9+) unless you need strict filtering. If zero results, retry without this parameter. | |
| include_content | No | Whether to include full chunk text in results. |