@yoryoboy/bi-mcp 1.0.5 → 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 +140 -9
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +151 -1
- 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/meta.js +29 -0
- package/dist/src/config/meta.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/meta/meta-utils.js +148 -0
- package/dist/src/meta/meta-utils.js.map +7 -0
- package/dist/src/services/meta/meta-ads.js +89 -0
- package/dist/src/services/meta/meta-ads.js.map +7 -0
- package/dist/src/services/meta/meta-api.js +35 -0
- package/dist/src/services/meta/meta-api.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 +2 -0
- package/dist/src/tools/index.js.map +2 -2
- package/dist/src/tools/meta/account-overview.js +92 -0
- package/dist/src/tools/meta/account-overview.js.map +7 -0
- package/dist/src/tools/meta/ad-account-info.js +37 -0
- package/dist/src/tools/meta/ad-account-info.js.map +7 -0
- package/dist/src/tools/meta/ads-performance.js +79 -0
- package/dist/src/tools/meta/ads-performance.js.map +7 -0
- package/dist/src/tools/meta/campaign-performance.js +81 -0
- package/dist/src/tools/meta/campaign-performance.js.map +7 -0
- package/dist/src/tools/meta/index.js +9 -0
- package/dist/src/tools/meta/index.js.map +7 -0
- package/dist/src/tools/meta/list-accessible-ad-accounts.js +44 -0
- package/dist/src/tools/meta/list-accessible-ad-accounts.js.map +7 -0
- package/dist/src/tools/meta/list-accessible-businesses.js +36 -0
- package/dist/src/tools/meta/list-accessible-businesses.js.map +7 -0
- package/dist/src/tools/meta/placement-mix.js +67 -0
- package/dist/src/tools/meta/placement-mix.js.map +7 -0
- package/dist/src/tools/meta/time-series.js +69 -0
- package/dist/src/tools/meta/time-series.js.map +7 -0
- 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 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 y b
|
|
|
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.
|
|
@@ -37,6 +40,9 @@ El MCP ya tiene capacidades activas para estas áreas:
|
|
|
37
40
|
- `Google Ads`
|
|
38
41
|
Performance de cuenta, campañas, series temporales, riesgos, break-even y salud de escalabilidad.
|
|
39
42
|
|
|
43
|
+
- `Meta Ads`
|
|
44
|
+
Discovery de businesses y cuentas publicitarias, overview de cuenta, performance de campañas y ads, series temporales y mix de placements.
|
|
45
|
+
|
|
40
46
|
- `Config / Benchmarks AR`
|
|
41
47
|
Benchmarks argentinos de IIBB, cuotas, pasarelas, logística y calendario comercial.
|
|
42
48
|
|
|
@@ -52,14 +58,17 @@ Estado real del repo al día de hoy:
|
|
|
52
58
|
- `Analytics (GA4)`: implementado
|
|
53
59
|
- `Search Console`: implementado
|
|
54
60
|
- `Google Ads`: implementado
|
|
61
|
+
- `Meta Ads`: implementado
|
|
55
62
|
- `Benchmarks Argentina`: implementado
|
|
56
63
|
- `Finance`: pendiente
|
|
57
64
|
- `Diagnostics`: pendiente
|
|
58
65
|
|
|
59
66
|
En términos de superficie funcional actual:
|
|
60
67
|
|
|
68
|
+
- `2` tools de Config / Infra
|
|
61
69
|
- `10` tools de VTEX
|
|
62
70
|
- `11` tools de Google Ads
|
|
71
|
+
- `8` tools de Meta Ads
|
|
63
72
|
- `14` tools de Search Console
|
|
64
73
|
- `11` tools de GA4
|
|
65
74
|
- `1` tool/config de benchmarks
|
|
@@ -140,6 +149,7 @@ Dependiendo del módulo que quieras probar, el entorno puede requerir:
|
|
|
140
149
|
- credenciales de VTEX
|
|
141
150
|
- OAuth de Google para GA4 y Search Console
|
|
142
151
|
- credenciales de Google Ads
|
|
152
|
+
- credenciales de Meta Marketing API
|
|
143
153
|
|
|
144
154
|
## Configuración
|
|
145
155
|
|
|
@@ -147,18 +157,29 @@ La configuración de infraestructura se lee desde `.env`.
|
|
|
147
157
|
|
|
148
158
|
Variables relevantes hoy:
|
|
149
159
|
|
|
150
|
-
- `VTEX_ACCOUNT_NAME`
|
|
151
|
-
- `VTEX_API_KEY`
|
|
152
|
-
- `VTEX_API_TOKEN`
|
|
153
160
|
- `GOOGLE_OAUTH_CLIENT_ID`
|
|
154
161
|
- `GOOGLE_OAUTH_CLIENT_SECRET`
|
|
155
162
|
- `GOOGLE_OAUTH_REFRESH_TOKEN`
|
|
156
163
|
- `GA4_PROPERTY_ID`
|
|
157
164
|
- `GOOGLE_ADS_DEVELOPER_TOKEN`
|
|
158
165
|
- `GOOGLE_ADS_LOGIN_CUSTOMER_ID`
|
|
166
|
+
- `META_APP_ID`
|
|
167
|
+
- `META_APP_SECRET`
|
|
168
|
+
- `META_ACCESS_TOKEN`
|
|
169
|
+
- `META_API_VERSION`
|
|
159
170
|
- `MCP_TRANSPORT`
|
|
160
171
|
- `PORT`
|
|
161
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
|
|
162
183
|
|
|
163
184
|
Reglas importantes:
|
|
164
185
|
|
|
@@ -185,6 +206,20 @@ Desarrollo:
|
|
|
185
206
|
pnpm run dev
|
|
186
207
|
```
|
|
187
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
|
+
|
|
188
223
|
Build:
|
|
189
224
|
|
|
190
225
|
```bash
|
|
@@ -213,15 +248,18 @@ Uso vía `npx` después de publicar el paquete:
|
|
|
213
248
|
"args": ["-y", "@yoryoboy/bi-mcp"],
|
|
214
249
|
"env": {
|
|
215
250
|
"MCP_TRANSPORT": "stdio",
|
|
216
|
-
"VTEX_ACCOUNT_NAME": "your_vtex_account_name",
|
|
217
|
-
"VTEX_API_KEY": "your_vtex_api_key",
|
|
218
|
-
"VTEX_API_TOKEN": "your_vtex_api_token",
|
|
219
251
|
"GOOGLE_OAUTH_CLIENT_ID": "your_google_oauth_client_id",
|
|
220
252
|
"GOOGLE_OAUTH_CLIENT_SECRET": "your_google_oauth_client_secret",
|
|
221
253
|
"GOOGLE_OAUTH_REFRESH_TOKEN": "your_google_oauth_refresh_token",
|
|
222
254
|
"GA4_PROPERTY_ID": "your_ga4_property_id",
|
|
223
255
|
"GOOGLE_ADS_DEVELOPER_TOKEN": "your_google_ads_developer_token",
|
|
224
|
-
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your_google_ads_login_customer_id"
|
|
256
|
+
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your_google_ads_login_customer_id",
|
|
257
|
+
"META_APP_ID": "your_meta_app_id",
|
|
258
|
+
"META_APP_SECRET": "your_meta_app_secret",
|
|
259
|
+
"META_ACCESS_TOKEN": "your_meta_access_token",
|
|
260
|
+
"META_API_VERSION": "v25.0",
|
|
261
|
+
"DATABASE_URL": "your_postgres_connection_string",
|
|
262
|
+
"DB_ENCRYPTION_KEY": "your_64_hex_char_encryption_key"
|
|
225
263
|
}
|
|
226
264
|
}
|
|
227
265
|
}
|
|
@@ -231,6 +269,7 @@ Uso vía `npx` después de publicar el paquete:
|
|
|
231
269
|
Puntos importantes para ese modo:
|
|
232
270
|
|
|
233
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`
|
|
234
273
|
|
|
235
274
|
Flujo típico de publicación:
|
|
236
275
|
|
|
@@ -245,6 +284,91 @@ En desarrollo, `mcp-use` expone el inspector para probar el servidor localmente.
|
|
|
245
284
|
http://localhost:3000/inspector
|
|
246
285
|
```
|
|
247
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
|
+
|
|
248
372
|
## Estructura del repositorio
|
|
249
373
|
|
|
250
374
|
Resumen de las rutas más importantes:
|
|
@@ -253,9 +377,12 @@ Resumen de las rutas más importantes:
|
|
|
253
377
|
bi-mcp/
|
|
254
378
|
├── AGENTS.md
|
|
255
379
|
├── README.md
|
|
380
|
+
├── db/
|
|
256
381
|
├── docs/
|
|
257
382
|
├── index.ts
|
|
383
|
+
├── scripts/
|
|
258
384
|
├── src/
|
|
385
|
+
│ ├── db/
|
|
259
386
|
│ ├── config/
|
|
260
387
|
│ ├── services/
|
|
261
388
|
│ │ ├── analytics/
|
|
@@ -263,6 +390,7 @@ bi-mcp/
|
|
|
263
390
|
│ │ ├── search-console/
|
|
264
391
|
│ │ └── vtex/
|
|
265
392
|
│ ├── tools/
|
|
393
|
+
│ │ ├── config/
|
|
266
394
|
│ │ ├── analytics/
|
|
267
395
|
│ │ ├── google-ads/
|
|
268
396
|
│ │ ├── search-console/
|
|
@@ -284,6 +412,9 @@ Puntos de entrada y referencia:
|
|
|
284
412
|
- [src/config/benchmarks.ts](/home/yoryo/apps/bi-mcp/src/config/benchmarks.ts)
|
|
285
413
|
Benchmarks argentinos expuestos por el servidor.
|
|
286
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
|
+
|
|
287
418
|
## Flujo de trabajo para desarrollo
|
|
288
419
|
|
|
289
420
|
Si vas a tocar código en este repo, la referencia obligatoria es [AGENTS.md](/home/yoryo/apps/bi-mcp/AGENTS.md).
|