memoria-codigo-local
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@memoria-codigo-localWhere isSafeMarkdowndefined?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Memoria de código local
Servidor MCP mínimo para indexar, solo en memoria, los símbolos exportados de un proyecto TypeScript/React. Permite a un agente localizar definiciones, referencias, relaciones y estructura sin abrir ni recorrer repetidamente todo el repositorio. Incluye también un panel visual local y opcional.
Este proyecto existe como alternativa auditable a un MCP de terceros que motivó preocupación por incluir comportamiento de descarga, red y procesos hijo no acorde con sus garantías documentadas. Aquí no hay llamadas de red salientes, telemetría, actualizador, binarios, base de datos, scripts de instalación ni procesos hijo: se instala con npm install y se ejecuta con node.
Ventajas reales
No todas las herramientas ahorran lo mismo, y el ahorro depende del tamaño del proyecto indexado. Esto es lo que se ha comprobado de verdad, no una promesa genérica:
buscar_referenciases más preciso quegrep. Al basarse en el árbol de sintaxis (ts-morph), no en texto, no devuelve como resultado un comentario que menciona el nombre o una variable distinta que se llama igual por coincidencia. Evita la ronda de "espera, eso no es un uso real" que sí aparece buscando por texto.trazar_caminoresuelve en una llamada lo que a mano son varias rondas de búsqueda encadenada. Rastrear "qué depende de qué depende de qué" a través de varios saltos, buscando y leyendo cada eslabón, es exactamente el tipo de tarea que se vuelve lenta y cara a mano y barata con el grafo ya construido.resumen_arquitecturada una orientación inicial rápida en un proyecto que no se conoce, en vez de varias exploraciones de carpetas y ficheros para hacerse una idea de la estructura.El ahorro crece con el tamaño del proyecto y con cuántas veces se repite este tipo de búsqueda en una sesión, no es un número fijo. En un proyecto pequeño la diferencia frente a buscar a mano es modesta; en un árbol grande, o reutilizando este mismo índice entre varios proyectos, el coste de haberlo construido una vez se amortiza mucho mejor.
Related MCP server: code-dev-intel
Requisitos y uso
Node.js 20 o posterior.
Una ruta local que contenga ficheros
.tso.tsx.
npm install
npm run build
node dist/servidor.js /ruta/al/proyecto-o-srcTambién se puede indicar la raíz con la variable RAIZ_PROYECTO. El servidor escribe exclusivamente el protocolo MCP en stdout; los errores de arranque van a stderr.
El índice se reconstruye al arrancar. Usa el tsconfig.json y .gitignore más cercanos hacia arriba para comprender aliases y exclusiones, pero solo indexa declaraciones ubicadas bajo la raíz indicada. Además excluye siempre .git, node_modules, dist, build y coverage.
Cómo se usa en la práctica
Estas herramientas no se invocan escribiendo JSON a mano. MCP es un
protocolo entre un agente (Claude Code, u otro cliente MCP) y este
servidor: tú hablas en lenguaje normal con el agente, y es el agente
quien decide llamar a una herramienta y con qué argumentos, sin que tú
veas ese paso intermedio. Por ejemplo, si le preguntas a Claude Code
"¿dónde está definido SafeMarkdown?" estando este servidor
registrado, el agente llama por su cuenta a buscar_simbolo con
{ "nombre": "SafeMarkdown" } y te devuelve la respuesta ya traducida a
una frase. El bloque JSON de cada herramienta de abajo es la forma de
esos argumentos, documentada para quien programe o audite el
servidor — no algo que tengas que teclear tú.
Si quieres probar una herramienta directamente, sin ningún agente de
por medio, existe el Inspector oficial de MCP: abre un panel web con
un formulario por cada herramienta, para llamarla a mano y ver la
respuesta real. Se descarga por npx la primera vez que se ejecuta —
es la única vez que este proyecto toca la red, y es una acción tuya
explícita, no algo que el servidor haga solo.
npm run build
npx @modelcontextprotocol/inspector node dist/servidor.js /ruta/al/proyectoVerificado tal cual (con Node 22.12): imprime en la terminal una URL
del tipo http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=... y abre esa
página en el navegador automáticamente. Ese token en la URL es normal
— es la autenticación local del propio Inspector contra su servidor
proxy, no una fuga de nada. Elige una herramienta de la lista de la
izquierda, rellena sus campos (o déjalos vacíos si no tiene, como
reindexar) y pulsa "Run" — verás la respuesta JSON tal cual la
generaría este servidor. Es la forma más rápida de entender qué hace
cada una antes de registrarlo en Claude Code.
Existe una v2 del Inspector (npx @modelcontextprotocol/inspector@latest)
con más funciones, pero pide Node ≥ 22.19; con versiones de Node
anteriores arranca igualmente con un aviso de compatibilidad. Si tu
Node es más antiguo, usa el comando sin @latest — resuelve a la v1,
que solo recibe parches de seguridad pero funciona sin avisos.
Herramientas MCP
Referencia de las diez herramientas: qué hace cada una y la forma exacta de sus argumentos. Las respuestas son JSON dentro del contenido textual MCP. Las rutas siempre son relativas a la raíz indexada.
buscar_simbolo
Encuentra todas las definiciones exportadas con el nombre exacto. Los nombres duplicados producen varios resultados.
Argumentos:
{ "nombre": "SafeMarkdown" }buscar_texto
Busca palabras en el nombre del símbolo —separando camelCase y PascalCase— y en la primera línea de su JSDoc. Tolera erratas pequeñas mediante distancia de Levenshtein, pero no entiende sinónimos ni relaciones entre conceptos.
Argumentos:
{ "consulta": "markdown seguro" }buscar_referencias
Devuelve cada línea donde el símbolo se importa o usa, ordenada por fichero y línea.
Argumentos:
{ "nombre": "useAuth" }listar_exports
Lista lo exportado directamente o reexportado por el fichero indicado.
Argumentos:
{ "ruta_relativa": "src/components/content/SafeMarkdown.tsx" }reindexar
Fuerza una reconstrucción completa tras cambiar el código, sin reiniciar el servidor. No necesita argumentos — en el Inspector, se llama con el formulario vacío.
resumen_arquitectura
Devuelve el árbol de carpetas que contienen ficheros indexados. Cada carpeta incluye el total de símbolos exportados de su subárbol y su agrupación por tipo. No necesita argumentos.
obtener_fragmento
Devuelve literalmente un intervalo de líneas de un fichero indexado. Solo acepta rutas relativas, no permite salir de la raíz y limita cada respuesta a 200 líneas.
Argumentos:
{ "ruta_relativa": "src/indexador.ts", "linea_inicio": 1, "linea_fin": 40 }cobertura_indexado
Cuenta todos los ficheros .ts y .tsx bajo la raíz, indica cuántos entraron en el índice y enumera cada exclusión con su motivo: .gitignore, directorio excluido, fichero .d.ts u otra causa explícita. No necesita argumentos.
trazar_camino
Busca en anchura un camino de referencias de hasta 6 saltos. Una arista A → B significa que el símbolo exportado B referencia a A; por tanto, el camino avanza desde un símbolo hacia los símbolos que dependen de él. Si no existe un camino, la respuesta lo dice expresamente y devuelve encontrado: false.
Argumentos:
{ "desde": "useAuth", "hasta": "App" }buscar_por_tipo
Lista todos los símbolos de uno de estos tipos: función, componente React, clase, interfaz, tipo, constante o enum.
Argumentos:
{ "tipo": "componente React" }Un símbolo o fichero inexistente devuelve un error MCP legible, no una excepción sin controlar. Un símbolo existente sin referencias devuelve correctamente una lista vacía.
Panel visual
El panel es un proceso separado del servidor MCP. Tras compilar, se puede lanzar explícitamente sobre la raíz completa de un proyecto:
npm run dashboard -- /ruta/al/proyectoReindexa al arrancar, sirve la página en http://127.0.0.1:8420 y publica los datos en GET /grafo con la forma { "nodos": [...], "aristas": [...] }. El puerto se puede cambiar con un segundo argumento o con PUERTO_DASHBOARD:
npm run dashboard -- /ruta/al/proyecto 9123
PUERTO_DASHBOARD=9123 RAIZ_PROYECTO=/ruta/al/proyecto npm run dashboardEl servidor usa node:http y escucha exclusivamente en 127.0.0.1, nunca en 0.0.0.0. La página, el CSS y el JavaScript son locales y no cargan fuentes, scripts, imágenes ni bibliotecas desde CDN o desde Internet. Escuchar en localhost para que el navegador del propio usuario abra un panel solicitado explícitamente no contradice la regla de cero llamadas salientes: escuchar localmente y llamar hacia fuera son categorías distintas, y el panel nunca envía datos a otro servidor.
La visualización está escrita con Canvas y JavaScript vainilla. La disposición aplica en las tres dimensiones repulsión entre nodos, atracción en cada referencia, gravedad suave hacia el centro y amortiguación. Una cámara orbital y una proyección en perspectiva convierten ese espacio 3D en la imagen 2D; el tamaño de los nodos representa su número de conexiones y la profundidad modifica tamaño, brillo y aristas.
Arrastrar con el botón izquierdo sobre el fondo rota la cámara; la rueda hace zoom hacia el punto bajo el cursor; el botón derecho, o Mayús más arrastre, desplaza la vista. El botón Restablecer vista recupera la orientación, el zoom y el desplazamiento iniciales. Al pasar el ratón o hacer clic en un nodo se muestran nombre, tipo, fichero, línea y métricas de conexiones contra su posición proyectada actual.
Claude Code
Añade este bloque a la configuración MCP de Claude Code. Las dos rutas son absolutas porque Claude Code puede iniciar el servidor desde cualquier directorio:
{
"mcpServers": {
"memoria-codigo-local": {
"command": "node",
"args": [
"/Users/pedroleridanieto/Desktop/Proyectos IA/codebase-memory-local/dist/servidor.js",
"/Users/pedroleridanieto/Desktop/Proyectos IA/tech-study-tracker"
]
}
}
}Si solo interesa el código fuente, el segundo argumento puede terminar en /src; las rutas devueltas serán entonces relativas a src.
Diseño auditable
src/indexador.ts: recorrido local, análisis con ts-morph e índice en memoria.src/servidor.ts: adaptación del índice a diez herramientas MCP por stdio.src/dashboard.ts: servidor HTTP local separado y visualización Canvas autocontenida.src/indexador.test.ts: proyecto sintético y aserciones exactas connode:test.Las funciones o constantes exportadas cuyo nombre comienza en mayúscula y están en
.tsxse clasifican como componentes React. Es una heurística pequeña y explícita; no intenta inferir el tipo de retorno.Las referencias que caen en la misma línea se deduplican para que una línea de importación con varias apariciones no consuma resultados repetidos.
El grafo solo enlaza símbolos cuando la referencia está dentro de la declaración de otro símbolo exportado. Un import a nivel de fichero continúa apareciendo en
buscar_referencias, pero no se inventa un nodo de fichero para representarlo.
Qué no replicamos y por qué
search_graph(búsqueda semántica/vectorial): no se replica porque incluso un modelo de embeddings local es un bloque de pesos binario opaco que rompe la auditabilidad de un vistazo, casi siempre necesita un runtime con bindings nativos y no hace falta a la escala prevista aquí: cientos de símbolos, no decenas de miles.Como sustituto léxico honesto se añadió
buscar_texto, que compara palabras del nombre y del JSDoc y tolera errores tipográficos pequeños. No es semántica real: no relaciona conceptos ni entiende sinónimos; solo encuentra palabras y erratas cercanas.Un lenguaje Cypher real: requiere un motor completo de consultas de grafos, mucho más ambicioso y con una superficie de bugs mucho mayor.
buscar_por_tipocubre el caso común de forma simple y auditable; no pretende ser Cypher.manage_adr: gestionar un registro de decisiones de arquitectura es gestión de proyecto, no indexación de código. Está fuera de alcance.detect_changes: un diff de Git traducido a símbolos afectados sería una ampliación futura útil, pero requiere invocargitcomo subproceso y v1 mantiene la regla de cerochild_process. Solo se consideraría relajando esa regla de forma explícita y acotada:execFile("git", [argv fijo], { cwd }), nunca un shell ni argumentos dinámicos sin validar.
Verificación
npm run build
npm testLos tests fabrican proyectos temporales con exports e imports conocidos y comprueban valores completos de definiciones, referencias, arquitectura, fragmentos, cobertura, caminos y filtros por tipo.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceA TypeScript-aware MCP server that provides coding agents with repository discovery, code intelligence, and web project context for local codebases. It enables deep symbol navigation, diagnostic reporting, and structural analysis of monorepos without requiring full IDE integration.7111MIT
- Alicense-qualityCmaintenanceA self-hosted MCP and HTTP server for TypeScript code intelligence, providing AI agents with fast semantic code navigation tools like finding definitions, references, implementations, file outlines, dependency graphs, and search.272AGPL 3.0
- Alicense-qualityAmaintenanceA local MCP server that gives AI coding agents symbol definitions, dependency graphs, and a live architecture vocabulary for TypeScript/JavaScript repos, with no network or embeddings.12MIT
- Alicense-qualityCmaintenanceMCP server for semantic codebase navigation that builds an AST index of symbols, imports, and exports, providing AI agents with tools to search, explore, and understand code.MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Enterprise code intelligence for M&A, security audits, and tech debt. Hosted server with 200k free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/pedroleni/code-memory-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server