Skip to main content
Glama

Inspect the brain

crbro_inspect
Read-onlyIdempotent

Inspect persistent memory read-only: view status, neurons, sessions, and global maps, or read neuron entries by id/name without changing the brain.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoview=neurons: only this neuron type.
viewYesWhich read to perform. Only the params listed for that view are honoured; the rest are ignored, never an error.
limitNoPage 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.
detailNoview=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 facts paged by limit/offset; large neurons are shortened and say so.
domainNoview=neurons: exact domain match, e.g. "proyectos-web".
neuronNoview=neuron only, required there: neuron id (e.g. "project_octochat") or name (e.g. "OctoChat").
offsetNoItems to skip. view=neuron: index entries; view=neurons: rows after the heat sort. Default 0.
entriesNoview=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. Ignores detail.
sessionNoview=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.
min_heatNoview=neurons: minimum heat, 0.0-1.0. Heat blends access frequency, recency and connectivity.
min_strengthNoview=neuron: drop connections weaker than this (0.0-1.0). Omit or 0 = all.
include_supersededNoview=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_status.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
viewYes
neuronNo
statusNo
neuronsNo
sessionsNo
global_mapNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv2.9.1
    • addedOutput schema / properties / status / properties / installed_version
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / status / properties / version_note
      Added value: +{
      +  "type": "string"
      +}
  2. Changed2 schema fields changedv2.4.0
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  3. Changed2 schema fields changedv2.2.0
    • addedInput schema / properties / session
      Added value: +{
      +  "description": "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"
      +}
    • addedOutput schema / properties / sessions / properties / session
      Added value: +{
      +  "type": "string"
      +}
  4. Changed9 schema fields changedv2.1.0
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "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 facts paged by limit/offset; large neurons are shortened and say so.",
      +  "enum": [
      +    "index",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / entries
      Added value: +{
      +  "description": "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. Ignores detail.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / include_superseded / description
      Previous value: -"view=neuron: also return superseded and retracted facts (default false). Retired decisions, patterns, errors and debts are always returned, with entry_status saying which are retired."New value: +"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_status."
    • changedInput schema / properties / limit / description
      Previous value: -"Page size. view=neuron: facts per page (default 40, max 200); view=neurons: rows (default 50, max 500); view=sessions: day logs (default 10, max 100). Other views ignore it."New value: +"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."
    • changedInput schema / properties / offset / description
      Previous value: -"Items to skip. view=neuron: facts (newest first); view=neurons: rows after the heat sort. Default 0."New value: +"Items to skip. view=neuron: index entries; view=neurons: rows after the heat sort. Default 0."
    • changedOutput schema / properties / global_map / additionalProperties
      Previous value: -falseNew value: +{}
    • changedOutput schema / properties / neurons / additionalProperties
      Previous value: -falseNew value: +{}
    • changedOutput schema / properties / sessions / additionalProperties
      Previous value: -falseNew value: +{}
    • changedOutput schema / properties / status / additionalProperties
      Previous value: -falseNew value: +{}
  5. Changed1 schema field changedv2.0.1
    • changedInput schema / properties / neuron / description
      Previous value: -"view=neuron only, required there: neuron id (e.g. \"project_octochat\") or name (e.g. \"OctoChat\"). Reading bumps access_count and last_accessed."New value: +"view=neuron only, required there: neuron id (e.g. \"project_octochat\") or name (e.g. \"OctoChat\")."
  6. Addedv2.0.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description reinforces this ('Nothing is written by any view'). It goes further with behavior the annotations don't cover: paging defaults and caps, large neurons being shortened and declared, hidden superseded entries, and global_map being computed live. Missing auth/permission or performance-cost notes, so a 4 rather than a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the sibling disambiguation, then a compact per-view catalogue. It is dense and slightly long, but each clause maps to a distinct view or interaction rule, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, five-view tool with an output schema, the description covers view selection, per-view parameter applicability, defaults, and truncation behavior. An agent has everything needed to call it correctly without reading return-value details already covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by tying parameters to specific views ('min_strength filters connections', 'include_superseded ... hidden in entries_pagination.hidden_retired') and by warning that non-applicable params are ignored rather than erroring — cross-parameter behavior the schema does not state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Read-only views of the brain by id or name') and immediately distinguishes itself from the sibling searcher: 'to search by content use crbro_recall.' Each view is then named with what it returns, so an agent can pick the right view without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing to an alternative (crbro_recall) for content search, per-view selection cues ('view=sessions: the only place session summaries are read'), and the key exclusion rule 'Params of other views are ignored.' Nothing about when to use this vs. siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.