Skip to main content
Glama

Cerebro 🧠

Persistent code-knowledge memory across AI chat sessions.

Every new chat re-analyzes your project's folders from scratch to understand it, burning tokens re-discovering what a previous chat already learned. Cerebro caches the understanding β€” not just the files β€” in a small SQLite "brain" that lives outside the chat. New sessions query it instead of re-reading folders.

Instead of reading 50 files (~100k tokens) to understand a project, the model makes one cerebro_map() call (~2-3k tokens) plus a few targeted lookups.

How it works

Three layers of "traces", cheapest first:

  1. Structural map (free, no LLM) β€” tree-sitter extracts symbols + imports and builds a dependency graph. Imports resolve both relative paths and tsconfig / jsconfig path aliases (@/...), so Next.js / NestJS monorepos get real edges. PageRank ranks the most important modules. Each file is hashed so changes are detectable. Languages: Python, JavaScript / TypeScript (incl. JSX/TSX) and Dart / Flutter.

  2. Cached summaries (the big saver) β€” as a chat understands a file, it calls cerebro_record(path, summary) to store a 1-3 sentence English summary (English tokenizes ~15-30% cheaper than Spanish). Future sessions reuse it.

  3. Freshness β€” each summary is tied to the file's hash. If the file changed, the trace is flagged stale so only that file gets re-read.

Why not Dijkstra? Code knowledge is a relevance problem, not a shortest-path one. The useful algorithms are graph traversal (BFS/DFS, for impact) and centrality (PageRank, for ranking) β€” not weighted routing.

Related MCP server: Memory MCP

MCP tools

Tool

Purpose

cerebro_map(top=30)

Cheap project overview, modules ranked by centrality. Call first.

cerebro_get(path)

Summary + symbols + dependencies of a file, without reading it.

cerebro_search(query)

Hybrid semantic + keyword search; semantic hits resolve to the exact symbol (path:line), not just the file.

cerebro_record(path, summary)

Leave a trace: store your understanding of a file.

cerebro_note(content, topic?)

Record a decision / domain rule / gotcha (the why).

cerebro_recall(query?)

Recall decisions recorded by past sessions.

cerebro_stale()

Files changed since last index + stale summaries.

cerebro_sync()

Catch branch switch / git pull / external edits and reindex them.

cerebro_reindex(paths?)

Refresh the structural index (only changed files).

cerebro_impact(path)

Transitive blast radius: everything that (in)directly imports a file.

cerebro_cycles()

Circular-import groups (architecture smell).

cerebro_orphans(prefix?)

Code files nothing imports β€” dead-code candidates (file-level).

cerebro_dead_symbols(prefix?)

Unused-export candidates: functions/classes/methods referenced nowhere in their own project, inside files that are imported (symbol-level dead code).

cerebro_callers(name)

Call sites of a symbol (who calls it, with enclosing fn + line).

cerebro_calls(path)

Internal functions a file calls (outgoing call edges).

Install

One command (published on PyPI) β€” add the MCP server to Claude Code:

claude mcp add cerebro -- uvx cerebro-code-memory

Or install the full Claude Code plugin (MCP server + session hooks + cerebro-first subagents):

/plugin marketplace add marcodavidd020/cerebro-code-memory
/plugin install cerebro@cerebro

Requires Python β‰₯ 3.10. Point Cerebro at a repo with CEREBRO_ROOT=/path/to/repo; it also auto-detects the nearest ancestor .cerebro/ brain (handy in monorepos).

Quick start

One command onboards any repo β€” it indexes and prints the exact registration line:

uv tool install --from . cerebro          # installs the `cerebro` command globally (dev)
cd /path/to/your/repo
cerebro setup --summarize --embed          # index (+ warm summaries / semantic index), then prints next steps

cerebro setup is idempotent. Then run the claude mcp add … line it prints, reload your editor, and the cerebro_* tools are available in chat.

Unified CLI

