@vforvaick/pi-codebase-memory-mcp
v0.1.0-beta.1
Published
Unofficial pi coding agent extension wrapping the codebase-memory-mcp binary. Registers 9 cbm_* tools (search_graph, trace_path, architecture, cypher, snippet, changes, coverage, index, projects) with a pi-side freshness gate that auto-reindexes on source
Maintainers
Readme
@vforvaick/pi-codebase-memory-mcp
Unofficial pi coding agent extension wrapping the codebase-memory-mcp binary.
Not affiliated with DeusData/codebase-memory-mcp. MIT.
What it does
- Registers 9
cbm_*tools the LLM can call:cbm_index,cbm_projects,cbm_search,cbm_trace,cbm_architecture,cbm_snippet,cbm_query(Cypher),cbm_changes(impact analysis),cbm_coverage. - Freshness gate: auto-reindexes the graph (mode=
moderate) before any read query when source has changed. The CBM binary's native watcher is inert in CLI / MCP-stdio mode (its daemon worker log stays 0 bytes, never fires), so without this gate the graph goes stale after every edit until a manualcbm_index. projectis auto-inferred from the session cwd, so callers rarely pass it.
Prerequisites
- pi coding agent installed.
codebase-memory-mcpbinary onPATH. Install from upstream:
Verify:curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bashcodebase-memory-mcp --version.
Install
pi install npm:@vforvaick/pi-codebase-memory-mcpAfter install, restart pi.
Usage
In any repo:
cbm_index # one-time index (mode=moderate)
cbm_search .*Router.* # find symbols
cbm_trace myFunction --direction both
cbm_architectureOnce indexed, the graph auto-refreshes after edits (see Freshness gate below). Tools auto-appear in the function list.
Freshness gate
The extension keeps a per-cwd dirty flag, bumped by pi lifecycle hooks:
session_start-> mark cwd dirty (forces one reindex on first query, catches cross-session drift)tool_execution_endforedit/write/bash/ctx_execute/apply_patch(on success) -> mark dirtyuser_bash-> mark dirty conservatively
Before each read query (cbm_search, cbm_trace, etc.) the extension calls ensureFresh(cwd): if the cwd is dirty or git HEAD has drifted since the last index, it reindexes (mode=moderate) then serves the query. Race-safe via a per-cwd in-flight lock + dirty generation counter.
What the gate does NOT catch: mutations from external editors or other terminals (VSCode, sed in another shell) after the first query in a session. For those, run cbm_index manually.
Configuration
CBM_BINenvironment variable overrides the binary path. Default:codebase-memory-mcp(looked up onPATH).
Compatibility
- Tested against
codebase-memory-mcpv0.9.0. - Support policy: current + previous minor of
codebase-memory-mcp. - Known v0.9.0 quirk:
check_index_coveragereturns "unknown tool" via MCP. This extension routes it throughclimode, where it works. Tool list parity (advertised vs callable) is tracked upstream.
Security
- Runs the
codebase-memory-mcpbinary with the same filesystem access as your pi session. - No telemetry. No network calls. Source is open - review before install.
- pi packages run with full system access; review the source at the repo before installing.
License
MIT. (C) vforvaick.
Contributing
PRs welcome at github.com/vforvaick/pi-codebase-memory-mcp.
