@yoryoboy/bi-mcp 1.0.1

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 (165) hide show
  1. package/README.md +346 -0
  2. package/bin/bi-mcp.js +2 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/index.js +768 -0
  5. package/dist/index.js.map +7 -0
  6. package/dist/mcp-use.json +7 -0
  7. package/dist/public/favicon.ico +0 -0
  8. package/dist/public/icon.svg +6 -0
  9. package/dist/src/analytics/ga4-channel-groups.js +20 -0
  10. package/dist/src/analytics/ga4-channel-groups.js.map +7 -0
  11. package/dist/src/analytics/ga4-report-utils.js +117 -0
  12. package/dist/src/analytics/ga4-report-utils.js.map +7 -0
  13. package/dist/src/config/benchmarks.js +128 -0
  14. package/dist/src/config/benchmarks.js.map +7 -0
  15. package/dist/src/config/google.js +41 -0
  16. package/dist/src/config/google.js.map +7 -0
  17. package/dist/src/config/vtex.js +26 -0
  18. package/dist/src/config/vtex.js.map +7 -0
  19. package/dist/src/google-ads/report-utils.js +78 -0
  20. package/dist/src/google-ads/report-utils.js.map +7 -0
  21. package/dist/src/prompts/reporte-ventas.js +75 -0
  22. package/dist/src/prompts/reporte-ventas.js.map +7 -0
  23. package/dist/src/search-console/search-console-utils.js +275 -0
  24. package/dist/src/search-console/search-console-utils.js.map +7 -0
  25. package/dist/src/services/analytics/ga4-client.js +69 -0
  26. package/dist/src/services/analytics/ga4-client.js.map +7 -0
  27. package/dist/src/services/analytics/oauth.js +30 -0
  28. package/dist/src/services/analytics/oauth.js.map +7 -0
  29. package/dist/src/services/google-ads/google-ads-client.js +54 -0
  30. package/dist/src/services/google-ads/google-ads-client.js.map +7 -0
  31. package/dist/src/services/search-console/search-console-client.js +45 -0
  32. package/dist/src/services/search-console/search-console-client.js.map +7 -0
  33. package/dist/src/services/vtex/vtex-api.js +51 -0
  34. package/dist/src/services/vtex/vtex-api.js.map +7 -0
  35. package/dist/src/services/vtex/vtex-catalog.js +18 -0
  36. package/dist/src/services/vtex/vtex-catalog.js.map +7 -0
  37. package/dist/src/services/vtex/vtex-logistics.js +151 -0
  38. package/dist/src/services/vtex/vtex-logistics.js.map +7 -0
  39. package/dist/src/services/vtex/vtex-orders.js +143 -0
  40. package/dist/src/services/vtex/vtex-orders.js.map +7 -0
  41. package/dist/src/services/vtex/vtex-pricing.js +17 -0
  42. package/dist/src/services/vtex/vtex-pricing.js.map +7 -0
  43. package/dist/src/tools/analytics/attribution-gaps.js +109 -0
  44. package/dist/src/tools/analytics/attribution-gaps.js.map +7 -0
  45. package/dist/src/tools/analytics/channel-mix.js +74 -0
  46. package/dist/src/tools/analytics/channel-mix.js.map +7 -0
  47. package/dist/src/tools/analytics/ecommerce-tracking-health.js +89 -0
  48. package/dist/src/tools/analytics/ecommerce-tracking-health.js.map +7 -0
  49. package/dist/src/tools/analytics/engagement-overview.js +71 -0
  50. package/dist/src/tools/analytics/engagement-overview.js.map +7 -0
  51. package/dist/src/tools/analytics/index.js +12 -0
  52. package/dist/src/tools/analytics/index.js.map +7 -0
  53. package/dist/src/tools/analytics/list-accessible-properties.js +46 -0
  54. package/dist/src/tools/analytics/list-accessible-properties.js.map +7 -0
  55. package/dist/src/tools/analytics/property-info.js +54 -0
  56. package/dist/src/tools/analytics/property-info.js.map +7 -0
  57. package/dist/src/tools/analytics/revenue-by-channel.js +70 -0
  58. package/dist/src/tools/analytics/revenue-by-channel.js.map +7 -0
  59. package/dist/src/tools/analytics/revenue-overview.js +77 -0
  60. package/dist/src/tools/analytics/revenue-overview.js.map +7 -0
  61. package/dist/src/tools/analytics/revenue-trend.js +69 -0
  62. package/dist/src/tools/analytics/revenue-trend.js.map +7 -0
  63. package/dist/src/tools/analytics/source-medium-breakdown.js +86 -0
  64. package/dist/src/tools/analytics/source-medium-breakdown.js.map +7 -0
  65. package/dist/src/tools/analytics/top-landing-pages.js +79 -0
  66. package/dist/src/tools/analytics/top-landing-pages.js.map +7 -0
  67. package/dist/src/tools/google-ads/account-overview.js +103 -0
  68. package/dist/src/tools/google-ads/account-overview.js.map +7 -0
  69. package/dist/src/tools/google-ads/account-risks.js +267 -0
  70. package/dist/src/tools/google-ads/account-risks.js.map +7 -0
  71. package/dist/src/tools/google-ads/break-even-analysis.js +107 -0
  72. package/dist/src/tools/google-ads/break-even-analysis.js.map +7 -0
  73. package/dist/src/tools/google-ads/campaign-performance.js +157 -0
  74. package/dist/src/tools/google-ads/campaign-performance.js.map +7 -0
  75. package/dist/src/tools/google-ads/channel-mix.js +129 -0
  76. package/dist/src/tools/google-ads/channel-mix.js.map +7 -0
  77. package/dist/src/tools/google-ads/compare-accounts.js +122 -0
  78. package/dist/src/tools/google-ads/compare-accounts.js.map +7 -0
  79. package/dist/src/tools/google-ads/customer-clients.js +77 -0
  80. package/dist/src/tools/google-ads/customer-clients.js.map +7 -0
  81. package/dist/src/tools/google-ads/customer-info.js +64 -0
  82. package/dist/src/tools/google-ads/customer-info.js.map +7 -0
  83. package/dist/src/tools/google-ads/index.js +12 -0
  84. package/dist/src/tools/google-ads/index.js.map +7 -0
  85. package/dist/src/tools/google-ads/scaling-health.js +174 -0
  86. package/dist/src/tools/google-ads/scaling-health.js.map +7 -0
  87. package/dist/src/tools/google-ads/search-terms-summary.js +131 -0
  88. package/dist/src/tools/google-ads/search-terms-summary.js.map +7 -0
  89. package/dist/src/tools/google-ads/time-series.js +126 -0
  90. package/dist/src/tools/google-ads/time-series.js.map +7 -0
  91. package/dist/src/tools/index.js +5 -0
  92. package/dist/src/tools/index.js.map +7 -0
  93. package/dist/src/tools/search-console/country-breakdown.js +85 -0
  94. package/dist/src/tools/search-console/country-breakdown.js.map +7 -0
  95. package/dist/src/tools/search-console/device-breakdown.js +85 -0
  96. package/dist/src/tools/search-console/device-breakdown.js.map +7 -0
  97. package/dist/src/tools/search-console/high-impression-low-click-queries.js +95 -0
  98. package/dist/src/tools/search-console/high-impression-low-click-queries.js.map +7 -0
  99. package/dist/src/tools/search-console/index.js +15 -0
  100. package/dist/src/tools/search-console/index.js.map +7 -0
  101. package/dist/src/tools/search-console/list-accessible-sites.js +42 -0
  102. package/dist/src/tools/search-console/list-accessible-sites.js.map +7 -0
  103. package/dist/src/tools/search-console/low-ctr-opportunities.js +98 -0
  104. package/dist/src/tools/search-console/low-ctr-opportunities.js.map +7 -0
  105. package/dist/src/tools/search-console/page-performance.js +104 -0
  106. package/dist/src/tools/search-console/page-performance.js.map +7 -0
  107. package/dist/src/tools/search-console/product-demand-low-capture-queries.js +93 -0
  108. package/dist/src/tools/search-console/product-demand-low-capture-queries.js.map +7 -0
  109. package/dist/src/tools/search-console/query-page-matrix.js +99 -0
  110. package/dist/src/tools/search-console/query-page-matrix.js.map +7 -0
  111. package/dist/src/tools/search-console/query-performance.js +109 -0
  112. package/dist/src/tools/search-console/query-performance.js.map +7 -0
  113. package/dist/src/tools/search-console/quick-win-opportunities.js +93 -0
  114. package/dist/src/tools/search-console/quick-win-opportunities.js.map +7 -0
  115. package/dist/src/tools/search-console/rising-non-brand-queries.js +121 -0
  116. package/dist/src/tools/search-console/rising-non-brand-queries.js.map +7 -0
  117. package/dist/src/tools/search-console/search-performance.js +89 -0
  118. package/dist/src/tools/search-console/search-performance.js.map +7 -0
  119. package/dist/src/tools/search-console/site-context.js +43 -0
  120. package/dist/src/tools/search-console/site-context.js.map +7 -0
  121. package/dist/src/tools/search-console/visibility-declines.js +146 -0
  122. package/dist/src/tools/search-console/visibility-declines.js.map +7 -0
  123. package/dist/src/tools/vtex/computed-price.js +48 -0
  124. package/dist/src/tools/vtex/computed-price.js.map +7 -0
  125. package/dist/src/tools/vtex/index.js +11 -0
  126. package/dist/src/tools/vtex/index.js.map +7 -0
  127. package/dist/src/tools/vtex/inventory-check.js +148 -0
  128. package/dist/src/tools/vtex/inventory-check.js.map +7 -0
  129. package/dist/src/tools/vtex/order-details.js +56 -0
  130. package/dist/src/tools/vtex/order-details.js.map +7 -0
  131. package/dist/src/tools/vtex/orders-summary.js +83 -0
  132. package/dist/src/tools/vtex/orders-summary.js.map +7 -0
  133. package/dist/src/tools/vtex/product-offers.js +28 -0
  134. package/dist/src/tools/vtex/product-offers.js.map +7 -0
  135. package/dist/src/tools/vtex/sku-offers.js +30 -0
  136. package/dist/src/tools/vtex/sku-offers.js.map +7 -0
  137. package/dist/src/tools/vtex/sku-price.js +42 -0
  138. package/dist/src/tools/vtex/sku-price.js.map +7 -0
  139. package/dist/src/tools/vtex/update-inventory.js +43 -0
  140. package/dist/src/tools/vtex/update-inventory.js.map +7 -0
  141. package/dist/src/tools/vtex/update-lead-time.js +32 -0
  142. package/dist/src/tools/vtex/update-lead-time.js.map +7 -0
  143. package/dist/src/tools/vtex/warehouse-inventory.js +42 -0
  144. package/dist/src/tools/vtex/warehouse-inventory.js.map +7 -0
  145. package/dist/src/utils/case-conversion.js +21 -0
  146. package/dist/src/utils/case-conversion.js.map +7 -0
  147. package/dist/src/utils/currency.js +52 -0
  148. package/dist/src/utils/currency.js.map +7 -0
  149. package/dist/src/utils/format-order-details.js +137 -0
  150. package/dist/src/utils/format-order-details.js.map +7 -0
  151. package/dist/src/utils/google-ads.js +78 -0
  152. package/dist/src/utils/google-ads.js.map +7 -0
  153. package/dist/src/utils/money.js +83 -0
  154. package/dist/src/utils/money.js.map +7 -0
  155. package/dist/src/utils/order-status.js +11 -0
  156. package/dist/src/utils/order-status.js.map +7 -0
  157. package/dist/src/utils/pagination.js +45 -0
  158. package/dist/src/utils/pagination.js.map +7 -0
  159. package/dist/src/utils/strip-payload.js +40 -0
  160. package/dist/src/utils/strip-payload.js.map +7 -0
  161. package/dist/src/utils/type-guards.js +7 -0
  162. package/dist/src/utils/type-guards.js.map +7 -0
  163. package/package.json +66 -0
  164. package/public/favicon.ico +0 -0
  165. package/public/icon.svg +6 -0