cerebro                 # no args -> MCP server (stdio); this is what the registration runs
cerebro setup           # index this repo + print MCP registration
cerebro index [--force] # build/refresh the index
cerebro search <query>  # hybrid semantic + keyword search
cerebro map             # project overview
cerebro graph           # interactive dependency-graph HTML
cerebro obsidian        # export an Obsidian vault
cerebro summarize / embed
cerebro impact / cycles / orphans / callers / calls / recall
cerebro doc-audit <vault>   # living docs: flag knowledge notes whose referenced code changed

Living documentation (doc-audit)

cerebro doc-audit <markdown-vault> cross-checks a curated knowledge vault against the code index: it parses each note's code references (path:line, backticked symbols) and the note's ultima_verificacion/fecha, then flags notes whose referenced files changed after they were verified, moved/were deleted, or mention a symbol that no longer exists. --aliases maps wiki app names to repo dirs (backend_app=fenix-store-backend,…); --fix patches stale notes' frontmatter to estado: revisar. This is the bridge between an auto-fresh code index and a human-curated wiki β€” documentation that can't silently rot.

cerebro doc-refresh <note> closes the loop: it re-audits one stale note against the live code and prints a briefing β€” current symbols, summary and dependents for each reference, plus the new location of any moved file β€” exactly the context an agent needs to propose the update (self-healing docs, human-reviewed).

Without a global install, prefix any command with uv run (e.g. uv run cerebro setup).

Point Cerebro at a specific repo with CEREBRO_ROOT=/path/to/repo. It honors .gitignore plus an optional .cerebroignore (same syntax) for excluding heavy non-source dirs (backup/, **/uploads/, …) without touching your VCS config. node_modules/, .next/, dist/, build/ are ignored by default.

Works on monorepos: index the whole thing at once (a single brain at the root, with cross-package alias resolution) or per sub-app (CEREBRO_ROOT per package).

Register with Claude Code

claude mcp add cerebro -- uv --directory /path/to/cerebro run cerebro

Set CEREBRO_ROOT to the project you want the brain to cover. See plugin/ for the optional Claude Code plugin that auto-injects the map at session start and flags edited files as stale.

Scope (MVP)

In: structural map, cached summaries, freshness, keyword search, tsconfig/jsconfig alias resolution, .cerebroignore, batch summary warming (cerebro-summarize, via headless claude -p β€” no API key), a decision log (cerebro_note / cerebro_recall, surfaced at session start), and git-aware freshness (cerebro_sync catches branch switch / pull / external edits across nested repos), and optional local semantic search (cerebro-embed + --extra semantic: model2vec embeddings β€” one vector per symbol β€” no torch, no API key, nothing leaves the machine β€” cerebro_search becomes hybrid semantic + keyword and lands on the exact symbol (path:line), not just the file), and visualizations (cerebro-graph β†’ self-contained interactive HTML dependency graph; cerebro-export-obsidian β†’ an Obsidian vault where imports are [[links]]), and architecture insights (cerebro_impact transitive blast radius, cerebro_cycles circular imports, cerebro_orphans dead-code candidates), and a symbol-level call graph (cerebro_callers / cerebro_calls, tree-sitter name-resolved). Deferred to v2: a live file watcher, and LSP-backed call graph for type-precise resolution (the current call graph resolves by name).

License

MIT Β© 2026 Marco Toledo β€” see LICENSE.

Available Tools

16 tools
cerebro_callersA

Find every call site of a function / method / class by NAME across the repo (symbol-level call graph; name-resolved, so it may include same-named symbols). Use to see who actually uses a symbol before you change it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided. The description discloses that the tool is name-resolved and may include same-named symbols, which is a transparency about potential false positives. However, it does not mention read-only nature, performance, or auth requirements.

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

Conciseness5/5

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

The description is two concise sentences: first defines functionality with qualifiers, second provides usage advice. Every sentence adds value with no waste.

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

Completeness4/5

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

The description covers purpose, usage, and a key behavioral detail (name resolution). An output schema exists, so return values need not be explained. Might lack details on handling of classes vs functions, but overall sufficient for a one-parameter tool.

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?

