@yoryoboy/bi-mcp 1.1.0 → 1.2.0

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.
Files changed (76) hide show
  1. package/README.md +126 -9
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.js +30 -0
  4. package/dist/index.js.map +2 -2
  5. package/dist/mcp-use.json +2 -2
  6. package/dist/scripts/_helpers.js +44 -0
  7. package/dist/scripts/_helpers.js.map +7 -0
  8. package/dist/scripts/admin-profile-delete.js +72 -0
  9. package/dist/scripts/admin-profile-delete.js.map +7 -0
  10. package/dist/scripts/admin-profile-list.js +24 -0
  11. package/dist/scripts/admin-profile-list.js.map +7 -0
  12. package/dist/scripts/admin-profile-upsert.js +25 -0
  13. package/dist/scripts/admin-profile-upsert.js.map +7 -0
  14. package/dist/scripts/admin-vtex-list.js +28 -0
  15. package/dist/scripts/admin-vtex-list.js.map +7 -0
  16. package/dist/scripts/admin-vtex-upsert.js +73 -0
  17. package/dist/scripts/admin-vtex-upsert.js.map +7 -0
  18. package/dist/scripts/admin-vtex-validate.js +55 -0
  19. package/dist/scripts/admin-vtex-validate.js.map +7 -0
  20. package/dist/scripts/run-migrations.js +50 -0
  21. package/dist/scripts/run-migrations.js.map +7 -0
  22. package/dist/scripts/test-db-connection.js +19 -0
  23. package/dist/scripts/test-db-connection.js.map +7 -0
  24. package/dist/src/config/profile-store.js +86 -0
  25. package/dist/src/config/profile-store.js.map +7 -0
  26. package/dist/src/config/vtex-crypto.js +43 -0
  27. package/dist/src/config/vtex-crypto.js.map +7 -0
  28. package/dist/src/config/vtex-profile-store.js +132 -0
  29. package/dist/src/config/vtex-profile-store.js.map +7 -0
  30. package/dist/src/config/vtex.js +27 -21
  31. package/dist/src/config/vtex.js.map +2 -2
  32. package/dist/src/db/client.js +58 -0
  33. package/dist/src/db/client.js.map +7 -0
  34. package/dist/src/services/vtex/vtex-api.js +24 -8
  35. package/dist/src/services/vtex/vtex-api.js.map +2 -2
  36. package/dist/src/services/vtex/vtex-catalog.js +5 -3
  37. package/dist/src/services/vtex/vtex-catalog.js.map +2 -2
  38. package/dist/src/services/vtex/vtex-logistics.js +18 -9
  39. package/dist/src/services/vtex/vtex-logistics.js.map +2 -2
  40. package/dist/src/services/vtex/vtex-orders.js +13 -7
  41. package/dist/src/services/vtex/vtex-orders.js.map +2 -2
  42. package/dist/src/services/vtex/vtex-pricing.js +5 -3
  43. package/dist/src/services/vtex/vtex-pricing.js.map +2 -2
  44. package/dist/src/tools/config/check-database-connection.js +59 -0
  45. package/dist/src/tools/config/check-database-connection.js.map +7 -0
  46. package/dist/src/tools/config/index.js +3 -0
  47. package/dist/src/tools/config/index.js.map +7 -0
  48. package/dist/src/tools/config/list-profiles.js +26 -0
  49. package/dist/src/tools/config/list-profiles.js.map +7 -0
  50. package/dist/src/tools/index.js +1 -0
  51. package/dist/src/tools/index.js.map +2 -2
  52. package/dist/src/tools/vtex/computed-price.js +12 -1
  53. package/dist/src/tools/vtex/computed-price.js.map +2 -2
  54. package/dist/src/tools/vtex/index.js +1 -0
  55. package/dist/src/tools/vtex/index.js.map +2 -2
  56. package/dist/src/tools/vtex/inventory-check.js +15 -2
  57. package/dist/src/tools/vtex/inventory-check.js.map +2 -2
  58. package/dist/src/tools/vtex/order-details.js +16 -2
  59. package/dist/src/tools/vtex/order-details.js.map +2 -2
  60. package/dist/src/tools/vtex/orders-summary.js +11 -1
  61. package/dist/src/tools/vtex/orders-summary.js.map +2 -2
  62. package/dist/src/tools/vtex/product-offers.js +15 -2
  63. package/dist/src/tools/vtex/product-offers.js.map +2 -2
  64. package/dist/src/tools/vtex/profile-resolution.js +57 -0
  65. package/dist/src/tools/vtex/profile-resolution.js.map +7 -0
  66. package/dist/src/tools/vtex/sku-offers.js +16 -2
  67. package/dist/src/tools/vtex/sku-offers.js.map +2 -2
  68. package/dist/src/tools/vtex/sku-price.js +12 -2
  69. package/dist/src/tools/vtex/sku-price.js.map +2 -2
  70. package/dist/src/tools/vtex/update-inventory.js +12 -1
  71. package/dist/src/tools/vtex/update-inventory.js.map +2 -2
  72. package/dist/src/tools/vtex/update-lead-time.js +12 -1
  73. package/dist/src/tools/vtex/update-lead-time.js.map +2 -2
  74. package/dist/src/tools/vtex/warehouse-inventory.js +12 -1
  75. package/dist/src/tools/vtex/warehouse-inventory.js.map +2 -2
  76. package/package.json +12 -2
