@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.
- package/README.md +126 -9
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +30 -0
- package/dist/index.js.map +2 -2
- package/dist/mcp-use.json +2 -2
- package/dist/scripts/_helpers.js +44 -0
- package/dist/scripts/_helpers.js.map +7 -0
- package/dist/scripts/admin-profile-delete.js +72 -0
- package/dist/scripts/admin-profile-delete.js.map +7 -0
- package/dist/scripts/admin-profile-list.js +24 -0
- package/dist/scripts/admin-profile-list.js.map +7 -0
- package/dist/scripts/admin-profile-upsert.js +25 -0
- package/dist/scripts/admin-profile-upsert.js.map +7 -0
- package/dist/scripts/admin-vtex-list.js +28 -0
- package/dist/scripts/admin-vtex-list.js.map +7 -0
- package/dist/scripts/admin-vtex-upsert.js +73 -0
- package/dist/scripts/admin-vtex-upsert.js.map +7 -0
- package/dist/scripts/admin-vtex-validate.js +55 -0
- package/dist/scripts/admin-vtex-validate.js.map +7 -0
- package/dist/scripts/run-migrations.js +50 -0
- package/dist/scripts/run-migrations.js.map +7 -0
- package/dist/scripts/test-db-connection.js +19 -0
- package/dist/scripts/test-db-connection.js.map +7 -0
- package/dist/src/config/profile-store.js +86 -0
- package/dist/src/config/profile-store.js.map +7 -0
- package/dist/src/config/vtex-crypto.js +43 -0
- package/dist/src/config/vtex-crypto.js.map +7 -0
- package/dist/src/config/vtex-profile-store.js +132 -0
- package/dist/src/config/vtex-profile-store.js.map +7 -0
- package/dist/src/config/vtex.js +27 -21
- package/dist/src/config/vtex.js.map +2 -2
- package/dist/src/db/client.js +58 -0
- package/dist/src/db/client.js.map +7 -0
- package/dist/src/services/vtex/vtex-api.js +24 -8
- package/dist/src/services/vtex/vtex-api.js.map +2 -2
- package/dist/src/services/vtex/vtex-catalog.js +5 -3
- package/dist/src/services/vtex/vtex-catalog.js.map +2 -2
- package/dist/src/services/vtex/vtex-logistics.js +18 -9
- package/dist/src/services/vtex/vtex-logistics.js.map +2 -2
- package/dist/src/services/vtex/vtex-orders.js +13 -7
- package/dist/src/services/vtex/vtex-orders.js.map +2 -2
- package/dist/src/services/vtex/vtex-pricing.js +5 -3
- package/dist/src/services/vtex/vtex-pricing.js.map +2 -2
- package/dist/src/tools/config/check-database-connection.js +59 -0
- package/dist/src/tools/config/check-database-connection.js.map +7 -0
- package/dist/src/tools/config/index.js +3 -0
- package/dist/src/tools/config/index.js.map +7 -0
- package/dist/src/tools/config/list-profiles.js +26 -0
- package/dist/src/tools/config/list-profiles.js.map +7 -0
- package/dist/src/tools/index.js +1 -0
- package/dist/src/tools/index.js.map +2 -2
- package/dist/src/tools/vtex/computed-price.js +12 -1
- package/dist/src/tools/vtex/computed-price.js.map +2 -2
- package/dist/src/tools/vtex/index.js +1 -0
- package/dist/src/tools/vtex/index.js.map +2 -2
- package/dist/src/tools/vtex/inventory-check.js +15 -2
- package/dist/src/tools/vtex/inventory-check.js.map +2 -2
- package/dist/src/tools/vtex/order-details.js +16 -2
- package/dist/src/tools/vtex/order-details.js.map +2 -2
- package/dist/src/tools/vtex/orders-summary.js +11 -1
- package/dist/src/tools/vtex/orders-summary.js.map +2 -2
- package/dist/src/tools/vtex/product-offers.js +15 -2
- package/dist/src/tools/vtex/product-offers.js.map +2 -2
- package/dist/src/tools/vtex/profile-resolution.js +57 -0
- package/dist/src/tools/vtex/profile-resolution.js.map +7 -0
- package/dist/src/tools/vtex/sku-offers.js +16 -2
- package/dist/src/tools/vtex/sku-offers.js.map +2 -2
- package/dist/src/tools/vtex/sku-price.js +12 -2
- package/dist/src/tools/vtex/sku-price.js.map +2 -2
- package/dist/src/tools/vtex/update-inventory.js +12 -1
- package/dist/src/tools/vtex/update-inventory.js.map +2 -2
- package/dist/src/tools/vtex/update-lead-time.js +12 -1
- package/dist/src/tools/vtex/update-lead-time.js.map +2 -2
- package/dist/src/tools/vtex/warehouse-inventory.js +12 -1
- package/dist/src/tools/vtex/warehouse-inventory.js.map +2 -2
- 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).
|