With 0% schema description coverage, the description adds meaning by explaining that the 'name' parameter is used as a symbol name to find call sites. It clarifies the purpose of the single parameter beyond the schema's title.

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?

The description clearly states it finds every call site of a function/method/class by name, specifies scope (across repo), and notes it's name-resolved. This differentiates from sibling tools by focusing on callers of a symbol.

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

Usage Guidelines4/5

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

The description explicitly advises 'Use to see who actually uses a symbol before you change it,' giving a clear use case. It does not explicitly contrast with sibling tools like cerebro_calls or cerebro_impact, but the context implies when to use.

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

cerebro_callsA

List the internal functions/methods a file calls β€” its outgoing call edges (name-resolved). External library calls are omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, description carries full burden. It clearly states the tool is read-only and lists only name-resolved internal calls. No contradictions; behavior is well disclosed for a simple listing tool.

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

Conciseness5/5

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

Single sentence front-loaded with the verb 'List', no redundant information. Every word is informative.

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

Completeness4/5

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

Given the presence of an output schema and the tool's simple nature (one parameter, list function), the description is mostly sufficient. It could mention expected file types or error conditions, but is adequate for use.

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

Parameters2/5

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

Schema coverage is 0%, and description does not directly explain the 'path' parameter. Although the context implies path is a file, no details about format, accepted paths, or restrictions are given.

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?

Description clearly states the tool lists internal function/method calls for a file (outgoing call edges), and explicitly excludes external library calls. This distinguishes it from sibling tools like cerebro_callers (likely incoming) and cerebro_map.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative recommendations. The description implies use when internal call edges are needed, and not when external calls are desired, but does not name specific sibling tools for that case.

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

cerebro_cyclesA

Find circular import groups (files that mutually depend on each other) β€” an architecture smell worth breaking. Returns each cycle's members.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must fully convey behavior. It states the tool finds cycles and returns members, which suggests a read-only analysis. However, it doesn't disclose potential performance impact or scope (e.g., entire codebase).

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

Conciseness5/5

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

Two sentences with no fluff. First sentence explains the action and purpose, second clarifies the output. Every word earns its place.

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

Completeness4/5

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

An output schema exists, so the description doesn't need to detail return format. However, the description is brief and could benefit from specifying what constitutes a cycle or how results are structured, but it's adequate given the 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?

There are no parameters, so schema coverage is 100%. The description does not need to add parameter details. Baseline for zero parameters is 4, indicating no issues.

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?

The description clearly states the tool finds circular import groups, which is a specific verb-resource combination. It distinguishes from sibling tools by focusing on cycles, while others handle calls, dead symbols, etc.

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

Usage Guidelines4/5

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

The description implies usage for identifying architecture smells ('worth breaking'), but does not explicitly state when to use or not use this tool over alternatives. Sibling tools are listed but no comparison is given.

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

cerebro_dead_symbolsA

