io.github.Octonove/crbro-memory
NPM · CRBRO-MEMORY · SCANNED SEP 29
Persistent file-based memory for AI agents: inspectable, versionable, fully local.
Available components
Recent critical change
Malware scan (11 Sept 2026). See the changelog before you install this server.
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. How we score → Why this is hard to score →
Supply Chain Security48
- Malware check failed: a supply-chain vendor flagged critical malware; the score is capped at 0. See how to fix → Fail
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability61
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6247 tokens (~416/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management55
- Stability check failed: the tool surface changed between 1.12.0 and 2.6.0: 9 tool removals, 1 breaking changes, 1 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (20% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.Octonove/crbro-memory MCP server?
io.github.Octonove/crbro-memory runs locally as an npm package, launched with npx -y crbro-memory. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · crbro-memory
claude mcp add octonove-crbro-memory -- npx -y crbro-memory
{
"mcpServers": {
"octonove-crbro-memory": {
"command": "npx",
"args": [
"-y",
"crbro-memory"
]
}
}
} {
"servers": {
"octonove-crbro-memory": {
"command": "npx",
"args": [
"-y",
"crbro-memory"
]
}
}
} codex mcp add octonove-crbro-memory -- npx -y crbro-memory
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"octonove-crbro-memory": {
"type": "local",
"command": [
"npx",
"-y",
"crbro-memory"
],
"enabled": true
}
}
} openclaw mcp add octonove-crbro-memory --command npx --arg -y --arg crbro-memory
mcp_servers:
octonove-crbro-memory:
command: "npx"
args: ["-y", "crbro-memory"] {
"McpServers": {
"octonove-crbro-memory": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"crbro-memory"
]
}
}
} assistant mcp add octonove-crbro-memory -t stdio -c npx -a -y crbro-memory
{
"mcpServers": {
"octonove-crbro-memory": {
"command": "npx",
"args": [
"-y",
"crbro-memory"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 22 Sept 26 0
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.85 ▲ functional
- 21 Sept 26 0
- Malware indicator (confirmed malware) ▼ critical
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Known CVEs: unverified → pass ▲ security
- Malware indicator (confirmed malware) cleared ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Dependency health: unverified → 0.85 ▲ functional
- First check of Schema quality: unverified functional
- Package version: 2.5.1 → 2.6.0 functional
- 20 Sept 26 0
- Malware indicator (confirmed malware) ▼ critical
- Malware indicator (confirmed malware) ▼ critical
- Stability: fail → unverified ▼ security
- Known CVEs: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware indicator (confirmed malware) cleared ▲ security
- Capabilities: pass → unverified ▼ functional
- Dependency health: 0.85 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 2.4.0 → 2.5.1 functional
- Package version: 2.4.0 → 2.5.0 functional
- 11 Sept 26 −57
- Malware scan: unverified → fail ▼ critical
- Malware indicator (confirmed malware) ▼ critical
- Score status: scored → failed ▼ critical
- Malware indicator (confirmed malware) cleared ▲ security
- 10 Sept 26 +57
- Malware scan: fail → unverified ▼ security
- Score status: failed → scored ▲ functional
- Package version: 2.3.1 → 2.4.0 functional
- 9 Sept 26 0
- Malware indicator (confirmed malware) ▼ critical
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware indicator (confirmed malware) cleared ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 2.2.0 → 2.3.1 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 29 Sept 2026 · Analysed npm/crbro-memory@2.6.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 93 packages
| Packages resolved | 93 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
crbro_audit Audit for credentials ~132
Read-only scan of every field of every neuron (facts, decisions, patterns, preferences, errors, debts, system map) and of every session log for credentials stored before the filter caught them — API keys, tokens, passwords. Reports where they sit and what kind, never the values. Findings are in the search index too, so recall can return them: remove with crbro_forget (facts for entries, session for a day log), then rotate the credential. Run it after upgrading and whenever a secret may have been pasted into a conversation. crbro_inspect shows content; this only judges it.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| facts_affected | number | yes | – |
| findings | array | yes | – |
| message | string | yes | – |
| neurons_affected | number | yes | – |
| note | string | – | – |
| session_findings | array | – | – |
| sessions_affected | number | – | – |
No examples provided.
crbro_boot Boot the brain ~147
Read the brain at session start — call it FIRST in every conversation, before any other work; writes only the boot stamp (and the brain itself on first use). Loads memory from earlier sessions: hot topics, active context with open_items and recently_closed (never report recently_closed as pending; verify open_items before repeating them), recent_sessions, counts, active protocols as a protocol_enforcement block you must follow, memory_discipline (the rules for using this memory well) and retired_tools (old tool names → their replacement). Readies the search index and syncs shared team spaces (offline is normal). Skipping it loses all context; close the session with crbro_consolidate.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
crbro_connect Connect two neurons ~354
Write: create, strengthen or delete the undirected synapse between two neurons; both ids are validated. action=connect (default) creates at strength 0.5 and adds +0.1 per repeat call (cap 1.0), or sets the absolute strength you pass; action=disconnect deletes the synapse and unlinks both neurons — the destructive side. Idle synapses decay and crbro_maintenance prunes the weak; crbro_consolidate links neurons written in the same session by itself, so use this for relationships beyond co-occurrence. To read connections use crbro_inspect view=neuron. Returns synapse_id, action (created|strengthened|disconnected|absent) and strength.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | connect = create or strengthen (default); disconnect = delete the synapse and unlink both neurons. An absent synapse returns action:absent, removed:false, not an error. |
| context | string | – | One line on the relationship. On strengthen it replaces the stored text; omit to keep it. |
| from | string | yes | Exact neuron id, e.g. "project_octochat". Validated: an unknown id is an error. |
| strength | number | – | Absolute strength 0.0-1.0 to set, on create or on an existing synapse, instead of the 0.5 / +0.1 rule. |
| to | string | yes | Exact neuron id. Order does not matter — (a,b) and (b,a) are the same synapse. |
| type | string | – | Relationship kind, used only when the synapse is created (default conceptual). Ignored on strengthen and on disconnect. |
No output schema declared.
No examples provided.
crbro_consolidate Consolidate the session ~299
Write: close the session — the only way to log a session. Call it before the conversation ends. Persists pending knowledge and index writes, logs the session from summary (credentials stripped, kinds in redacted), sets the context's last_session, recalculates heat, links the neurons written this session with weak temporal synapses (synapses_updated), updates the manifest and syncs shared team spaces (offline is normal). Returns session_id, facts_saved, decisions_saved, topics_touched and per-space sync state; topics_touched logs neurons you only read. Not consolidating loses the session's knowledge. Mid-session open items go to crbro_context; housekeeping is crbro_maintenance.
| Name | Type | Req | Description |
|---|---|---|---|
| summary | string | yes | A headline paragraph, not a report: what was done, decided and left open, in a few sentences. The facts themselves belong in crbro_learn, where recall finds them; this text is re-read at every boot.… |
| topics_touched | array | – | Neuron ids this session used WITHOUT writing (recalled, inspected, discussed). Added to the log's topics_touched next to the ids written this session; write counters stay real. Unknown ids are droppe… |
No output schema declared.
No examples provided.
crbro_context Working context ~332
Read or write the working context: active topics, open items, recently closed, last session. Called with no arguments it only reads (written:false, nothing touched); any argument writes and returns the full state plus resolved and discarded. Close items as soon as they are done — resolve_pending records them in recently_closed, discard_pending drops one without recording it, clear empties everything — because an item left open is repeated back to the user in later sessions long after it was finished. Sessions are logged by crbro_consolidate, not here.
| Name | Type | Req | Description |
|---|---|---|---|
| add_pending | string | – | Add an open item, written so it can be checked later. Identical text is deduplicated, so re-adding is a safe no-op. |
| clear | boolean | – | Empty active_topics, pending_tasks and recently_closed. Runs before the other updates in the same call. |
| discard_pending | string | – | Drop an open item by id or 8+ characters of its text WITHOUT recording it as done (it never appears in recently_closed). Same matcher as resolve_pending; matches come back in discarded. |
| resolve_pending | string | – | Close an open item by id (e.g. "p_ab12cd") or by 8+ characters of its text (case-insensitive substring; several items can close at once). Matches move to recently_closed, newest first, capped at 15.… |
| set_topics | array | – | Replace the whole active-topics list with these neuron ids (no merge). crbro_consolidate also rewrites it from the session. |
No output schema declared.
No examples provided.
crbro_forget Forget for good ~582
Write, destructive: remove from disk after a quarantine copy (backup returned). Stage 3 of the lifecycle: something must not exist on disk at all — a credential, personal data, a whole neuron → crbro_forget; for knowledge that merely stopped being true use crbro_revise, which keeps the history. One mode per call. facts: delete entries of a neuron (facts, decisions, patterns, preferences, errors, debts, the map) by id or exact text. entire: delete the whole neuron and its synapses — call it without confirm_token first: the dry run reports what would happen and returns confirm_token. Show the user, get agreement, call again with the token; a stale token is refused. restore: bring back the newest quarantine copy. merge_into: union a neuron into another, rewire synapses, delete the source. session: delete one day's log, search index included (quarantine keeps the text). entire and merge_into refuse a shared neuron — crbro_share unshare first. A removed credential must still be rotated.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_token | string | – | Only with entire:true — the token from the dry run. Derived from the neuron's counts, so it goes stale (and is refused) when the neuron changed in between. |
| entire | boolean | – | Mode entire: delete the whole neuron and its synapses. Without confirm_token it is a dry run — { neuron_id, dry_run:true, counts, shared_in, confirm_token }. Refused (no token) while the neuron is sh… |
| facts | array | – | Mode facts: fact ids, or the exact text of a fact, decision, pattern, preference, error or debt; the exact full text of the map removes the map. Deleted for good after a quarantine copy; decision/pat… |
| merge_into | string | – | Mode merge_into: target neuron id or name. Everything of `neuron` is unioned into it, synapses rewired, then `neuron` is deleted (quarantined first). Refused while `neuron` is shared. |
| neuron | string | – | Neuron id or name the mode acts on. Required for every mode except session. restore needs the exact neuron id. |
| restore | boolean | – | Mode restore: bring back the newest quarantine copy of `neuron` (exact id). If the neuron exists again, the copy is merged into it (merged_into_existing:true, moved counts). The quarantine file stays… |
| session | string | – | Mode session: session id ("session_2026-09-03" or "2026-09-03") whose log is deleted after a quarantine copy. `neuron` is not needed. |
No output schema declared.
No examples provided.
crbro_inspect Inspect the brain ~738
Read-only views of the brain by id or name; to search by content use crbro_recall. Nothing is written by any view: every read leaves the brain untouched. view=status answers any question about CRBRO itself: version, brain path, totals, last boot/consolidation, whether semantic recall is installed and on, hot_topics_recalculated. view=neuron: an index of one neuron — header, counts, connections (min_strength filters) and every entry as id, kind, date and preview, paged with limit/offset; entries=[ids or exact text] reads those in full, detail=full returns the whole neuron, shortened and declared when large. view=neurons: rows hottest first (id, name, domain, type, heat, last_accessed, facts_count), filtered by domain, type, min_heat, paged with limit/offset. view=sessions: day logs newest first, the only place session summaries are read. view=global_map: one cluster per domain plus cross-domain bridges, computed live. Params of other views are ignored.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | string | – | view=neuron: "index" (default) returns the header, counts and every entry as id, kind, date and a short preview — cheap, then read what matters with `entries`. "full" returns the whole neuron with fa… |
| domain | string | – | view=neurons: exact domain match, e.g. "proyectos-web". |
| entries | array | – | view=neuron: read these entries in full — their ids from the index or from crbro_recall, or their exact text. Any kind: fact, decision, pattern, preference, error, debt, or "map" for the system map.… |
| include_superseded | boolean | – | view=neuron: also list superseded and retracted entries of every kind (default false; the index reports how many are hidden in entries_pagination.hidden_retired). detail=full always returns entry_sta… |
| limit | integer | – | Page size. view=neuron: index entries per page (default 25, max 200); view=neurons: rows (default 50, max 500); view=sessions: day logs (default 10, max 100). Other views ignore it. |
| min_heat | number | – | view=neurons: minimum heat, 0.0-1.0. Heat blends access frequency, recency and connectivity. |
| min_strength | number | – | view=neuron: drop connections weaker than this (0.0-1.0). Omit or 0 = all. |
| neuron | string | – | view=neuron only, required there: neuron id (e.g. "project_octochat") or name (e.g. "OctoChat"). |
| offset | integer | – | Items to skip. view=neuron: index entries; view=neurons: rows after the heat sort. Default 0. |
| session | string | – | view=sessions: read one day log whole by its id, e.g. "session_2026-09-07" (from crbro_recall sessions_matched or the list). Ignores limit and offset. |
| type | string | – | view=neurons: only this neuron type. |
| view | string | yes | Which read to perform. Only the params listed for that view are honoured; the rest are ignored, never an error. |
| Name | Type | Req | Description |
|---|---|---|---|
| global_map | object | – | – |
| neuron | object | – | – |
| neurons | object | – | – |
| sessions | object | – | – |
| status | object | – | – |
| view | string | yes | – |
No examples provided.
crbro_learn Learn something ~637
Write: store a fact, decision, pattern, preference, error or debt on a topic; the neuron is created if missing (or pass neuron_id). Stage 1 of the lifecycle: a new truth that REPLACES an old one → crbro_learn with supersedes (one call does both); to retire with no replacement use crbro_revise; to delete from disk use crbro_forget. crbro_recall first — it may already exist. The same fact text again is not duplicated: keywords merge (or keywords_replace) and a changed confidence applies (updated_in_place); text matching a retired fact or entry is refused with skipped_retired. Decisions always append; preferences never leave this machine. Credentials are replaced with a marker and listed in redacted — crbro_secret them, record only the name. Returns neuron_id, action, superseded count, near_duplicates (stored anyway; retire the old telling), supersedes_unmatched (still live) and totals.
| Name | Type | Req | Description |
|---|---|---|---|
| confidence | number | – | 0.0-1.0, default 1.0. Facts only. On an exact-duplicate active fact the stored confidence is updated to this value (updated_in_place:true). |
| content | string | yes | The knowledge itself. Dense and self-contained: it is recalled without this conversation as context. |
| domain | string | – | Domain, e.g. "proyectos-web". Applied when the neuron is created; on an existing neuron it only replaces the default "general" (crbro_revise domain replaces it unconditionally). |
| keywords | array | – | Facts only. 2-5 words a future question may use that the text does not contain: synonyms, the other language, the generic name of the product named. Indexed with the fact, never shown. The same text… |
| keywords_replace | boolean | – | When the exact fact text already exists, replace its stored keywords with `keywords` instead of merging (default false). Teammates in a shared space only ever receive the union. |
| neuron_id | string | – | Exact neuron id from crbro_recall, e.g. "project_octochat". Skips name matching entirely, and then topic is not needed. |
| rationale | string | – | Why the decision was taken. Stored and indexed with it; ignored for other types. |
| supersedes | array | – | Facts this one replaces: their ids or exact text. They leave recall but stay in the file. Unmatched targets are reported and stay live. |
| topic | string | – | Topic name, e.g. "OctoChat", "Firebase", "SEO Strategy". Required UNLESS you pass neuron_id, in which case the topic is taken from that neuron. |
| type | string | yes | error = a mistake plus its correction, in one entry. debt = a deliberate deferral: what was NOT done on purpose, its ceiling, and the revisit condition, e.g. "DEFERRED: protecting the PDFs. CEILING:… |
No output schema declared.
No examples provided.
crbro_maintenance Brain maintenance ~587
Write: brain housekeeping — recalculate heat, prune weak synapses, check integrity, rebuild the search index. Returns a report (counts, integrity_issues, repairable, notes) and flags debts without a revisit trigger. dry_run:true writes nothing at all (the global map is computed live, never cached). Extras are OFF unless asked: archive cold neurons (on a mature brain most look cold, and archived ones stop being searchable), unarchive them back, purge_boilerplate left by early miners, repair what the integrity check found, backfill_dates for entries older than 1.13, compact what a bulk import left. For session close use crbro_consolidate; to only read the brain use crbro_inspect.
| Name | Type | Req | Description |
|---|---|---|---|
| archive | boolean | – | Also move cold neurons (heat < 0.05, untouched 90+ days) out of the cortex into archives/. Off by default; run dry_run first and read archivable_neurons. Undo with unarchive. |
| backfill_dates | boolean | – | Date the patterns, preferences, errors and debts written before 1.13 (recall shows them with an empty matched_added), using only a date stated in the text of the entry itself, to the day; the rest st… |
| compact | boolean | – | Fold the one-line neurons a bulk import left (compact_groups: 25+ born the same day in one domain, no tags, links or summary, 30+ days old) into one digest neuron per group. Identical lines are kept… |
| dry_run | boolean | – | true = report only: no heat recalc, archiving, unarchiving, purge, repair, lock sweep, pruning or index rebuild, and no file written. Counts, debts and integrity checks still run. |
| purge_boilerplate | boolean | – | Also delete contentless facts left by early miner versions ("Referenced in: file.md"). Off by default; every run reports how many there are. Neurons left empty are kept. |
| repair | boolean | – | Fix what the integrity check found: dangling connection ids, synapse files pointing at missing neurons, entry_dates/entry_status keys with no live entry, manifest counters. Off in dry_run; the report… |
| unarchive | – | – | Move these neuron ids (or "all") from archives/ back into the cortex and reindex them. Off in dry_run; the report says archives_count and unarchived_neurons; unknown ids are listed in notes. |
No output schema declared.
No examples provided.
crbro_map System map ~259
Read or replace a neuron's system map: ONE living document — where the system lives, what serves what, which pieces talk to each other, the traps that cost hours. crbro_inspect view=neuron already returns the map; use crbro_map to read it alone, or to rewrite it. Omit content to read (map:null if none); content replaces the previous version entirely (append-only maps rot); an empty string clears it. Read it before working on a system touched in past sessions; after changing the system rewrite the whole map. Reading never creates a neuron, writing does. Credentials are redacted on write. Atomic facts belong in crbro_learn — the map is the prose around them.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | – | The new map, replacing the old one whole; omit to read. Write the reference you will need next time: paths, ids, what-serves-what, gotchas. An empty string clears the map. |
| domain | string | – | Domain if the neuron has to be created, e.g. "proyectos-web". Ignored when it exists. |
| neuron | string | yes | Neuron id or name, e.g. "project_octochat" or "OctoChat". |
No output schema declared.
No examples provided.
crbro_recall Recall ~471
Read-only search of everything saved in earlier sessions — facts, decisions, patterns, preferences, errors, debts and maps by their full text. Call it BEFORE answering anything about the user, their projects, preferences, decisions or past work: the answer is usually stored, and making them repeat it is the failure this memory exists to prevent. Also before crbro_learn, so a fact is superseded instead of duplicated. One result per neuron: the best matching entry with entry_id (read it whole with crbro_inspect view=neuron entries=[id]), matched_kind, matched_added, a confidence label (weak = little of the question covered; verify) and also_matched previews. Retired entries never surface. Five ranked results by default; matched_neurons says how many more matched. If nothing matches, retry with 2-4 phrasings in queries or fewer, distinctive words. has_map:true: read the system map with crbro_map before touching that system.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Only neurons in this domain (exact match, e.g. "proyectos-web"). Day logs have no domain: sessions_matched is listed regardless. |
| kind | array | – | Only these entry kinds, e.g. ["error"] for past mistakes before repeating one, ["decision"] for what was agreed and why, ["debt"] for what was deferred. Day logs are left out when set. |
| limit | integer | – | Max neurons returned (default 5, ranked; ask for more only when the top five did not answer). |
| queries | array | – | Alternative phrasings of the same question, searched together with query and fused by rank. Use synonyms, the other language and the concrete product name; 2-4 is plenty. |
| query | string | yes | What to look for, e.g. "Firebase authentication setup". Fewer, distinctive terms beat full sentences. |
| since | string | – | Only entries dated on or after this: a day ("2026-09-01") or a span back from today ("7d", "2w", "3m"). For "what changed lately" and to keep an old telling out. Undated entries cannot prove they are… |
| Name | Type | Req | Description |
|---|---|---|---|
| filters | object | – | – |
| has_more | boolean | – | – |
| hint | string | yes | – |
| matched_neurons | number | – | Neurons with any hit before limit; total_results is what came back |
| query | string | yes | – |
| results | array | yes | – |
| returned | number | – | – |
| sessions_matched | array | – | – |
| sessions_total | number | – | – |
| total_results | number | yes | – |
| truncated | object | – | – |
| undated_skipped | number | – | With since: matching entries left out for having no date |
No examples provided.
crbro_revise Revise a neuron ~588
Write: change what a neuron says without deleting anything. Stage 2 of the lifecycle: something stopped being true, or was never true, and nothing replaces it → crbro_revise (kept in the file, gone from recall, reversible with status active). If a replacement exists, crbro_learn with supersedes does both; for what must not exist on disk use crbro_forget. facts retires facts by id or exact text; entries retires decisions, patterns, errors and debts by exact text; status active reactivates either (local only on a shared neuron: the next sync re-applies the retirement, shared_warning says so). summary, domain, tags and name edit metadata in the same call (tags replaces the whole list; the id never changes). move_to splits: the listed entries go to another neuron with their dates. Anything in unmatched is STILL LIVE — fix and re-run.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | string | – | Replace the neuron domain unconditionally, e.g. "proyectos-web". |
| entries | array | – | Exact texts of decisions, patterns, errors or debts to move to `status`. Retired entries stay in the file (entry_status) but leave recall like a superseded fact. |
| facts | array | – | Facts to move to `status`: their ids (from crbro_recall) or exact text (trimmed, case-insensitive). For superseded/retracted only active facts match; for active only retired ones do. |
| move_to | string | – | Split: move the entries listed in facts/entries (ids from crbro_inspect, or exact text; any kind) to this neuron — id or name, created if missing with the same type and domain. They keep their dates,… |
| name | string | – | Rename the neuron. Its id, file, synapses and shared state stay the same. |
| neuron | string | yes | Neuron id or name holding what to revise, e.g. "project_octochat". |
| note | string | – | Why. Stored as revision_note on facts and entry_status.note on entries. The next reader will wonder. |
| status | string | – | superseded = a newer truth exists (default); retracted = it was never true; active = reactivate a retired fact or entry. Reactivation is local: on a shared neuron the next sync re-applies the retirem… |
| summary | string | – | Replace the neuron summary. Credentials are redacted and listed in redacted. |
| tags | array | – | Replace the WHOLE tag list (trimmed, deduplicated). On protocol neurons re-send the priority: and source: tags or they are gone. |
No output schema declared.
No examples provided.
crbro_secret Keychain secret ~280
Read or write credentials in the operating system's keychain (macOS Keychain, Linux Secret Service, Windows DPAPI): CRBRO keeps no copy, invents no crypto, and no sync or team space can reach the store. When the user hands you a credential, set it here, then record only the NAME with crbro_learn. get returns the value for the task at hand — an environment variable of the same name wins; a missing secret returns found:false, not an error — never print it back unless the user asked. list returns names only; remove deletes one; status says which store this machine has (none is a normal answer; env vars still work). Names are SCREAMING_SNAKE_CASE; set updates in place and rejects empty values.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | get = read one, set = store or update one, list = names only, remove = delete one, status = which keychain this machine offers, or why none. |
| description | string | – | What it is for, e.g. "WordPress example.com - REST API". Only for set. |
| name | string | – | SCREAMING_SNAKE_CASE, e.g. WORDPRESS_APP_PASSWORD. Required for get, set and remove. |
| value | string | – | The credential itself, non-empty. Only for set. |
No output schema declared.
No examples provided.
crbro_share Share a project ~286
Write: put one neuron into a team space, or take it out with unshare. Call it without confirm first: the dry run reports what would be sent — ops_to_emit, skipped_preferences (preferences never leave this machine) — and refuses outright if it finds a credential (crbro_forget it and rotate it). Show the user, get agreement, call again with the confirm token; a stale token is refused. Entries go out on the next crbro_space action=sync or consolidate, and from then on everything learned about that project flows to the team. unshare stops future notes; what was already sent stays in the remote and in teammates' brains. Spaces are managed with crbro_space.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | string | – | The confirm_token from the dry run — returned only when no credential was found. Omit the first time. Ignored with unshare. |
| neuron | string | yes | Neuron id or name to share or unshare. |
| space | string | – | Space name, as created or joined with crbro_space. Required unless unshare:true. |
| unshare | boolean | – | Stop following `neuron` in its space: no more notes go out, the next sync ignores it, and the neuron can then be forgotten. Already-sent notes stay in the remote and in teammates' brains. space and c… |
No output schema declared.
No examples provided.
crbro_space Team space ~330
Read or write team spaces — shared memory with teammates: a private git repository holding notes about the projects you choose to share; nothing else from your brain goes near it. create starts one (name, remote, author); join clones one a teammate created; status reads your identity and spaces; sync exchanges notes now — the manual form of what crbro_boot and crbro_consolidate do alone, useful right after crbro_share (offline is a normal answer, not a failure); leave pushes pending notes, deletes the local copy and stops following its neurons (neurons untouched). Joining shares nothing: put each project in with crbro_share. create and join reply ok:false with the reason on failure.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | create = start a new space and push it; join = clone one a teammate created; status = your identity and spaces; sync = exchange notes now; leave = sync, then forget the space locally. |
| author | string | – | How your notes are signed, e.g. "ana". Lowercase, no spaces. Required for create and join. |
| branch | string | – | Branch to use (default "main"). create and join only. |
| name | string | – | Short name, e.g. "equipo" — the same on everyone's machine. Required for create, join and leave; optional for sync (omit = every space); ignored for status. |
| remote | string | – | Git URL of a private repository — EMPTY for create, the same URL the creator used for join. E.g. git@github.com:acme/team-memory.git. |
No output schema declared.
No examples provided.
What is the io.github.Octonove/crbro-memory MCP server?
io.github.Octonove/crbro-memory is an MCP server listed in the public MCP registry as io.github.Octonove/crbro-memory. Persistent file-based memory for AI agents: inspectable, versionable, fully local. This page covers its npm package (crbro-memory).
What tools does the io.github.Octonove/crbro-memory MCP server expose?
io.github.Octonove/crbro-memory exposes 15 tools: crbro_boot, crbro_inspect, crbro_learn, crbro_recall, crbro_revise, and 10 more. Their descriptions and schemas cost roughly 6,022 tokens of context every time the server is loaded.
Is the io.github.Octonove/crbro-memory MCP server still maintained?
io.github.Octonove/crbro-memory is still listed as active in the MCP registry. We last reached this channel on 29 September 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 io.github.Octonove/crbro-memory MCP server under?
io.github.Octonove/crbro-memory declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.