@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.
- package/README.md +346 -0
- package/bin/bi-mcp.js +2 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.js +768 -0
- package/dist/index.js.map +7 -0
- package/dist/mcp-use.json +7 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/icon.svg +6 -0
- package/dist/src/analytics/ga4-channel-groups.js +20 -0
- package/dist/src/analytics/ga4-channel-groups.js.map +7 -0
- package/dist/src/analytics/ga4-report-utils.js +117 -0
- package/dist/src/analytics/ga4-report-utils.js.map +7 -0
- package/dist/src/config/benchmarks.js +128 -0
- package/dist/src/config/benchmarks.js.map +7 -0
- package/dist/src/config/google.js +41 -0
- package/dist/src/config/google.js.map +7 -0
- package/dist/src/config/vtex.js +26 -0
- package/dist/src/config/vtex.js.map +7 -0
- package/dist/src/google-ads/report-utils.js +78 -0
- package/dist/src/google-ads/report-utils.js.map +7 -0
- package/dist/src/prompts/reporte-ventas.js +75 -0
- package/dist/src/prompts/reporte-ventas.js.map +7 -0
- package/dist/src/search-console/search-console-utils.js +275 -0
- package/dist/src/search-console/search-console-utils.js.map +7 -0
- package/dist/src/services/analytics/ga4-client.js +69 -0
- package/dist/src/services/analytics/ga4-client.js.map +7 -0
- package/dist/src/services/analytics/oauth.js +30 -0
- package/dist/src/services/analytics/oauth.js.map +7 -0
- package/dist/src/services/google-ads/google-ads-client.js +54 -0
- package/dist/src/services/google-ads/google-ads-client.js.map +7 -0
- package/dist/src/services/search-console/search-console-client.js +45 -0
- package/dist/src/services/search-console/search-console-client.js.map +7 -0
- package/dist/src/services/vtex/vtex-api.js +51 -0
- package/dist/src/services/vtex/vtex-api.js.map +7 -0
- package/dist/src/services/vtex/vtex-catalog.js +18 -0
- package/dist/src/services/vtex/vtex-catalog.js.map +7 -0
- package/dist/src/services/vtex/vtex-logistics.js +151 -0
- package/dist/src/services/vtex/vtex-logistics.js.map +7 -0
- package/dist/src/services/vtex/vtex-orders.js +143 -0
- package/dist/src/services/vtex/vtex-orders.js.map +7 -0
- package/dist/src/services/vtex/vtex-pricing.js +17 -0
- package/dist/src/services/vtex/vtex-pricing.js.map +7 -0
- package/dist/src/tools/analytics/attribution-gaps.js +109 -0
- package/dist/src/tools/analytics/attribution-gaps.js.map +7 -0
- package/dist/src/tools/analytics/channel-mix.js +74 -0
- package/dist/src/tools/analytics/channel-mix.js.map +7 -0
- package/dist/src/tools/analytics/ecommerce-tracking-health.js +89 -0
- package/dist/src/tools/analytics/ecommerce-tracking-health.js.map +7 -0
- package/dist/src/tools/analytics/engagement-overview.js +71 -0
- package/dist/src/tools/analytics/engagement-overview.js.map +7 -0
- package/dist/src/tools/analytics/index.js +12 -0
- package/dist/src/tools/analytics/index.js.map +7 -0
- package/dist/src/tools/analytics/list-accessible-properties.js +46 -0
- package/dist/src/tools/analytics/list-accessible-properties.js.map +7 -0
- package/dist/src/tools/analytics/property-info.js +54 -0
- package/dist/src/tools/analytics/property-info.js.map +7 -0
- package/dist/src/tools/analytics/revenue-by-channel.js +70 -0
- package/dist/src/tools/analytics/revenue-by-channel.js.map +7 -0
- package/dist/src/tools/analytics/revenue-overview.js +77 -0
- package/dist/src/tools/analytics/revenue-overview.js.map +7 -0
- package/dist/src/tools/analytics/revenue-trend.js +69 -0
- package/dist/src/tools/analytics/revenue-trend.js.map +7 -0
- package/dist/src/tools/analytics/source-medium-breakdown.js +86 -0
- package/dist/src/tools/analytics/source-medium-breakdown.js.map +7 -0
- package/dist/src/tools/analytics/top-landing-pages.js +79 -0
- package/dist/src/tools/analytics/top-landing-pages.js.map +7 -0
- package/dist/src/tools/google-ads/account-overview.js +103 -0
- package/dist/src/tools/google-ads/account-overview.js.map +7 -0
- package/dist/src/tools/google-ads/account-risks.js +267 -0
- package/dist/src/tools/google-ads/account-risks.js.map +7 -0
- package/dist/src/tools/google-ads/break-even-analysis.js +107 -0
- package/dist/src/tools/google-ads/break-even-analysis.js.map +7 -0
- package/dist/src/tools/google-ads/campaign-performance.js +157 -0
- package/dist/src/tools/google-ads/campaign-performance.js.map +7 -0
- package/dist/src/tools/google-ads/channel-mix.js +129 -0
- package/dist/src/tools/google-ads/channel-mix.js.map +7 -0
- package/dist/src/tools/google-ads/compare-accounts.js +122 -0
- package/dist/src/tools/google-ads/compare-accounts.js.map +7 -0
- package/dist/src/tools/google-ads/customer-clients.js +77 -0
- package/dist/src/tools/google-ads/customer-clients.js.map +7 -0
- package/dist/src/tools/google-ads/customer-info.js +64 -0
- package/dist/src/tools/google-ads/customer-info.js.map +7 -0
- package/dist/src/tools/google-ads/index.js +12 -0
- package/dist/src/tools/google-ads/index.js.map +7 -0
- package/dist/src/tools/google-ads/scaling-health.js +174 -0
- package/dist/src/tools/google-ads/scaling-health.js.map +7 -0
- package/dist/src/tools/google-ads/search-terms-summary.js +131 -0
- package/dist/src/tools/google-ads/search-terms-summary.js.map +7 -0
- package/dist/src/tools/google-ads/time-series.js +126 -0
- package/dist/src/tools/google-ads/time-series.js.map +7 -0
- package/dist/src/tools/index.js +5 -0
- package/dist/src/tools/index.js.map +7 -0
- package/dist/src/tools/search-console/country-breakdown.js +85 -0
- package/dist/src/tools/search-console/country-breakdown.js.map +7 -0
- package/dist/src/tools/search-console/device-breakdown.js +85 -0
- package/dist/src/tools/search-console/device-breakdown.js.map +7 -0
- package/dist/src/tools/search-console/high-impression-low-click-queries.js +95 -0
- package/dist/src/tools/search-console/high-impression-low-click-queries.js.map +7 -0
- package/dist/src/tools/search-console/index.js +15 -0
- package/dist/src/tools/search-console/index.js.map +7 -0
- package/dist/src/tools/search-console/list-accessible-sites.js +42 -0
- package/dist/src/tools/search-console/list-accessible-sites.js.map +7 -0
- package/dist/src/tools/search-console/low-ctr-opportunities.js +98 -0
- package/dist/src/tools/search-console/low-ctr-opportunities.js.map +7 -0
- package/dist/src/tools/search-console/page-performance.js +104 -0
- package/dist/src/tools/search-console/page-performance.js.map +7 -0
- package/dist/src/tools/search-console/product-demand-low-capture-queries.js +93 -0
- package/dist/src/tools/search-console/product-demand-low-capture-queries.js.map +7 -0
- package/dist/src/tools/search-console/query-page-matrix.js +99 -0
- package/dist/src/tools/search-console/query-page-matrix.js.map +7 -0
- package/dist/src/tools/search-console/query-performance.js +109 -0
- package/dist/src/tools/search-console/query-performance.js.map +7 -0
- package/dist/src/tools/search-console/quick-win-opportunities.js +93 -0
- package/dist/src/tools/search-console/quick-win-opportunities.js.map +7 -0
- package/dist/src/tools/search-console/rising-non-brand-queries.js +121 -0
- package/dist/src/tools/search-console/rising-non-brand-queries.js.map +7 -0
- package/dist/src/tools/search-console/search-performance.js +89 -0
- package/dist/src/tools/search-console/search-performance.js.map +7 -0
- package/dist/src/tools/search-console/site-context.js +43 -0
- package/dist/src/tools/search-console/site-context.js.map +7 -0
- package/dist/src/tools/search-console/visibility-declines.js +146 -0
- package/dist/src/tools/search-console/visibility-declines.js.map +7 -0
- package/dist/src/tools/vtex/computed-price.js +48 -0
- package/dist/src/tools/vtex/computed-price.js.map +7 -0
- package/dist/src/tools/vtex/index.js +11 -0
- package/dist/src/tools/vtex/index.js.map +7 -0
- package/dist/src/tools/vtex/inventory-check.js +148 -0
- package/dist/src/tools/vtex/inventory-check.js.map +7 -0
- package/dist/src/tools/vtex/order-details.js +56 -0
- package/dist/src/tools/vtex/order-details.js.map +7 -0
- package/dist/src/tools/vtex/orders-summary.js +83 -0
- package/dist/src/tools/vtex/orders-summary.js.map +7 -0
- package/dist/src/tools/vtex/product-offers.js +28 -0
- package/dist/src/tools/vtex/product-offers.js.map +7 -0
- package/dist/src/tools/vtex/sku-offers.js +30 -0
- package/dist/src/tools/vtex/sku-offers.js.map +7 -0
- package/dist/src/tools/vtex/sku-price.js +42 -0
- package/dist/src/tools/vtex/sku-price.js.map +7 -0
- package/dist/src/tools/vtex/update-inventory.js +43 -0
- package/dist/src/tools/vtex/update-inventory.js.map +7 -0
- package/dist/src/tools/vtex/update-lead-time.js +32 -0
- package/dist/src/tools/vtex/update-lead-time.js.map +7 -0
- package/dist/src/tools/vtex/warehouse-inventory.js +42 -0
- package/dist/src/tools/vtex/warehouse-inventory.js.map +7 -0
- package/dist/src/utils/case-conversion.js +21 -0
- package/dist/src/utils/case-conversion.js.map +7 -0
- package/dist/src/utils/currency.js +52 -0
- package/dist/src/utils/currency.js.map +7 -0
- package/dist/src/utils/format-order-details.js +137 -0
- package/dist/src/utils/format-order-details.js.map +7 -0
- package/dist/src/utils/google-ads.js +78 -0
- package/dist/src/utils/google-ads.js.map +7 -0
- package/dist/src/utils/money.js +83 -0
- package/dist/src/utils/money.js.map +7 -0
- package/dist/src/utils/order-status.js +11 -0
- package/dist/src/utils/order-status.js.map +7 -0
- package/dist/src/utils/pagination.js +45 -0
- package/dist/src/utils/pagination.js.map +7 -0
- package/dist/src/utils/strip-payload.js +40 -0
- package/dist/src/utils/strip-payload.js.map +7 -0
- package/dist/src/utils/type-guards.js +7 -0
- package/dist/src/utils/type-guards.js.map +7 -0
- package/package.json +66 -0
- package/public/favicon.ico +0 -0
- 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