List unused-export candidates: functions/classes/methods whose name is referenced nowhere in the indexed code, inside files that ARE imported (the symbol-level dead code that cerebro_orphans, which works per-file, can't see). Heuristic β€” confirm before deleting: dynamic access (obj['x'], string-based DI) and reflection can make a used symbol look dead.

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It explicitly discloses the heuristic nature and warns about dynamic access and reflection causing false positives, adding important behavioral context beyond a mere listing.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core purpose, and contains no fluff. Every sentence adds value, including the comparison and the caution.

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

Completeness4/5

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

The description adequately explains what the tool does and its limitations. The presence of an output schema reduces the need to describe return values. However, it omits any explanation of the single input parameter 'prefix', leaving a gap in completeness.

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

Parameters1/5

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

The input schema has one parameter 'prefix' with a default but no description. Schema description coverage is 0%. The description does not mention the prefix parameter or explain its purpose, so it adds no meaning beyond the schema.

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?

The description clearly states it lists unused-export candidates (functions/classes/methods) at the symbol level, and explicitly distinguishes from the sibling tool 'cerebro_orphans' which works per-file. This provides a specific verb and resource with differentiation.

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

Usage Guidelines4/5

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

The description notes that the results are a heuristic and warns to confirm before deleting, offering caution about usage. It also compares to 'cerebro_orphans' to indicate when this tool is appropriate. However, it does not exhaustively list when to use or not use this tool versus all siblings.

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

cerebro_endpointsA

Backend HTTP endpoints (NestJS routes) the project exposes β€” the front↔back boundary that import edges miss. Search by path / method / handler (e.g. 'POST carts', 'promotions', 'findActive') to answer 'where is this endpoint handled?' without grepping decorators.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It implies read-only behavior ('list', 'search') and does not mention side effects. While not exhaustive, it is transparent enough for safe usage.

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

Conciseness5/5

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

Two sentences with no wasted words. First sentence states functionality, second provides usage and purpose. Highly efficient.

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?

Given the simple structure (one optional param, output schema present), the description is complete. It explains what the tool does, how to use it, and the problem it solves, without needing details on return values.

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 0%, but the description fully explains the 'query' parameter by stating it can search by path, method, or handler and gives concrete examples, compensating for the schema gap.

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?

The description clearly states the tool lists backend HTTP endpoints and allows searching by path, method, or handler. It distinguishes itself from sibling tools by focusing on endpoint discovery.

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

Usage Guidelines4/5

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

Provides clear usage context with search examples (e.g., 'POST carts') and answers the question 'where is this endpoint handled?'. Lacks explicit when-not-to-use or alternative references, but the examples and purpose are sufficiently directive.

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

cerebro_getA

Everything Cerebro knows about a file WITHOUT reading it: cached summary (with staleness flag), defined symbols, and dependency edges.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses key behaviors: returns cached data (with staleness flag) and does not read the file. It does not mention permissions, rate limits, or side effects, but the read-only nature is implied.

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

Conciseness5/5

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

The description is one sentence that efficiently conveys the tool's purpose, key outputs, and a critical behavioral constraint (no file read). No unnecessary words, perfectly front-loaded.

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

Completeness4/5

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

Given the low complexity (one parameter, no annotations) and presence of an output schema, the description is complete enough for an agent to select and invoke the tool correctly. It could mention prerequisites like file existence or permissions, but not essential.

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

Parameters3/5

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

The only parameter 'path' has 0% schema description coverage. The description does not elaborate on the path format, restrictions, or example values. However, the parameter name and tool context make its purpose obvious, so the description adds minimal extra value beyond the schema.

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?

The description clearly states the tool retrieves cached summary (with staleness flag), defined symbols, and dependency edges for a file, emphasizing it does NOT read the file. This distinguishes it from sibling tools like cerebro_read (if it existed) or other cerebro tools that might read file contents.

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

Usage Guidelines4/5

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

The description implies this tool is used when you need cached metadata about a file without performing a read. It provides clear context but does not explicitly state when not to use it or mention alternatives among the many sibling tools.

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

cerebro_impactA

Transitive blast radius: every file that directly OR indirectly imports path. Use before changing a widely-used file to see what could break.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately describes the tool's operation (finding transitive imports), which is a non-destructive analysis. It adds value beyond the schema by explaining the concept of transitive impact.

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

Conciseness5/5

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

Two sentences, zero waste. Every word contributes to understanding the tool's purpose and usage.

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

Completeness4/5

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

Given the tool's simplicity (one parameter, output schema exists), the description is largely complete. It explains the purpose, usage scenario, and the nature of results (files that import the path). The output schema presumably covers return structure, so this is adequate.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It provides context for the 'path' parameter by explaining it is the file whose imports are traced. However, it lacks details on format, examples, or constraints, so it only partially compensates.

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?

The description clearly states it finds files that directly or indirectly import a given path, using the metaphor 'transitive blast radius'. This specific verb+resource pairing distinguishes it from siblings like cerebro_callers or cerebro_map.

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

Usage Guidelines4/5

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

Explicitly says 'Use before changing a widely-used file to see what could break.' This gives clear context for when to use the tool, though it does not mention when not to use or name alternatives.

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

cerebro_mapA

Cheap whole-project overview: file/language counts and the most important modules ranked by dependency centrality (PageRank). Call this FIRST in a new session instead of exploring folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It describes the tool as 'cheap' (implying low cost) and outlines output content, implying a read-only, non-destructive operation. No contradictions, but could detail any side effects or permissions.

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

Conciseness5/5

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

The description is extremely concise, consisting of two sentences that convey purpose and usage guidance without any fluff. It is front-loaded with the most important information.

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

Completeness4/5

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

Given the tool has an output schema (so return values are covered), one optional parameter, and many sibling tools, the description is mostly complete. The only gap is the lack of explanation for the 'top' parameter, but overall it provides adequate context for selection and usage.

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

Parameters2/5

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

Schema coverage is 0%, and the description does not explain the 'top' parameter beyond its default. The parameter is somewhat self-explanatory as a limit, but the description should have clarified its meaning, especially given the low schema coverage.

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?

The description clearly states the tool provides a 'whole-project overview' with specific outputs: file/language counts and modules ranked by dependency centrality. It also distinguishes itself by recommending it as the first call in a new session, differentiating from sibling tools.

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

Usage Guidelines4/5

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

The description explicitly says 'Call this FIRST in a new session instead of exploring folders,' giving clear when-to-use guidance. However, it does not explicitly mention when not to use it or list alternatives, but the directive is strong enough.

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

cerebro_noteA

Record a decision, domain rule, or gotcha β€” the why that reading code can never recover (e.g. 'QR_MANUAL = merchant confirms payment by hand', 'Seller was refactored to Organization'). Future sessions retrieve it with cerebro_recall. Keep content to 1-3 sentences; topic is an optional short tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNo
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided; description fills the gap by explaining the recording behavior and future retrieval via cerebro_recall. Simple write operation, transparent about purpose and content format.

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

Conciseness5/5

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

Concise and front-loaded: states purpose, gives examples, provides usage guidance. Every sentence adds value with no redundancy.

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?

Given presence of output schema, description covers all needed aspects: purpose, usage context, parameter details, and integration with cerebro_recall. Sufficient for a simple note-taking tool.

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

Parameters5/5

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

Despite 0% schema description coverage, the description adds significant meaning: content is required (1-3 sentences), topic is optional short tag. This compensates for lack of schema descriptions.

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?

The description clearly states the tool records decisions, domain rules, or gotchasβ€”the *why* behind code. It provides concrete examples and distinguishes from sibling tool cerebro_recall (retrieval).

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

Usage Guidelines4/5

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

Explicitly advises when to use (record 'why'), includes formatting tips (1-3 sentences, optional topic). Does not explicitly state when not to use, but the context of siblings implies alternatives.

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

cerebro_orphansB

List code files that nothing imports β€” dead-code candidates. Framework entrypoints (modules, controllers, pages, configs, tests) are listed separately since they're loaded by convention, not by import.

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses that framework entrypoints are listed separately, indicating behavioral nuance. However, it does not address safety, permissions, or side effects, which are expected for a listing tool.

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?

Two sentences, each adding value. Front-loaded with purpose and nuance. Could be improved by mentioning the parameter, but overall efficient.

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

Completeness3/5

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

For a simple list tool with one optional parameter, the description explains the primary behavior and a key nuance. However, the missing parameter explanation and lack of output format details (despite output schema existing) leave gaps.

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

Parameters1/5

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

The schema has one parameter 'prefix' with 0% description coverage, and the description fails to mention or explain it. The agent has no guidance on how to use this parameter.

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?

The description uses a specific verb 'List' and resource 'code files that nothing imports', clearly identifying it as dead-code detection. It distinguishes from siblings by noting that framework entrypoints are handled separately.

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

Usage Guidelines3/5

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

The description implies usage for finding orphan files but does not explicitly state when to use this over related tools like cerebro_dead_symbols or cerebro_stale. No when-not-to-use or alternative guidance is provided.

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

cerebro_recallA

Recall decisions/rules/gotchas recorded by past sessions BEFORE re-deriving them. Pass a query to search by meaning of topic/content, or leave empty for the most recent notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It describes that the tool recalls past notes, can search by query or return most recent, and implies read-only behavior. However, it lacks details on return format, pagination, or limits, making the behavioral disclosure adequate but not rich.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the purpose. Every sentence is necessary and valuable, with no wasted words.

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

Completeness4/5

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

Given the presence of an output schema, the description need not detail return values. It covers core functionality (searching, recent notes) and parameters adequately. However, the role of 'limit' is not clarified, leaving a minor completeness gap for a 2-parameter tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the 'query' parameter (search by meaning, empty for recent) but does not explicitly describe 'limit' (only implied). This adds meaning beyond the schema but leaves a gap for the limit parameter.

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?

The description clearly states the verb 'recall' and the resource 'decisions/rules/gotchas recorded by past sessions'. It distinguishes from siblings like 'cerebro_note' (record) and 'cerebro_search' (broader search) by specifying a unique use case: recall before re-deriving.

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

Usage Guidelines4/5

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

The description explicitly says to use it 'BEFORE re-deriving them', providing clear context. It also explains how to use it: pass a query or leave empty for recent notes. However, it does not explicitly state when not to use it or compare to alternatives, though siblings are listed.

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

cerebro_recordB

Leave a trace: store your English understanding of a file so future sessions reuse it instead of re-analyzing. Write 1-3 dense sentences in English describing what the file does and its role.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
modelNo
summaryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so description bears all behavioral burden. It tells it's a write operation that persists across sessions, but doesn't clarify if overwriting occurs, permissions required, or return value. With output schema existing but not referenced, transparency is moderate.

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

Conciseness5/5

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

Two sentences front-load purpose and usage guidance, with no wasted words. Very concise and efficient.

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

Completeness2/5

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

Given 3 parameters, no annotations, and sibling tools, the description is incomplete: it omits parameter explanations, behavioral details like idempotency, and any mention of output. The existing output schema doesn't compensate for missing behavioral context.

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

Parameters2/5

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

Schema coverage is 0%, yet description only explains 'summary' (1-3 dense sentences). 'path' and 'model' parameters are undocumented, leaving their meaning and usage ambiguous. Only partial help for one parameter.

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

Purpose4/5

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

The description clearly states the tool's purpose: storing an English understanding of a file for reuse. It uses a specific verb ('store') and resource ('English understanding'), and implicitly distinguishes from sibling read tools like cerebro_get and cerebro_search by focusing on recording summaries.

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

Usage Guidelines3/5

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

The description gives when to use (to avoid re-analysis) and format guidance (1-3 dense sentences), but lacks explicit when-not-to-use or mention of alternatives like cerebro_note. It provides clear context but no exclusions.

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

cerebro_reindexA

Refresh the static index (symbols, dependency edges, hashes). Only changed/new/deleted files are reprocessed. Pass paths to limit scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Discloses incremental processing, but lacks details on safety, authentication, or side effects (e.g., index lock).

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

Conciseness5/5

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

Two concise sentences, front-loaded with main action, no wasted words.

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

Completeness4/5

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

Covers main behavior and optional parameter; with output schema, return values are covered, but could mention if index refresh is blocking or async.

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?

Clarifies that paths limits scope of reindex, adding value over schema's default null; but doesn't specify format or allowed values.

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?

Clearly states verb 'Refresh' and resource 'static index', specifies incremental processing and optional path limit, distinguishing from search/retrieval siblings.

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

Usage Guidelines3/5

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

Provides context for using paths and incremental nature, but no explicit when-to-use or when-not-to-use compared to siblings.

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

cerebro_staleB

What the index no longer trusts: files changed/added/deleted on disk since the last reindex, plus summaries whose source file has changed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the output (stale items) but does not disclose whether the tool is read-only, requires permissions, or has side effects. The name 'stale' suggests a read operation, but this is implicit.

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?

The description is a single sentence that conveys the core purpose. It is front-loaded and concise, though slightly verbose with 'What the index no longer trusts'. It earns its place.

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

Completeness4/5

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

Given the existence of an output schema, the description adequately explains what 'stale' means: files changed/added/deleted since last reindex and summaries with changed source files. This covers the main categories without needing to detail return format.

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?

There are no parameters, so schema coverage is 100%. With 0 parameters, the description does not need to add param info, and it appropriately focuses on the output.

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

Purpose4/5

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

The description explains that the tool returns items the index no longer trusts, specifically files changed/added/deleted on disk and summaries with changed source files. It clearly states what it does, though the verb 'trust' is somewhat abstract and it doesn't explicitly differentiate from sibling tools like 'cerebro_reindex' or 'cerebro_sync'.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. No comparison with sibling tools (e.g., 'cerebro_reindex' for reindexing) or conditions for invocation.

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

cerebro_syncA

Catch changes made outside Claude Code (branch switch, git pull, edits in the raw editor) and reindex only the affected files. Works across nested repos.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden and discloses key behaviors: reindexes only affected files, works across nested repos, and catches specific external changes. Additional details like side effects or prerequisites are not mentioned.

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

Conciseness5/5

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

Two sentences, no wasted words, front-loaded with primary purpose. Highly concise and structured.

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

Completeness4/5

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

For a zero-parameter tool with an output schema, the description is fairly complete, covering purpose, triggers, and behavioral scope. Minor omission of prerequisites or error conditions.

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?

No parameters exist; the description adds value by explaining the tool's purpose and context beyond the empty schema. Baseline for zero params is 4.

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?

The description clearly states the tool detects external changes and reindexes affected files, using specific verbs and resource. It distinguishes from siblings like cerebro_reindex by focusing on syncing external changes.

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

Usage Guidelines4/5

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

The description gives clear context for when to use (after external changes like branch switch, git pull, edits), but does not explicitly state when not to use or list alternatives.

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

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a clearly distinct aspect of code analysis: call sites, call edges, circular imports, dead symbols, endpoints, file info, impact analysis, project overview, note-taking, orphan files, recall, file recording, reindexing, search, stale index, and sync. Even similar tools like dead_symbols vs orphans and note vs record vs recall are differentiated by scope and purpose.

Naming Consistency5/5

All tools follow a consistent 'cerebro_' prefix with snake_case naming (e.g., cerebro_callers, cerebro_dead_symbols). The second part is either a noun (callers, cycles) or a verb (get, search), maintaining a predictable pattern throughout.

Tool Count5/5

With 16 tools, the server covers a comprehensive set of code intelligence operations without being overly numerous. Each tool serves a specific purpose in the workflow of understanding and navigating a large codebase, fitting well within the typical 3-15 range for focused servers.

Completeness4/5

The tool set covers core code analysis needs: dead code detection, call graphs, dependency analysis, search, project overview, and knowledge persistence. Minor gaps include lack of direct file content retrieval or file listing, but the server's focus on precomputed index data means these are reasonable omissions.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides AI coding assistants with persistent project memory to retain architectural decisions, code patterns, and domain knowledge across sessions. It stores data locally in a SQLite database, allowing agents to remember, recall, and manage project-specific context using full-text search.
    13
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Provides persistent cross-session memory and full-text search for AI coding assistants, storing project context, decisions, and preferences while enabling searchable access to conversation history via local SQLite.
    8
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides AI coding assistants with persistent memory storage using a local SQLite database. Enables tools to remember project details, notes, and relationships across sessions to maintain context and reduce repetitive explanations.
    17
    4
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Ultra-lean memory system for AI coding tools that stores project knowledge locally with SQLite and enables AI to remember your project across sessions.
    12
    46
    37
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcodavidd020/cerebro-code-memory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server