package/README.md ADDED
@@ -0,0 +1,346 @@
1
+ # bi-mcp
2
+
3
+ MCP monolítico de business intelligence para ecommerce en Argentina, construido con [`mcp-use`](https://mcp-use.com/docs/typescript/getting-started/quickstart).
4
+
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
+
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.
8
+
9
+ ## Índice
10
+
11
+ - [Qué cubre hoy](#qué-cubre-hoy)
12
+ - [Estado actual](#estado-actual)
13
+ - [Arquitectura del proyecto](#arquitectura-del-proyecto)
14
+ - [Principios no negociables](#principios-no-negociables)
15
+ - [Requisitos](#requisitos)
16
+ - [Configuración](#configuración)
17
+ - [Instalación y ejecución](#instalación-y-ejecución)
18
+ - [Estructura del repositorio](#estructura-del-repositorio)
19
+ - [Flujo de trabajo para desarrollo](#flujo-de-trabajo-para-desarrollo)
20
+ - [Documentación clave](#documentación-clave)
21
+ - [Estado del roadmap](#estado-del-roadmap)
22
+ - [Licencia](#licencia)
23
+
24
+ ## Qué cubre hoy
25
+
26
+ El MCP ya tiene capacidades activas para estas áreas:
27
+
28
+ - `VTEX`
29
+ Operación comercial, pedidos, stock, inventario por depósito, precios y ofertas.
30
+
31
+ - `Analytics (GA4)`
32
+ Tráfico, revenue medido en GA4, mix de canales, engagement y salud de medición.
33
+
34
+ - `Search Console`
35
+ Performance SEO, queries, páginas, oportunidades de CTR y alertas de visibilidad.
36
+
37
+ - `Google Ads`
38
+ Performance de cuenta, campañas, series temporales, riesgos, break-even y salud de escalabilidad.
39
+
40
+ - `Config / Benchmarks AR`
41
+ Benchmarks argentinos de IIBB, cuotas, pasarelas, logística y calendario comercial.
42
+
43
+ Además, el repo incluye un prompt de reporte de ventas y la base arquitectónica para sumar módulos de `finance` y `diagnostics`.
44
+
45
+ Para una explicación orientada a usuario final sobre capacidades, alcance y herramientas disponibles, ver [docs/CAPACIDADES_MCP.md](/home/yoryo/apps/bi-mcp/docs/CAPACIDADES_MCP.md).
46
+
47
+ ## Estado actual
48
+
49
+ Estado real del repo al día de hoy:
50
+
51
+ - `VTEX`: implementado
52
+ - `Analytics (GA4)`: implementado
53
+ - `Search Console`: implementado
54
+ - `Google Ads`: implementado
55
+ - `Benchmarks Argentina`: implementado
56
+ - `Finance`: pendiente
57
+ - `Diagnostics`: pendiente
58
+
59
+ En términos de superficie funcional actual:
60
+
61
+ - `10` tools de VTEX
62
+ - `11` tools de Google Ads
63
+ - `14` tools de Search Console
64
+ - `11` tools de GA4
65
+ - `1` tool/config de benchmarks
66
+ - `1` prompt de reporte
67
+
68
+ Cualquier cambio nuevo debe respetar la estructura y reglas definidas en [AGENTS.md](/home/yoryo/apps/bi-mcp/AGENTS.md).
69
+
70
+ ## Arquitectura del proyecto
71
+
72
+ La decisión principal de arquitectura es simple:
73
+
74
+ - `Un solo servidor MCP`
75
+ - `Múltiples módulos internos en src/`
76
+ - `Handlers delgados`
77
+ - `Servicios externos agrupados por proveedor`
78
+ - `Cálculo y agregación en código`
79
+ - `LLM consumiendo JSONs livianos ya procesados`
80
+
81
+ El servidor está registrado en [index.ts](/home/yoryo/apps/bi-mcp/index.ts) y usa `mcp-use` como framework principal.
82
+
83
+ La estructura actual se organiza así:
84
+
85
+ - `src/tools/`
86
+ Tools MCP agrupadas por proveedor o dominio.
87
+
88
+ - `src/services/`
89
+ Clientes y wrappers para APIs externas.
90
+
91
+ - `src/config/`
92
+ Configuración de infraestructura y benchmarks.
93
+
94
+ - `src/utils/`
95
+ Utilidades compartidas para paginación, dinero, currency safety y limpieza de payloads.
96
+
97
+ - `src/prompts/`
98
+ Prompts del servidor.
99
+
100
+ La visión del proyecto es seguir creciendo como monolito modular, no fragmentarlo en múltiples MCPs.
101
+
102
+ ## Principios no negociables
103
+
104
+ Estas reglas gobiernan cualquier cambio en el repo:
105
+
106
+ - `Code computes, LLM analyzes`
107
+ El servidor agrega, resume y calcula. No se deben enviar payloads crudos masivos al modelo.
108
+
109
+ - `Token efficiency`
110
+ Se eliminan `null`, arrays vacíos y campos irrelevantes antes de responder.
111
+
112
+ - `Pagination awareness`
113
+ Si una respuesta es parcial o paginada, eso debe quedar explicitado.
114
+
115
+ - `Multi-currency safety`
116
+ No se mezclan monedas en un mismo agregado.
117
+
118
+ - `Decimal correction`
119
+ VTEX devuelve montos en centavos. Hay que corregirlos antes de exponerlos.
120
+
121
+ - `Argentina-first`
122
+ Benchmarks, supuestos y lógica de referencia deben seguir el documento de Julián y el contexto argentino.
123
+
124
+ - `mcp-use only`
125
+ El servidor usa primitivas de `mcp-use`. No se debe migrar al SDK de MCP directo.
126
+
127
+ - `pnpm only`
128
+ Este repositorio usa `pnpm` como package manager oficial.
129
+
130
+ ## Requisitos
131
+
132
+ Antes de levantar el proyecto, necesitás como mínimo:
133
+
134
+ - `Node.js` reciente con soporte ESM
135
+ - `pnpm`
136
+ - credenciales de las integraciones que quieras usar
137
+
138
+ Dependiendo del módulo que quieras probar, el entorno puede requerir:
139
+
140
+ - credenciales de VTEX
141
+ - OAuth de Google para GA4 y Search Console
142
+ - credenciales de Google Ads
143
+
144
+ ## Configuración
145
+
146
+ La configuración de infraestructura se lee desde `.env`.
147
+
148
+ Variables relevantes hoy:
149
+
150
+ - `VTEX_ACCOUNT_NAME`
151
+ - `VTEX_API_KEY`
152
+ - `VTEX_API_TOKEN`
153
+ - `GOOGLE_OAUTH_CLIENT_ID`
154
+ - `GOOGLE_OAUTH_CLIENT_SECRET`
155
+ - `GOOGLE_OAUTH_REFRESH_TOKEN`
156
+ - `GA4_PROPERTY_ID`
157
+ - `GOOGLE_ADS_DEVELOPER_TOKEN`
158
+ - `GOOGLE_ADS_LOGIN_CUSTOMER_ID`
159
+ - `MCP_TRANSPORT`
160
+ - `PORT`
161
+ - `MCP_URL`
162
+
163
+ Reglas importantes:
164
+
165
+ - `.env` es solo para infraestructura y credenciales
166
+ - la configuración de negocio no debe vivir hardcodeada en `.env`
167
+ - no commitear `.env`, `credentials.json` ni `token.json`
168
+
169
+ La separación esperada es:
170
+
171
+ - `infraestructura y credenciales` en `.env`
172
+ - `configuración del negocio` en `business-data` cuando ese módulo esté completo
173
+
174
+ ## Instalación y ejecución
175
+
176
+ Instalación:
177
+
178
+ ```bash
179
+ pnpm install
180
+ ```
181
+
182
+ Desarrollo:
183
+
184
+ ```bash
185
+ pnpm run dev
186
+ ```
187
+
188
+ Build:
189
+
190
+ ```bash
191
+ pnpm run build
192
+ ```
193
+
194
+ Ejecución del build:
195
+
196
+ ```bash
197
+ pnpm run start
198
+ ```
199
+
200
+ Deploy:
201
+
202
+ ```bash
203
+ pnpm run deploy
204
+ ```
205
+
206
+ Uso vía `npx` después de publicar el paquete:
207
+
208
+ ```json
209
+ {
210
+ "mcpServers": {
211
+ "bi-mcp-stdio": {
212
+ "command": "npx",
213
+ "args": ["-y", "@yoryoboy/bi-mcp"],
214
+ "env": {
215
+ "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
+ "GOOGLE_OAUTH_CLIENT_ID": "your_google_oauth_client_id",
220
+ "GOOGLE_OAUTH_CLIENT_SECRET": "your_google_oauth_client_secret",
221
+ "GOOGLE_OAUTH_REFRESH_TOKEN": "your_google_oauth_refresh_token",
222
+ "GA4_PROPERTY_ID": "your_ga4_property_id",
223
+ "GOOGLE_ADS_DEVELOPER_TOKEN": "your_google_ads_developer_token",
224
+ "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "your_google_ads_login_customer_id"
225
+ }
226
+ }
227
+ }
228
+ }
229
+ ```
230
+
231
+ Puntos importantes para ese modo:
232
+
233
+ - en configuración por `command`, el transporte correcto es `stdio`, por eso hay que pasar `MCP_TRANSPORT=stdio`
234
+
235
+ Flujo típico de publicación:
236
+
237
+ ```bash
238
+ pnpm version patch
239
+ pnpm publish --access public
240
+ ```
241
+
242
+ En desarrollo, `mcp-use` expone el inspector para probar el servidor localmente. Si estás usando la configuración por defecto, el flujo típico es abrir:
243
+
244
+ ```text
245
+ http://localhost:3000/inspector
246
+ ```
247
+
248
+ ## Estructura del repositorio
249
+
250
+ Resumen de las rutas más importantes:
251
+
252
+ ```text
253
+ bi-mcp/
254
+ ├── AGENTS.md
255
+ ├── README.md
256
+ ├── docs/
257
+ ├── index.ts
258
+ ├── src/
259
+ │ ├── config/
260
+ │ ├── services/
261
+ │ │ ├── analytics/
262
+ │ │ ├── google-ads/
263
+ │ │ ├── search-console/
264
+ │ │ └── vtex/
265
+ │ ├── tools/
266
+ │ │ ├── analytics/
267
+ │ │ ├── google-ads/
268
+ │ │ ├── search-console/
269
+ │ │ └── vtex/
270
+ │ ├── prompts/
271
+ │ └── utils/
272
+ ├── package.json
273
+ └── pnpm-lock.yaml
274
+ ```
275
+
276
+ Puntos de entrada y referencia:
277
+
278
+ - [index.ts](/home/yoryo/apps/bi-mcp/index.ts)
279
+ Registro del servidor, tools y prompts.
280
+
281
+ - [src/tools/index.ts](/home/yoryo/apps/bi-mcp/src/tools/index.ts)
282
+ Barrel raíz de tools por módulo.
283
+
284
+ - [src/config/benchmarks.ts](/home/yoryo/apps/bi-mcp/src/config/benchmarks.ts)
285
+ Benchmarks argentinos expuestos por el servidor.
286
+
287
+ ## Flujo de trabajo para desarrollo
288
+
289
+ Si vas a tocar código en este repo, la referencia obligatoria es [AGENTS.md](/home/yoryo/apps/bi-mcp/AGENTS.md).
290
+
291
+ Resumen operativo:
292
+
293
+ - leer `AGENTS.md` antes de programar
294
+ - no inventar fórmulas financieras
295
+ - no reimplementar módulos que ya existen
296
+ - no poner lógica de negocio en `index.ts`
297
+ - agrupar `tools/` y `services/` por proveedor o dominio
298
+ - usar schemas Zod en el mismo archivo que el handler
299
+ - registrar las tools en `index.ts`
300
+ - usar naming consistente por prefijo de módulo
301
+
302
+ Convenciones principales:
303
+
304
+ - archivos en `kebab-case`
305
+ - tools MCP en `snake_case` con prefijo
306
+ - `schema + handler` en el mismo archivo
307
+ - utilidades compartidas en `src/utils/`
308
+
309
+ ## Documentación clave
310
+
311
+ El repo ya tiene documentación que define tanto el alcance funcional como las reglas de implementación:
312
+
313
+ - [AGENTS.md](/home/yoryo/apps/bi-mcp/AGENTS.md)
314
+ Guía maestra del proyecto, arquitectura, reglas y roadmap.
315
+
316
+ - [docs/CAPACIDADES_MCP.md](/home/yoryo/apps/bi-mcp/docs/CAPACIDADES_MCP.md)
317
+ Documento orientado a usuario sobre qué cubre el MCP.
318
+
319
+ - [docs/Ecommerce Growth & Profit OS – Argentina Edition (V3.md](/home/yoryo/apps/bi-mcp/docs/Ecommerce%20Growth%20%26%20Profit%20OS%20%E2%80%93%20Argentina%20Edition%20%28V3.md)
320
+ Fuente de verdad para fórmulas financieras, benchmarks y outputs esperados.
321
+
322
+ - [docs/vtex-key-endpoints.md](/home/yoryo/apps/bi-mcp/docs/vtex-key-endpoints.md)
323
+ Endpoints VTEX y contratos de referencia.
324
+
325
+ - [docs/logica-procesamiento-mcp-vtex.md](/home/yoryo/apps/bi-mcp/docs/logica-procesamiento-mcp-vtex.md)
326
+ Criterios de transformación de respuestas VTEX.
327
+
328
+ - [docs/flujos-bi-vtex.md](/home/yoryo/apps/bi-mcp/docs/flujos-bi-vtex.md)
329
+ Qué combinaciones de tools ayudan a responder distintos análisis de negocio.
330
+
331
+ ## Estado del roadmap
332
+
333
+ La dirección definida del producto es:
334
+
335
+ 1. `Finance`
336
+ CM1, CM2, CM3, CCC, LTV/CAC y lógica financiera basada en benchmarks locales.
337
+
338
+ 2. `Diagnostics`
339
+ Kill Switch, score de escalabilidad y outputs ejecutivos.
340
+
341
+ 3. `Evolución del perfil de negocio`
342
+ Diseño single-profile hoy, pero multi-profile ready en estructura.
343
+
344
+ ## Licencia
345
+
346
+ MIT. Ver [package.json](/home/yoryo/apps/bi-mcp/package.json).
package/bin/bi-mcp.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import "../dist/index.js";