package/README.md CHANGED
@@ -4,7 +4,7 @@ MCP monolítico de business intelligence para ecommerce en Argentina, construido
4
4
 
5
5
  Proyecto está pensado para que usuarios puedan consultar datos reales de operación, marketing y adquisición desde un LLM, usando lenguaje natural, y recibir respuestas útiles para análisis, diagnóstico y toma de decisiones.
6
6
 
7
- Hoy el servidor integra VTEX, Google Analytics 4, Search Console, Google Ads, Meta Ads y benchmarks de referencia para Argentina. La arquitectura ya está preparada para crecer hacia módulos de finanzas.
7
+ Hoy el servidor integra Config / Infra, VTEX, Google Analytics 4, Search Console, Google Ads, Meta Ads y benchmarks de referencia para Argentina. La arquitectura ya está preparada para crecer hacia módulos de finanzas.
8
8
 
9
9
  ## Índice
10
10
 
@@ -25,8 +25,11 @@ Hoy el servidor integra VTEX, Google Analytics 4, Search Console, Google Ads, Me
25
25
 
26
26
  El MCP ya tiene capacidades activas para estas áreas:
27
27
 
28
+ - `Config / Infra`
29
+ Verificación de salud de la base del MCP y listado de perfiles disponibles.
30
+
28
31
  - `VTEX`
29
- Operación comercial, pedidos, stock, inventario por depósito, precios y ofertas.
32
+ Operación comercial, pedidos, stock, inventario por depósito, precios y ofertas, exigiendo selección explícita del `profileId` correcto.
30
33
 
31
34
  - `Analytics (GA4)`
32
35
  Tráfico, revenue medido en GA4, mix de canales, engagement y salud de medición.
@@ -62,6 +65,7 @@ Estado real del repo al día de hoy:
62
65
 
63
66
  En términos de superficie funcional actual:
64
67
 
68
+ - `2` tools de Config / Infra
65
69
  - `10` tools de VTEX
66
70
  - `11` tools de Google Ads
67
71
  - `8` tools de Meta Ads
@@ -153,9 +157,6 @@ La configuración de infraestructura se lee desde `.env`.
153
157
 
154
158
  Variables relevantes hoy:
155
159
 
156
- - `VTEX_ACCOUNT_NAME`
157
- - `VTEX_API_KEY`
158
- - `VTEX_API_TOKEN`
159
160
  - `GOOGLE_OAUTH_CLIENT_ID`
160
161
  - `GOOGLE_OAUTH_CLIENT_SECRET`
161
162
  - `GOOGLE_OAUTH_REFRESH_TOKEN`
