@grec0/memory-bank-mcp 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.memoryignore.example +76 -0
- package/README.md +425 -0
- package/dist/common/chunker.js +407 -0
- package/dist/common/embeddingService.js +302 -0
- package/dist/common/errors.js +71 -0
- package/dist/common/fileScanner.js +261 -0
- package/dist/common/indexManager.js +332 -0
- package/dist/common/setup.js +49 -0
- package/dist/common/types.js +115 -0
- package/dist/common/utils.js +215 -0
- package/dist/common/vectorStore.js +332 -0
- package/dist/common/version.js +2 -0
- package/dist/index.js +274 -0
- package/dist/operations/boardMemberships.js +186 -0
- package/dist/operations/boards.js +268 -0
- package/dist/operations/cards.js +426 -0
- package/dist/operations/comments.js +249 -0
- package/dist/operations/labels.js +258 -0
- package/dist/operations/lists.js +157 -0
- package/dist/operations/projects.js +102 -0
- package/dist/operations/tasks.js +238 -0
- package/dist/tools/analyzeCoverage.js +316 -0
- package/dist/tools/board-summary.js +151 -0
- package/dist/tools/card-details.js +106 -0
- package/dist/tools/create-card-with-tasks.js +81 -0
- package/dist/tools/getStats.js +59 -0
- package/dist/tools/index.js +12 -0
- package/dist/tools/indexCode.js +53 -0
- package/dist/tools/readFile.js +69 -0
- package/dist/tools/searchMemory.js +60 -0
- package/dist/tools/workflow-actions.js +145 -0
- package/dist/tools/writeFile.js +66 -0
- package/package.json +58 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Memory Bank Ignore File
|
|
2
|
+
# Similar to .gitignore, this file specifies patterns to exclude from indexing
|
|
3
|
+
# Patterns are applied in addition to .gitignore rules
|
|
4
|
+
|
|
5
|
+
# Dependencies
|
|
6
|
+
node_modules/
|
|
7
|
+
vendor/
|
|
8
|
+
bower_components/
|
|
9
|
+
|
|
10
|
+
# Build outputs
|
|
11
|
+
dist/
|
|
12
|
+
build/
|
|
13
|
+
out/
|
|
14
|
+
target/
|
|
15
|
+
*.min.js
|
|
16
|
+
*.bundle.js
|
|
17
|
+
|
|
18
|
+
# Memory Bank storage itself
|
|
19
|
+
.memorybank/
|
|
20
|
+
|
|
21
|
+
# Large data files
|
|
22
|
+
*.csv
|
|
23
|
+
*.dat
|
|
24
|
+
*.log
|
|
25
|
+
*.db
|
|
26
|
+
*.sqlite
|
|
27
|
+
*.sqlite3
|
|
28
|
+
|
|
29
|
+
# Binary and media files
|
|
30
|
+
*.exe
|
|
31
|
+
*.dll
|
|
32
|
+
*.so
|
|
33
|
+
*.dylib
|
|
34
|
+
*.bin
|
|
35
|
+
*.pdf
|
|
36
|
+
*.jpg
|
|
37
|
+
*.jpeg
|
|
38
|
+
*.png
|
|
39
|
+
*.gif
|
|
40
|
+
*.svg
|
|
41
|
+
*.ico
|
|
42
|
+
*.mp3
|
|
43
|
+
*.mp4
|
|
44
|
+
*.avi
|
|
45
|
+
*.mov
|
|
46
|
+
*.zip
|
|
47
|
+
*.tar
|
|
48
|
+
*.gz
|
|
49
|
+
*.rar
|
|
50
|
+
|
|
51
|
+
# Documentation that doesn't need indexing
|
|
52
|
+
CHANGELOG.md
|
|
53
|
+
LICENSE
|
|
54
|
+
*.lock
|
|
55
|
+
|
|
56
|
+
# Test fixtures and mocks
|
|
57
|
+
__snapshots__/
|
|
58
|
+
fixtures/
|
|
59
|
+
mocks/
|
|
60
|
+
|
|
61
|
+
# IDE and editor files
|
|
62
|
+
.vscode/
|
|
63
|
+
.idea/
|
|
64
|
+
*.swp
|
|
65
|
+
*.swo
|
|
66
|
+
*~
|
|
67
|
+
|
|
68
|
+
# OS files
|
|
69
|
+
.DS_Store
|
|
70
|
+
Thumbs.db
|
|
71
|
+
desktop.ini
|
|
72
|
+
|
|
73
|
+
# Temporary files
|
|
74
|
+
*.tmp
|
|
75
|
+
*.temp
|
|
76
|
+
*.cache
|
package/README.md
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
# Memory Bank MCP - Semantic Code Indexing
|
|
2
|
+
|
|
3
|
+
Servidor MCP (Model Context Protocol) para indexación semántica de código. Permite a agentes de IA como Claude mantener un "memoria persistente" de bases de código completas mediante embeddings vectoriales y búsqueda semántica.
|
|
4
|
+
|
|
5
|
+
## 🧠 ¿Qué es Memory Bank?
|
|
6
|
+
|
|
7
|
+
**Memory Bank** es un sistema de memoria externa para agentes de código que resuelve el problema fundamental de la pérdida de contexto en IAs. Funciona como el "cerebro externo" del proyecto:
|
|
8
|
+
|
|
9
|
+
- **Indexa** todo tu código usando embeddings de OpenAI
|
|
10
|
+
- **Fragmenta** inteligentemente usando parsing AST (funciones, clases, métodos)
|
|
11
|
+
- **Almacena** vectores en LanceDB para búsquedas ultrarrápidas
|
|
12
|
+
- **Busca** semánticamente: pregunta en lenguaje natural, obtén código relevante
|
|
13
|
+
- **Actualiza** incrementalmente: solo reindexa archivos modificados
|
|
14
|
+
|
|
15
|
+
### ¿Por qué lo necesitas?
|
|
16
|
+
|
|
17
|
+
Sin Memory Bank, las IAs:
|
|
18
|
+
- ❌ Olvidan todo entre sesiones
|
|
19
|
+
- ❌ Solo ven fragmentos pequeños de código
|
|
20
|
+
- ❌ Alucinan implementaciones inexistentes
|
|
21
|
+
- ❌ Dan respuestas genéricas sin contexto
|
|
22
|
+
|
|
23
|
+
Con Memory Bank, las IAs:
|
|
24
|
+
- ✅ Recuerdan toda la base de código
|
|
25
|
+
- ✅ Entienden arquitectura y patrones
|
|
26
|
+
- ✅ Responden con código real del proyecto
|
|
27
|
+
- ✅ Generan código consistente con tu estilo
|
|
28
|
+
|
|
29
|
+
## 🚀 Características
|
|
30
|
+
|
|
31
|
+
- **🔍 Búsqueda Semántica**: Pregunta "¿cómo funciona la autenticación?" y obtén código relevante
|
|
32
|
+
- **🧩 Chunking Inteligente**: AST parsing para TypeScript/JavaScript/Python
|
|
33
|
+
- **⚡ Actualización Incremental**: Solo reindexa archivos modificados (detección por hash)
|
|
34
|
+
- **💾 Cache de Embeddings**: Evita regenerar embeddings innecesariamente
|
|
35
|
+
- **🎯 Filtros Avanzados**: Por archivo, lenguaje, tipo de chunk
|
|
36
|
+
- **📊 Estadísticas Detalladas**: Conoce el estado de tu índice en todo momento
|
|
37
|
+
- **🔒 Privacidad**: Vector store local, respeta .gitignore y .memoryignore
|
|
38
|
+
|
|
39
|
+
## 📋 Requisitos
|
|
40
|
+
|
|
41
|
+
- **Node.js** >= 18.0.0
|
|
42
|
+
- **OpenAI API Key**: [Obtener aquí](https://platform.openai.com/api-keys)
|
|
43
|
+
- **Espacio en disco**: ~10MB por cada 10,000 archivos (embeddings + metadata)
|
|
44
|
+
|
|
45
|
+
## 🛠️ Instalación
|
|
46
|
+
|
|
47
|
+
### Opción 1: NPX (Recomendado)
|
|
48
|
+
|
|
49
|
+
La forma más fácil de usar Memory Bank MCP sin instalación local:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx @grec0/memory-bank-mcp@latest
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Opción 2: Instalación Local
|
|
56
|
+
|
|
57
|
+
Para desarrollo o contribución:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Clonar repositorio
|
|
61
|
+
git clone https://github.com/grec0/memory-bank-mcp.git
|
|
62
|
+
cd memory-bank-mcp
|
|
63
|
+
|
|
64
|
+
# Instalar dependencias
|
|
65
|
+
npm install
|
|
66
|
+
|
|
67
|
+
# Compilar
|
|
68
|
+
npm run build
|
|
69
|
+
|
|
70
|
+
# Ejecutar
|
|
71
|
+
npm run start
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## ⚙️ Configuración
|
|
75
|
+
|
|
76
|
+
### Variables de Entorno
|
|
77
|
+
|
|
78
|
+
Crea un archivo `.env` en la raíz de tu workspace (o configúralas en tu cliente MCP):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# REQUERIDO: Tu API key de OpenAI
|
|
82
|
+
OPENAI_API_KEY=sk-your-api-key-here
|
|
83
|
+
|
|
84
|
+
# OPCIONAL: Configuración avanzada
|
|
85
|
+
MEMORYBANK_STORAGE_PATH=.memorybank # Dónde almacenar el índice
|
|
86
|
+
MEMORYBANK_EMBEDDING_MODEL=text-embedding-3-small # Modelo de OpenAI
|
|
87
|
+
MEMORYBANK_EMBEDDING_DIMENSIONS=1536 # Dimensiones (1536 o 512)
|
|
88
|
+
MEMORYBANK_CHUNK_SIZE=1000 # Tamaño máximo de chunks
|
|
89
|
+
MEMORYBANK_CHUNK_OVERLAP=200 # Overlap entre chunks
|
|
90
|
+
MEMORYBANK_WORKSPACE_ROOT=/path/to/project # Raíz del workspace
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Configuración en Claude Desktop
|
|
94
|
+
|
|
95
|
+
Edita tu archivo de configuración de Claude Desktop:
|
|
96
|
+
|
|
97
|
+
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
98
|
+
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
99
|
+
**Linux**: `~/.config/claude/claude_desktop_config.json`
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"memory-bank": {
|
|
105
|
+
"command": "npx",
|
|
106
|
+
"args": ["@grec0/memory-bank-mcp@latest"],
|
|
107
|
+
"env": {
|
|
108
|
+
"OPENAI_API_KEY": "sk-your-api-key-here"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Configuración con Instalación Local
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"mcpServers": {
|
|
120
|
+
"memory-bank": {
|
|
121
|
+
"command": "node",
|
|
122
|
+
"args": ["/ruta/absoluta/memory-bank-mcp/dist/index.js"],
|
|
123
|
+
"cwd": "/ruta/absoluta/memory-bank-mcp",
|
|
124
|
+
"env": {
|
|
125
|
+
"OPENAI_API_KEY": "sk-your-api-key-here"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 📚 Herramientas Disponibles
|
|
133
|
+
|
|
134
|
+
### `memorybank_index_code`
|
|
135
|
+
|
|
136
|
+
Indexa código semánticamente para permitir búsquedas.
|
|
137
|
+
|
|
138
|
+
**Parámetros:**
|
|
139
|
+
- `path` (opcional): Ruta relativa o absoluta (default: raíz del workspace)
|
|
140
|
+
- `recursive` (opcional): Indexar subdirectorios (default: true)
|
|
141
|
+
- `forceReindex` (opcional): Forzar reindexación completa (default: false)
|
|
142
|
+
|
|
143
|
+
**Ejemplo:**
|
|
144
|
+
```
|
|
145
|
+
memorybank_index_code({ path: "src/auth", recursive: true })
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### `memorybank_search`
|
|
149
|
+
|
|
150
|
+
Busca código por similitud semántica.
|
|
151
|
+
|
|
152
|
+
**Parámetros:**
|
|
153
|
+
- `query` (requerido): Consulta en lenguaje natural
|
|
154
|
+
- `topK` (opcional): Número de resultados (default: 10)
|
|
155
|
+
- `minScore` (opcional): Score mínimo 0-1 (default: 0.7)
|
|
156
|
+
- `filterByFile` (opcional): Filtrar por patrón de archivo
|
|
157
|
+
- `filterByLanguage` (opcional): Filtrar por lenguaje
|
|
158
|
+
|
|
159
|
+
**Ejemplo:**
|
|
160
|
+
```
|
|
161
|
+
memorybank_search({
|
|
162
|
+
query: "función que autentica usuarios con JWT",
|
|
163
|
+
topK: 5,
|
|
164
|
+
minScore: 0.8
|
|
165
|
+
})
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### `memorybank_read_file`
|
|
169
|
+
|
|
170
|
+
Lee contenido de un archivo.
|
|
171
|
+
|
|
172
|
+
**Parámetros:**
|
|
173
|
+
- `path` (requerido): Ruta del archivo
|
|
174
|
+
- `startLine` (opcional): Línea inicial
|
|
175
|
+
- `endLine` (opcional): Línea final
|
|
176
|
+
|
|
177
|
+
**Ejemplo:**
|
|
178
|
+
```
|
|
179
|
+
memorybank_read_file({ path: "src/auth/service.ts", startLine: 50, endLine: 100 })
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### `memorybank_write_file`
|
|
183
|
+
|
|
184
|
+
Escribe un archivo y lo reindexa automáticamente.
|
|
185
|
+
|
|
186
|
+
**Parámetros:**
|
|
187
|
+
- `path` (requerido): Ruta del archivo
|
|
188
|
+
- `content` (requerido): Contenido del archivo
|
|
189
|
+
- `autoReindex` (opcional): Auto-reindexar (default: true)
|
|
190
|
+
|
|
191
|
+
**Ejemplo:**
|
|
192
|
+
```
|
|
193
|
+
memorybank_write_file({
|
|
194
|
+
path: "src/utils/validator.ts",
|
|
195
|
+
content: "export function validateEmail(email: string) { ... }"
|
|
196
|
+
})
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### `memorybank_get_stats`
|
|
200
|
+
|
|
201
|
+
Obtiene estadísticas del Memory Bank.
|
|
202
|
+
|
|
203
|
+
**Ejemplo:**
|
|
204
|
+
```
|
|
205
|
+
memorybank_get_stats({})
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## 🎯 Casos de Uso
|
|
209
|
+
|
|
210
|
+
### 1. Primera Indexación
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
Usuario: Hola, quiero que me ayudes con mi proyecto
|
|
214
|
+
Claude: [ejecuta memorybank_get_stats]
|
|
215
|
+
Veo que no hay código indexado aún.
|
|
216
|
+
¿Deseas que indexe el proyecto para poder ayudarte mejor?
|
|
217
|
+
|
|
218
|
+
Usuario: Sí
|
|
219
|
+
Claude: [ejecuta memorybank_index_code({})]
|
|
220
|
+
He indexado 145 archivos (1,234 chunks) en 45 segundos.
|
|
221
|
+
¿En qué puedo ayudarte?
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 2. Búsqueda de Código
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
Usuario: ¿Cómo funciona la autenticación en este proyecto?
|
|
228
|
+
Claude: [ejecuta memorybank_search({ query: "autenticación login usuarios" })]
|
|
229
|
+
|
|
230
|
+
La autenticación se implementa en src/auth/authService.ts (líneas 23-87):
|
|
231
|
+
|
|
232
|
+
[Código encontrado]
|
|
233
|
+
|
|
234
|
+
El sistema usa JWT tokens con refresh token rotation.
|
|
235
|
+
La validación se hace en el middleware src/middleware/auth.ts.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### 3. Modificación de Código
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
Usuario: Añade validación de email al formulario de registro
|
|
242
|
+
Claude: [busca formulario de registro]
|
|
243
|
+
[busca validadores existentes]
|
|
244
|
+
[lee archivo actual]
|
|
245
|
+
[genera código respetando estilo del proyecto]
|
|
246
|
+
[escribe archivo con memorybank_write_file]
|
|
247
|
+
|
|
248
|
+
He añadido la validación de email en src/forms/RegisterForm.tsx línea 45.
|
|
249
|
+
Usa el validador existente de emailValidator.ts para mantener consistencia.
|
|
250
|
+
El archivo ha sido reindexado automáticamente.
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## 🔧 Archivos de Configuración
|
|
254
|
+
|
|
255
|
+
### `.memoryignore`
|
|
256
|
+
|
|
257
|
+
Similar a `.gitignore`, especifica patrones a excluir de indexación:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Dependencias
|
|
261
|
+
node_modules/
|
|
262
|
+
vendor/
|
|
263
|
+
|
|
264
|
+
# Build outputs
|
|
265
|
+
dist/
|
|
266
|
+
build/
|
|
267
|
+
*.min.js
|
|
268
|
+
|
|
269
|
+
# Memory Bank storage
|
|
270
|
+
.memorybank/
|
|
271
|
+
|
|
272
|
+
# Large data files
|
|
273
|
+
*.csv
|
|
274
|
+
*.log
|
|
275
|
+
*.db
|
|
276
|
+
|
|
277
|
+
# Binary and media
|
|
278
|
+
*.exe
|
|
279
|
+
*.pdf
|
|
280
|
+
*.jpg
|
|
281
|
+
*.png
|
|
282
|
+
*.mp4
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Copia el ejemplo**:
|
|
286
|
+
```bash
|
|
287
|
+
cp .memoryignore.example .memoryignore
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Respeto de `.gitignore`
|
|
291
|
+
|
|
292
|
+
Memory Bank **respeta automáticamente** los patrones de `.gitignore` en tu proyecto, además de los de `.memoryignore`.
|
|
293
|
+
|
|
294
|
+
## 💰 Costos de OpenAI
|
|
295
|
+
|
|
296
|
+
Memory Bank usa `text-embedding-3-small` que es muy económico:
|
|
297
|
+
|
|
298
|
+
- **Precio**: ~$0.00002 por 1K tokens
|
|
299
|
+
- **Ejemplo**: 10,000 archivos × 1,000 tokens promedio = **~$0.20**
|
|
300
|
+
- **Cache**: Los embeddings se cachean, solo se regeneran si el código cambia
|
|
301
|
+
- **Incremental**: Solo se reindexan archivos modificados
|
|
302
|
+
|
|
303
|
+
**Búsquedas son extremadamente baratas** (solo 1 embedding por query).
|
|
304
|
+
|
|
305
|
+
## 🧪 Testing
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# Ejecutar tests
|
|
309
|
+
npm test
|
|
310
|
+
|
|
311
|
+
# Tests con cobertura
|
|
312
|
+
npm test -- --coverage
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## 🔐 Seguridad y Privacidad
|
|
316
|
+
|
|
317
|
+
- ✅ **Vector store local**: LanceDB corre en tu máquina
|
|
318
|
+
- ✅ **Sin telemetría**: No enviamos datos a servidores externos
|
|
319
|
+
- ✅ **Solo embeddings**: OpenAI solo ve el texto del código, no metadata sensible
|
|
320
|
+
- ✅ **Respeta .gitignore**: Archivos ignorados no se indexan
|
|
321
|
+
- ✅ **API key segura**: Se lee de variables de entorno, nunca se hardcodea
|
|
322
|
+
|
|
323
|
+
### Recomendaciones
|
|
324
|
+
|
|
325
|
+
1. **No subas `.memorybank/` a git** (ya está en .gitignore)
|
|
326
|
+
2. **Usa `.memoryignore`** para excluir archivos sensibles
|
|
327
|
+
3. **API keys en variables de entorno**, nunca en código
|
|
328
|
+
4. **Revisa que `.env` esté en .gitignore**
|
|
329
|
+
|
|
330
|
+
## 🐛 Solución de Problemas
|
|
331
|
+
|
|
332
|
+
### Error: "OPENAI_API_KEY is required"
|
|
333
|
+
|
|
334
|
+
**Solución**: Configura tu API key en las variables de entorno.
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
# En .env
|
|
338
|
+
OPENAI_API_KEY=sk-your-key-here
|
|
339
|
+
|
|
340
|
+
# O en la configuración de Claude Desktop (ver arriba)
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Error: "No files found to index"
|
|
344
|
+
|
|
345
|
+
**Causas posibles**:
|
|
346
|
+
1. El directorio está vacío
|
|
347
|
+
2. Todos los archivos están en .gitignore/.memoryignore
|
|
348
|
+
3. No hay archivos de código reconocidos
|
|
349
|
+
|
|
350
|
+
**Solución**: Verifica que haya archivos .ts, .js, .py, etc. en el directorio.
|
|
351
|
+
|
|
352
|
+
### Búsquedas retornan resultados irrelevantes
|
|
353
|
+
|
|
354
|
+
**Soluciones**:
|
|
355
|
+
1. **Aumenta `minScore`**: Usa 0.8 o 0.9 para resultados más precisos
|
|
356
|
+
2. **Usa filtros**: `filterByFile` o `filterByLanguage`
|
|
357
|
+
3. **Reformula la query**: Sé más específico y descriptivo
|
|
358
|
+
4. **Reindexa**: Puede que el índice esté desactualizado
|
|
359
|
+
|
|
360
|
+
```
|
|
361
|
+
memorybank_index_code({ forceReindex: true })
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### Rate limit de OpenAI
|
|
365
|
+
|
|
366
|
+
El sistema maneja automáticamente rate limits con exponential backoff, pero si tienes proyectos muy grandes:
|
|
367
|
+
|
|
368
|
+
1. **Indexa en partes**: Indexa directorios individuales
|
|
369
|
+
2. **Aumenta límites**: Usa una API key con tier más alto
|
|
370
|
+
3. **Reduce batch size**: Ajusta en código (default: 100)
|
|
371
|
+
|
|
372
|
+
### Índice desactualizado
|
|
373
|
+
|
|
374
|
+
```
|
|
375
|
+
memorybank_get_stats({})
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
Si `pendingFiles` muestra archivos pendientes:
|
|
379
|
+
|
|
380
|
+
```
|
|
381
|
+
memorybank_index_code({ forceReindex: true })
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
## 🤝 Contribución
|
|
385
|
+
|
|
386
|
+
¡Contribuciones son bienvenidas!
|
|
387
|
+
|
|
388
|
+
1. Fork el proyecto
|
|
389
|
+
2. Crea tu feature branch (`git checkout -b feature/AmazingFeature`)
|
|
390
|
+
3. Commit cambios (`git commit -m 'Add some AmazingFeature'`)
|
|
391
|
+
4. Push al branch (`git push origin feature/AmazingFeature`)
|
|
392
|
+
5. Abre un Pull Request
|
|
393
|
+
|
|
394
|
+
## 📖 Documentación Adicional
|
|
395
|
+
|
|
396
|
+
- [AGENT_INSTRUCTIONS.md](AGENT_INSTRUCTIONS.md): Guía completa para agentes de IA
|
|
397
|
+
- [wiki/Developer-Guide.md](wiki/Developer-Guide.md): Guía para desarrolladores
|
|
398
|
+
- [wiki/API-Reference.md](wiki/API-Reference.md): Referencia completa de API
|
|
399
|
+
|
|
400
|
+
## 🎓 Inspiración
|
|
401
|
+
|
|
402
|
+
Este proyecto está inspirado en el sistema de Memory Bank de Cursor IDE, tal como se describe en:
|
|
403
|
+
|
|
404
|
+
- [Advanced Cursor: Use the Memory Bank](https://medium.com/codetodeploy/advanced-cursor-use-the-memory-bank-to-eliminate-hallucination-affd3fbeefa3)
|
|
405
|
+
- [How Cursor Indexes Codebases Fast](https://read.engineerscodex.com/p/how-cursor-indexes-codebases-fast)
|
|
406
|
+
- [Cursor Security](https://simonwillison.net/2025/May/11/cursor-security/)
|
|
407
|
+
|
|
408
|
+
## 📜 Licencia
|
|
409
|
+
|
|
410
|
+
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para detalles.
|
|
411
|
+
|
|
412
|
+
## 🆘 Soporte
|
|
413
|
+
|
|
414
|
+
- **Issues**: [GitHub Issues](https://github.com/grec0/memory-bank-mcp/issues)
|
|
415
|
+
- **Documentación**: [Wiki del Proyecto](https://github.com/grec0/memory-bank-mcp/wiki)
|
|
416
|
+
- **OpenAI API**: [Documentación Oficial](https://platform.openai.com/docs)
|
|
417
|
+
- **LanceDB**: [Documentación](https://lancedb.github.io/lancedb/)
|
|
418
|
+
|
|
419
|
+
## ⭐ Star History
|
|
420
|
+
|
|
421
|
+
Si este proyecto te resulta útil, ¡considera darle una estrella! ⭐
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
**Hecho con ❤️ para la comunidad de AI coding assistants**
|