# bibinkvr/codebase-memory-mcp architecture

> Architecture diagram of the GitHub repository bibinkvr/codebase-memory-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bibinkvr/codebase-memory-mcp
- Repository: https://github.com/bibinkvr/codebase-memory-mcp

## Overview

codebase-memory-mcp indexes local repositories into a persistent structural knowledge graph, then exposes code-intelligence tools to coding agents and a built-in graph UI. The main workflow is repository indexing: language parsing and extraction, semantic resolution, and graph persistence, with incremental repair when files change. Separate branches cover agent-facing MCP access, daemon-managed sessions and jobs, and graph visualization. The README documents broader query and infrastructure-indexing capabilities; where source was not sampled, paths or wiring are omitted rather than inferred.

Main entry points: [`src/pipeline/pipeline.c`](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline.c) (Index Pipeline), [`graph-ui/src/App.tsx`](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/App.tsx) (Graph UI), [`src/pipeline/pipeline_incremental.c`](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline_incremental.c) (Incremental Repair), [`graph-ui/src/api/rpc.ts`](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/api/rpc.ts) (UI RPC)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_index["Indexing"]
  node_indexer["Index Pipeline<br/>[pipeline.c]"]
  node_incremental["Incremental Repair"]
  node_delta["Delta Staging<br/>[pipeline_delta.c]"]
  node_grammars["Language Grammars<br/>[lang_specs.c]"]
  node_extract["Code Extraction<br/>[extract_unified.c]"]
  node_lsp["Semantic Resolution<br/>[lsp_all.c]"]
  node_service["Service Patterns<br/>[service_patterns.c]"]
end

subgraph group_knowledge["Graph Data"]
  node_store[("Graph Store<br/>[sqlite_writer.c]")]
  node_query["Graph Queries"]
end

subgraph group_access["Agent Access"]
  node_entry["Server Entry<br/>[main.c]"]
  node_tools["MCP Tools"]
end

subgraph group_daemon["Daemon Operations"]
  node_daemon["Session Manager<br/>[application.c]"]
  node_clientconfig["Agent Adapters<br/>[agent_clients.c]"]
end

subgraph group_visual["Visualization"]
  node_ui["Graph UI<br/>[App.tsx]"]
  node_projects["Project Loading<br/>[useProjects.ts]"]
  node_graphdata["Graph Data Hook<br/>[useGraphData.ts]"]
  node_rpc["UI RPC<br/>[rpc.ts]"]
  node_scene["3D Graph View<br/>[GraphScene.tsx]"]
  node_stats["Stats View<br/>[StatsTab.tsx]"]
  node_controls["Control View<br/>[ControlTab.tsx]"]
end

node_developer(("Developer"))
node_agent(("Coding Agent"))

node_developer -->|"requests indexing"| node_agent
node_agent -->|"starts server"| node_entry
node_entry -->|"dispatches tools"| node_tools
node_tools -->|"runs indexing"| node_indexer
node_indexer -->|"parses languages"| node_grammars
node_indexer -->|"extracts structure"| node_extract
node_indexer -->|"resolves symbols"| node_lsp
node_indexer -->|"classifies links"| node_service
node_indexer -->|"writes graph"| node_store
node_indexer -->|"selects repair"| node_incremental
node_incremental -->|"stages changes"| node_delta
node_incremental -->|"updates graph"| node_store
node_tools -->|"runs queries"| node_query
node_query -->|"reads graph"| node_store
node_daemon -->|"owns sessions"| node_tools
node_clientconfig -->|"configures clients"| node_agent
node_developer -->|"opens graph UI"| node_ui
node_ui -->|"loads projects"| node_projects
node_ui -->|"loads graph"| node_graphdata
node_projects -->|"requests project data"| node_rpc
node_graphdata -->|"requests graph data"| node_rpc
node_rpc -->|"supplies graph data"| node_scene
node_ui -->|"renders stats"| node_stats
node_ui -->|"renders controls"| node_controls

