Skip to main content

codebase-memory-mcp

Usa al indexar código en un grafo MCP para agentes IA.

Zur Installation springen

Quellinformationen

Repository
Ntizar/MasterMind
Letzte Quellaktivität
15. September 2026 um 22:06
Erkannte Sprache von SKILL.md
Spanisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
codebase-memory-mcp
description
Usa al indexar código en un grafo MCP para agentes IA.
version
1.0.0
author
Mastermind (stars-explorer)
license
MIT
metadata
{"hermes":{"tags":["mcp","knowledge-graph","tree-sitter","code-analysis","sqlite","cypher","code-intelligence","agent-tools"],"related_skills":["graphify-codebase-graph","native-mcp","mcp-servers-modelcontextprotocol","codebase-inspection"]}}
# codebase-memory-mcp (CBM) — Servidor MCP de Inteligencia de Código **Cuándo usarlo:** cuando un agente de código (Hermes, Claude Code, Codex, opencode…) necesite explorar o auditar un repositorio grande por estructura (quién llama a qué, impacto de un diff, código muerto, routes cross-service) en vez de leer ficheros uno a uno con grep. **Repo:** https://github.com/DeusData/codebase-memory-mcp (43.406⭐, C puro, MIT, activo — verificado 2026-09-16 contra README real; arXiv:2603.27277) Motor de inteligencia de código en un único binario nativo: indexa repositorios a un **grafo de conocimiento persistente en SQLite** (tree-sitter, 162 lenguajes + resolución de tipos **Hybrid LSP** en 12) y lo expone por MCP con 15 herramientas. Sin LLM embebido, sin API key, sin runtime de lenguaje: el agente que ya habla con el servidor ES la capa de inteligencia (NL→consulta lo traduce el cliente MCP). Cifras del README (M3 Pro): kernel Linux (28M LOC, 75K ficheros) indexado en 3 min; consultas estructurales <1 ms; 5 consultas estructurales ~3.400 tokens vs ~412.000 vía grep fichero a fichero (−99% tokens). ## Instalación (verificada del README) ```bash # macOS / Linux curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash ``` ```powershell # Windows: descargar install.ps1, revisarlo, quitar Mark-of-the-Web y ejecutar Invoke-WebRequest -Uri https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.ps1 -OutFile install.ps1 Unblock-File .\install.ps1 .\install.ps1 # si hay error de política: powershell -ExecutionPolicy Bypass -File .\install.ps1 ``` Opciones: `--skip-config` (solo binario), `--dir=<ruta>`. También disponible en npm, PyPI, Homebrew, Scoop, Winget, Chocolatey, AUR y `go install`. El comando `install` autodetecta agentes (45 superficies) y configura sus entradas MCP; **nunca toca flags experimentales ni permisos**. Actualizar: `codebase-memory-mcp update` imprime el comando del script de instalación a ejecutar (no se auto-actualiza desde el binario). ### Registro en Hermes (patrón propio) Añadir al `config.yaml` de Hermes (stdio): ```yaml mcp_servers: cbm: command: "C:/Users/d_ant/.local/bin/codebase-memory-mcp.exe" # ruta absoluta del binario args: [] ``` Hermes registra las herramientas como `mcp_cbm_*` (guiones → guiones bajos). Verificar reiniciando el agente y comprobando que aparecen las ~15 herramientas. ## Modelo de uso: 15 herramientas MCP | Grupo | Herramientas | |-------|-------------| | Indexado | `index_repository` (ruta ABSOLUTA), `list_projects`, `delete_project`, `index_status` | | Consulta | `get_graph_schema` (**ejecutarla primero**), `search_graph` (estructural/BM25/semántica con paginación `offset`/`limit` + `semantic_offset`), `trace_path` (BFS profundidad 1-5, inbound/outbound), `query_graph` (Cypher), `get_code_snippet` (por nombre cualificado), `search_code` (grep sobre indexado), `get_architecture` (idiomas, paquetes, routes, hotspots, clusters, ADR), `detect_changes` (git diff → símbolos afectados + blast radius con riesgo), `manage_adr` (CRUD ADR), `ingest_traces` (valida aristas HTTP_CALLS con trazas reales) | **Datos del grafo:** nodos `Project, Package, Folder, File, Module, Class, Function, Method, Interface, Enum, Type, Route, Resource`; aristas `CONTAINS_*, DEFINES(_METHOD), IMPORTS, CALLS, CALL_REFERENCE, USAGE, IMPLEMENTS, HANDLES, HTTP_CALLS, ASYNC_CALLS, EMITS/LISTENS_ON, DATA_FLOWS, SIMILAR_TO, SEMANTICALLY_RELATED, TESTS, FILE_CHANGES_WITH`. Nombres cualificados: `<project>.<path_parts>.<name>` — descubrirlos con `search_graph` antes de `get_code_snippet`. **Cypher:** subset openCypher SOLO lectura (`MATCH/OPTIONAL MATCH/WHERE/WITH/RETURN/ORDER BY/SKIP/LIMIT/DISTINCT/UNWIND/UNION/CASE`, `[*1..3]`, `EXISTS { (f)<-[:CALLS]-() }` para código muerto, agregados `count/sum/avg/min/max/collect`). Todo lo demás (MERGE, CALL, parameters, comprehensions) falla con error explícito — nunca devuelve vacío silencioso. Ejemplo: `MATCH (f:Function)-[:CALLS]->(g) WHERE f.name = 'main' RETURN g.name`. ## Modos de operación ```bash # CLI one-shot (sin daemon, ideal para scripts/crons): codebase-memory-mcp cli search_graph '{"project": "my-project", "name_pattern": ".*Handler.*"}' # --format json para payload machine-readable; stdout = resultado, stderr = progreso/logs # UI 3D del grafo en http://localhost:9749 (la posee el daemon compartido): codebase-memory-mcp --ui=true --port=9749 # Configuración: codebase-memory-mcp config list codebase-memory-mcp config set auto_index true # indexar al arrancar sesión MCP codebase-memory-mcp config set auto_index_limit 50000 codebase-memory-mcp config set auto_watch false # no registrar watcher por sesión codebase-memory-mcp config set watcher_enabled false # apagar hilo watcher (leelo abajo) ``` Persistencia: SQLite WAL en `~/.cache/codebase-memory-mcp/` (override `CBM_CACHE_DIR`); reset = borrar el directorio. Env vars útiles: `CBM_ALLOWED_ROOT` (confinar qué rutas se pueden indexar — clave si lo maneja un caller no confiado), `CBM_WORKERS`, `CBM_MEM_BUDGET_MB`, `CBM_LOG_LEVEL`, `CBM_DIAGNOSTICS`. ## Patrones reutilizables (lo que hay que aprender del repo) 1. **Backend estructural sin LLM + MCP como capa de inteligencia**: en vez de embeber un modelo NL→Cypher, el servidor solo ejecuta consultas y el agente cliente traduce → cero API keys, cero coste extra (arXiv: 83% calidad de respuesta, 10× menos tokens, 2.1× menos tool-calls vs exploración fichero a fichero). 2. **Pipeline RAM-first**: LZ4 + SQLite en memoria + volcado único al final, liberando RAM después — patrón para indexadores masivos. 3. **Confianza graduada en aristas**: `CALLS` (resuelto), `CALL_REFERENCE` (referencia a objetivo único), `USAGE` (usado sin objetivo probado) — modelar la incertidumbre en el grafo en vez de binarizar. 4. **Tiering de subagentes** (Scout/Verify/Auditor): descubrimiento rápido provisional → evidencia dirigida con cobertura → auditoría con límites explícitos; y `check_index_coverage` como evidencia negativa honesta ("sin hueco registrado" ≠ "completo"). 5. **Exact-build admission barrier**: todos los procesos de la herramienta comparten versión/ABI/cache-root con barrera a prueba de crashes — patrón para CLI con daemon compartido. 6. **IaC como grafo**: Dockerfiles/K8s/Kustomize indexados como nodos `Resource`/`Module` con aristas `IMPORTS` — el grafo cruza código e infraestructura; y **cross-repo**: aristas `CROSS_*` entre repos bajo el mismo store. ## Pitfalls - **Defender marca el binario** como `Trojan:Script/Wacatac.B!ml` — falso positivo conocido (misma familia que `gh`, llama.cpp, Godot); los releases se escanean en VirusTotal con SHA-256 publicado. - **`watcher_enabled` se lee UNA vez al arrancar el daemon**: tras cambiarlo hay que `codebase-memory-mcp daemon stop`; reconectar el cliente MCP no reinicia el daemon (a diferencia de `auto_watch`, que se consulta por sesión). - `trace_path` devuelve 0 si el nombre no es exacto → `search_graph(name_pattern=".*Parcial.*")` primero. - Consultas sin `project="..."` pueden mezclar proyectos → `list_projects` para ver nombres. - `index_repository` exige **ruta absoluta**. - Un solo cache-root canónico por cuenta: cerrar sesiones CBM activas antes de cambiar `CBM_CACHE_DIR`. - `manage_adr(mode='set_sections')` reescribe solo las secciones nombradas (matching exacto, case-sensitive); `update` reemplaza el documento ENTERO. - `uninstall` NO borra el install.sh/ps1 lateral (no puede probar que es suyo) — solo imprime la ruta y el `rm`. - El `skill_angles` del scout lo marcaba como "ai-cv-pipeline/ci-cd" — FALSO: no tiene nada que ver con CV; es inteligencia de código (pitfall conocido del heurístico por topics). ## Comparativa con graphify (ia/graphify-codebase-graph) | | CBM | graphify | |---|---|---| | Forma | binario nativo C, MCP-first, SQLite + UI 3D + daemon | paquete Python CLI, salida graph.json/HTML/wiki | | Alcance grafo | 162 lenguajes código + IaC + cross-repo | código (~40 lenguajes) + docs/PDF/media al mismo grafo | | Consultas | Cypher subset + trace/BM25/semántica | `query`/`path`/`explain` sobre graph.json + MCP serve | | Cuándo usar | en el bucle del agente de código (Claude Code/Codex/opencode/Hermes vía MCP), impacto de diffs, cross-service | investigación offline, compartir wiki/markdown, mezclar docs y media con código | ## Verificación 1. `echo '{}' | <ruta-binario>` imprime JSON → el binario responde. 2. `codebase-memory-mcp cli list_projects '{}'` tras indexar → el proyecto con conteo de nodos/aristas. 3. `get_graph_schema` → etiquetas y patrones de relación del indexado; `query_graph` con un `MATCH` simple devuelve filas <1 ms. 4. En Claude Code, `/mcp` muestra el servidor con 15 herramientas.
Auf GitHub ansehen