@@ -169,6 +170,16 @@ Variables relevantes hoy:
169
170
  - `MCP_TRANSPORT`
170
171
  - `PORT`
171
172
  - `MCP_URL`
173
+ - `DATABASE_URL`
174
+ - `DB_ENCRYPTION_KEY`
175
+
176
+ Importante:
177
+
178
+ - las credenciales VTEX por cliente ya no deben vivir en `.env`
179
+ - `.env` ahora guarda solo infraestructura, secretos globales del servidor y la key de cifrado para persistencia VTEX
180
+ - las credenciales VTEX por perfil se cargan por scripts administrativos hacia Postgres
181
+ - las tools VTEX no usan fallback silencioso a `default`
182
+ - si falta `profileId` o es inválido, responden con una selección guiada de perfiles activos
172
183
 
173
184
  Reglas importantes:
174
185
 
@@ -195,6 +206,20 @@ Desarrollo:
195
206
  pnpm run dev
196
207
  ```
197
208
 
209
+ Base local y migraciones:
210
+
211
+ ```bash
212
+ docker compose up -d
213
+ pnpm run db:test
214
+ pnpm run db:migrate
215
+ ```
216
+
217
+ Hard delete administrativo de perfil:
218
+
219
+ ```bash
220
+ pnpm run admin:profile-delete -- --profile-id <id> --confirm-delete <id>
221
+ ```
222
+
198
223
  Build:
199
224
 
200
225
  ```bash
@@ -223,9 +248,6 @@ Uso vía `npx` después de publicar el paquete:
223
248
  "args": ["-y", "@yoryoboy/bi-mcp"],
224
249
  "env": {
225
250
  "MCP_TRANSPORT": "stdio",
226
- "VTEX_ACCOUNT_NAME": "your_vtex_account_name",
227
- "VTEX_API_KEY": "your_vtex_api_key",
228
- "VTEX_API_TOKEN": "your_vtex_api_token",
229
251
  "GOOGLE_OAUTH_CLIENT_ID": "your_google_oauth_client_id",
230
252
  "GOOGLE_OAUTH_CLIENT_SECRET": "your_google_oauth_client_secret",
231
253
  "GOOGLE_OAUTH_REFRESH_TOKEN": "your_google_oauth_refresh_token",
@@ -235,7 +257,9 @@ Uso vía `npx` después de publicar el paquete:
235
257
  "META_APP_ID": "your_meta_app_id",
236
258
  "META_APP_SECRET": "your_meta_app_secret",
237
259
  "META_ACCESS_TOKEN": "your_meta_access_token",
238
- "META_API_VERSION": "v25.0"
260
+ "META_API_VERSION": "v25.0",
261
+ "DATABASE_URL": "your_postgres_connection_string",
262
+ "DB_ENCRYPTION_KEY": "your_64_hex_char_encryption_key"
239
263
  }
240
264
  }
241
265
  }
@@ -245,6 +269,7 @@ Uso vía `npx` después de publicar el paquete:
245
269
  Puntos importantes para ese modo:
246
270
 
247
271
  - en configuración por `command`, el transporte correcto es `stdio`, por eso hay que pasar `MCP_TRANSPORT=stdio`
272
+ - si el servidor va a usar persistencia de secretos en DB, además necesita `DATABASE_URL` y `DB_ENCRYPTION_KEY`
248
273
 
249
274
  Flujo típico de publicación:
250
275
 
@@ -259,6 +284,91 @@ En desarrollo, `mcp-use` expone el inspector para probar el servidor localmente.
259
284
  http://localhost:3000/inspector