click node_entry "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/main.c"
click node_indexer "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline.c"
click node_incremental "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline_incremental.c"
click node_delta "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline_delta.c"
click node_grammars "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/lang_specs.c"
click node_extract "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/extract_unified.c"
click node_lsp "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/lsp_all.c"
click node_service "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/service_patterns.c"
click node_store "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/sqlite_writer.c"
click node_daemon "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/daemon/application.c"
click node_clientconfig "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/cli/agent_clients.c"
click node_ui "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/App.tsx"
click node_projects "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/hooks/useProjects.ts"
click node_graphdata "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/hooks/useGraphData.ts"
click node_rpc "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/api/rpc.ts"
click node_scene "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/components/GraphScene.tsx"
click node_stats "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/components/StatsTab.tsx"
click node_controls "https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/components/ControlTab.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_indexer,node_incremental,node_delta,node_grammars,node_extract,node_lsp,node_service toneBlue
class node_store,node_query toneAmber
class node_entry,node_tools toneMint
class node_daemon,node_clientconfig toneRose
class node_ui,node_projects,node_graphdata,node_rpc,node_scene,node_stats,node_controls,node_developer,node_agent toneIndigo
```

## Components

### Indexing

- [Index Pipeline](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline.c): `src/pipeline/pipeline.c`
- [Incremental Repair](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline_incremental.c): `src/pipeline/pipeline_incremental.c`
- [Delta Staging](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/pipeline/pipeline_delta.c): `src/pipeline/pipeline_delta.c`
- [Language Grammars](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/lang_specs.c): `internal/cbm/lang_specs.c`
- [Code Extraction](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/extract_unified.c): `internal/cbm/extract_unified.c`
- [Semantic Resolution](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/lsp_all.c): `internal/cbm/lsp_all.c`
- [Service Patterns](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/service_patterns.c): `internal/cbm/service_patterns.c`

### Graph Data

- [Graph Store](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/internal/cbm/sqlite_writer.c): `internal/cbm/sqlite_writer.c`
- **Graph Queries**

### Agent Access

- [Server Entry](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/main.c): `src/main.c`
- **MCP Tools**

### Daemon Operations

- [Session Manager](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/daemon/application.c): `src/daemon/application.c`
- [Agent Adapters](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/src/cli/agent_clients.c): `src/cli/agent_clients.c`

### Visualization

- [Graph UI](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/App.tsx): `graph-ui/src/App.tsx`
- [Project Loading](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/hooks/useProjects.ts): `graph-ui/src/hooks/useProjects.ts`
- [Graph Data Hook](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/hooks/useGraphData.ts): `graph-ui/src/hooks/useGraphData.ts`
- [UI RPC](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/api/rpc.ts): `graph-ui/src/api/rpc.ts`
- [3D Graph View](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/components/GraphScene.tsx): `graph-ui/src/components/GraphScene.tsx`
- [Stats View](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/components/StatsTab.tsx): `graph-ui/src/components/StatsTab.tsx`
- [Control View](https://github.com/bibinkvr/codebase-memory-mcp/blob/main/graph-ui/src/components/ControlTab.tsx): `graph-ui/src/components/ControlTab.tsx`

### Other components

- **Developer**
- **Coding Agent**

## Connections

- Developer → Coding Agent: requests indexing
- Coding Agent → Server Entry: starts server
- Server Entry → MCP Tools: dispatches tools
- MCP Tools → Index Pipeline: runs indexing
- Index Pipeline → Language Grammars: parses languages
- Index Pipeline → Code Extraction: extracts structure
- Index Pipeline → Semantic Resolution: resolves symbols
- Index Pipeline → Service Patterns: classifies links
- Index Pipeline → Graph Store: writes graph
- Index Pipeline → Incremental Repair: selects repair
- Incremental Repair → Delta Staging: stages changes
- Incremental Repair → Graph Store: updates graph
- MCP Tools → Graph Queries: runs queries
- Graph Queries → Graph Store: reads graph
- Session Manager → MCP Tools: owns sessions
- Agent Adapters → Coding Agent: configures clients
- Developer → Graph UI: opens graph UI
- Graph UI → Project Loading: loads projects
- Graph UI → Graph Data Hook: loads graph
- Project Loading → UI RPC: requests project data
- Graph Data Hook → UI RPC: requests graph data
- UI RPC → 3D Graph View: supplies graph data
- Graph UI → Stats View: renders stats
- Graph UI → Control View: renders controls