260
285
  ```
261
286
 
287
+ ## Scripts operativos de base y perfiles
288
+
289
+ Estos scripts viven en `scripts/` y usan Postgres como store de perfiles e integraciones VTEX.
290
+
291
+ ### `test-db-connection.ts`
292
+
293
+ - propósito: probar que `DATABASE_URL` responde
294
+ - muta datos: no
295
+ - requiere Postgres levantado: sí
296
+ - comando:
297
+
298
+ ```bash
299
+ pnpm run db:test
300
+ ```
301
+
302
+ ### `run-migrations.ts`
303
+
304
+ - propósito: aplicar migraciones SQL pendientes desde `db/migrations/`
305
+ - muta datos: sí, cambia estructura de DB
306
+ - requiere Postgres levantado: sí
307
+ - comando:
308
+
309
+ ```bash
310
+ pnpm run db:migrate
311
+ ```
312
+
313
+ ### `admin-profile-upsert.ts`
314
+
315
+ - propósito: crear o actualizar un perfil
316
+ - muta datos: sí
317
+ - requiere Postgres levantado: sí
318
+ - comando:
319
+
320
+ ```bash
321
+ pnpm run admin:profile-upsert -- --profile-id default --name "Default"
322
+ ```
323
+
324
+ ### `admin-profile-list.ts`
325
+
326
+ - propósito: listar perfiles cargados
327
+ - muta datos: no
328
+ - requiere Postgres levantado: sí
329
+ - comando:
330
+
331
+ ```bash
332
+ pnpm run admin:profile-list
333
+ ```
334
+
335
+ ### `admin-vtex-upsert.ts`
336
+
337
+ - propósito: crear o actualizar la conexión VTEX de un perfil y validarla
338
+ - muta datos: sí
339
+ - requiere Postgres levantado: sí
340
+ - comando:
341
+
342
+ ```bash
343
+ pnpm run admin:vtex-upsert -- \
344
+ --profile-id default \
345
+ --account-name miaccount \
346
+ --api-key xxx \
347
+ --api-token yyy
348
+ ```
349
+
350
+ ### `admin-vtex-validate.ts`
351
+
352
+ - propósito: revalidar una conexión VTEX ya guardada
353
+ - muta datos: sí, actualiza estado y timestamps
354
+ - requiere Postgres levantado: sí
355
+ - comando:
356
+
357
+ ```bash
358
+ pnpm run admin:vtex-validate -- --profile-id default
359
+ ```
360
+
361
+ ### `admin-vtex-list.ts`
362
+
363
+ - propósito: listar conexiones VTEX registradas
364
+ - muta datos: no
365
+ - requiere Postgres levantado: sí
366
+ - comando:
367
+
368
+ ```bash
369
+ pnpm run admin:vtex-list
370
+ ```
371
+
262
372
  ## Estructura del repositorio
263
373
 
264
374
  Resumen de las rutas más importantes:
@@ -267,9 +377,12 @@ Resumen de las rutas más importantes:
267
377
  bi-mcp/
268
378
  ├── AGENTS.md
269
379
  ├── README.md
380
+ ├── db/
270
381
  ├── docs/
271
382
  ├── index.ts
383
+ ├── scripts/
272
384
  ├── src/
385
+ │ ├── db/
273
386
  │ ├── config/
274
387
  │ ├── services/
275
388
  │ │ ├── analytics/
@@ -277,6 +390,7 @@ bi-mcp/
277
390
  │ │ ├── search-console/
278
391
  │ │ └── vtex/
279
392
  │ ├── tools/
393
+ │ │ ├── config/
280
394
  │ │ ├── analytics/
281
395
  │ │ ├── google-ads/
282
396
  │ │ ├── search-console/
@@ -298,6 +412,9 @@ Puntos de entrada y referencia:
298
412
  - [src/config/benchmarks.ts](/home/yoryo/apps/bi-mcp/src/config/benchmarks.ts)
299
413
  Benchmarks argentinos expuestos por el servidor.
300
414
 
415
+ - [db/AGENTS.md](/home/yoryo/apps/bi-mcp/db/AGENTS.md)
416
+ Reglas de la capa de persistencia y de las migraciones SQL.
417
+
301
418
  ## Flujo de trabajo para desarrollo
302
419
 
303
420
  Si vas a tocar código en este repo, la referencia obligatoria es [AGENTS.md](/home/yoryo/apps/bi-mcp/AGENTS.md).