Talk to Data
Una sola plataforma conversacional sobre Power BI y Snowflake para Frit Ravich — sin DAX, sin SQL, sin intermediarios. Cada usuario, su propia identidad; cada dato, su propio permiso.
Especialistas en automatización e IA aplicada al negocio
Diseñamos soluciones de IA para empresas que quieren hacer más con lo que ya tienen.
Diseñamos soluciones de IA para empresas que quieren hacer más con lo que ya tienen. Casi siempre el objetivo es el mismo: menos tiempo en tareas repetitivas, más en lo que importa.
Qué se construye, qué problema resuelve y qué valor aporta
Cualquier persona del equipo puede preguntarle a los datos: qué vendimos en Cataluña la semana pasada, qué productos bajaron de margen este trimestre. La respuesta llega directa, sin abrir Power BI, sin escribir una línea de DAX, sin pedírselo a nadie.
No son módulos separados, sino un único espacio de trabajo conversacional. Dentro de la misma conversación, el analista puede preguntar por los datos de Power BI y por los de Snowflake indistintamente. Dos conectores, un solo sistema. Y de esa misma conversación salen las presentaciones en PPTX, listas para presentar.
Hay dos formas de llegar ahí. La primera funciona en días: los analistas que ya conocen Claude pueden empezar esta misma semana, cada uno con su propia identidad de Microsoft. La segunda tarda unas 10 semanas pero escala a toda la organización, integrada en Microsoft 365.
- Las consultas que ahora tardan horas pasan a resolverse en segundos.
- Un solo sistema para preguntar a Power BI y a Snowflake, sin cambiar de herramienta.
- Las presentaciones se generan desde la propia conversación, listas para enviar.
- Cada usuario ve solo sus datos: la seguridad se aplica en origen, no se sortea.
- En la Opción A, ningún analista necesita una licencia adicional de Power BI: usa la suya.
Contexto, objetivos y fricciones concretas que este proyecto resuelve
Contexto, objetivos y fricciones concretas que este proyecto resuelve.
Frit Ravich tiene los datos. Power BI Premium con Capacity P-SKU, Snowflake para el equipo analítico. El problema no es la falta de datos; es que acceder a ellos fuera de los dashboards existentes requiere saber DAX o SQL, o tener a alguien disponible que lo sepa.
Cuando alguien de negocio necesita un dato que no está en el dashboard, tiene que pedírselo al equipo técnico. Los analistas de Revenue escriben SQL a mano para cada consulta. El reporting se prepara manualmente, cada vez. Son fricciones distintas con el mismo origen: el acceso a los datos sigue siendo complejo para quienes más los necesitan.
El equipo ya conoce Claude.
Recibieron formación, así que no hay curva de adopción que gestionar. Eso cambia bastante las cosas: donde en otros proyectos la Fase 1 tarda meses, aquí puede empezar esta semana.
Un sistema unificado, dos conectores, dos opciones de entrega
El sistema es uno solo: un espacio conversacional sobre los datos de Frit Ravich. A ese espacio se conectan dos fuentes a través de sus respectivos conectores (MCP). El analista no distingue entre ellos: pregunta, y el sistema decide a qué fuente acudir.
| Capacidad | Qué hace | Conector / Tecnología |
|---|---|---|
| Conversación con Power BI | Preguntas en lenguaje natural sobre dashboards y datasets, con la RLS de cada usuario aplicada | Power BI MCP (alojado por Microsoft) + identidad del propio usuario |
| Conversación con Snowflake | Consultas NL→SQL sobre las tablas de Revenue, con Row Access Policies aplicadas | Snowflake MCP + credenciales del propio usuario |
| Presentaciones PPTX | Generación de presentaciones a partir de los datos consultados | Opción A: Claude, bajo demanda · Opción B: automatizado y programado |
Hay dos formas de desplegar este sistema. La Opción A (Fase 1) usa Claude Desktop directamente sobre la identidad de cada analista; arranca en días. La Opción B (Fase 2) construye una plataforma a medida, multiusuario, integrada en Microsoft 365.
Claude como copiloto de datos
Arranque inmediato. Cada analista, con su propia identidad, conversando con los datos.
La Opción A es la vía rápida. No requiere desarrollo a medida ni infraestructura nueva. Cada analista instala Claude Desktop, configura sus dos conectores —el de Power BI y el de Snowflake— con sus propias credenciales, y empieza a preguntar. En días, no en meses.
Cada analista inicia sesión con su propia identidad de Microsoft (OAuth) desde Claude Desktop. Claude se conecta al Power BI MCP y al Snowflake MCP con las credenciales del propio usuario. No hay Service Principal, no hay cuenta de servicio, no hay nada que alojar en Azure para esta opción.
Como cada consulta se ejecuta con la identidad real del analista, la RLS de Power BI y las Row Access Policies de Snowflake se aplican de forma nativa, en origen. Cada persona ve exactamente lo que tiene autorizado, ni más ni menos. La seguridad no es un añadido: es consecuencia del diseño.
Para Power BI hay dos perfiles de conector, según lo que necesite cada persona. La mayoría de analistas trabaja con el MCP remoto; quien además construye y mantiene el modelo usa el MCP de modelado. Ambos se configuran una sola vez a nivel de organización con Claude Team —el administrador los habilita y todos los usuarios los reciben—, sin instalación máquina a máquina.
| Capacidad | Lo que aporta al analista | Madurez |
|---|---|---|
| Power BI — MCP remoto analista de datos | Consulta y explora datos en lenguaje natural; setup centralizado vía Claude Team, sin instalar nada | Operativo día 1 |
| Power BI — Modeling MCP analista avanzado / BI | Lectura y escritura del modelo: medidas, tablas, relaciones, RLS, TMDL. Requiere Node.js | Operativo día 1 |
| Conversación con Snowflake | Pregunta en lenguaje natural (NL→SQL) sobre las tablas de Revenue, con sus RAP | Operativo día 1 |
| Seguridad por identidad | Cada usuario ve solo lo suyo; RLS y RAP nativas | Operativo día 1 |
| Presentaciones PPTX | Generadas bajo demanda desde la conversación | Operativo, manual |
En la Opción A, las presentaciones se piden directamente a Claude dentro de la conversación: el analista solicita una presentación con los datos que acaba de consultar y la recibe al momento. Es una capacidad nativa, sin desarrollo adicional, ideal para reporting puntual o ad-hoc.
| Concepto | Detalle | Coste |
|---|---|---|
| Configuración inicial AI Mate | Onboarding de analistas · guía de prompts · ajuste de conectores | €500 (one-time) |
| Licencia Power BI por analista | Cada analista usa su propia licencia Microsoft / Power BI existente | Sin coste adicional |
| Licencias Claude Team/Enterprise | A cargo del cliente — ver sección de costes adicionales | ~€25 – €70/seat/mes |
| TOTAL ARRANQUE (Fase 1) | 3-5 analistas operativos en 2-4 semanas | €500 setup + licencias Claude |
La Opción A no añade infraestructura: el MCP remoto de Power BI lo aloja Microsoft, el Modeling MCP corre en el equipo del analista avanzado, y el Snowflake MCP usa las credenciales de cada usuario. El único coste recurrente son las licencias de Claude, que el cliente ya contrata para su equipo.
Plataforma de datos conversacional a medida
Escala a toda la organización. Un sistema multiusuario integrado en Microsoft 365.
La Opción B convierte el copiloto individual en una plataforma corporativa. Una aplicación web con SSO de Entra ID, donde cualquier usuario autorizado de Frit Ravich entra con su identidad de Microsoft —la misma que ya usa— y conversa con los datos. Pensada para rollout organizacional, no para un puñado de analistas.
Los conectores —Power BI MCP y Snowflake MCP— se despliegan como servicios compartidos en Azure Container Apps, dentro del tenant de Frit Ravich. Una sola instancia alojada da servicio a todos los usuarios. El acceso se gobierna mediante SSO de Entra ID: la identidad de cada usuario se propaga hasta las conexiones con Power BI y Snowflake, de modo que la seguridad se mantiene igual que en la Opción A, pero a escala.
Aquí el reporting deja de ser manual. Una Azure Function genera las presentaciones con python-pptx; Power Automate las dispara según un calendario programado y las distribuye automáticamente por Outlook o Teams a los destinatarios configurados. El informe semanal se prepara y se envía solo; nadie tiene que acordarse.
| Etapa | Semanas | Descripción | Entregable |
|---|---|---|---|
| POC de impersonación | 1-2 | Validar el mecanismo de propagación de identidad usuario→dato | Enfoque de seguridad validado |
| Plataforma base | 3-7 | App web · SSO Entra ID · MCP servers en Azure Container Apps · conversación unificada | Plataforma multiusuario operativa |
| Reporting automático | 6-9 | Azure Function + python-pptx · Power Automate · distribución Outlook/Teams | Reporting programado activo |
| Rollout organizacional | 8-12 | Integración Teams · onboarding por equipos · puesta en producción | Sistema completo en producción |
| TOTAL | ~10-12 sem | Plataforma a medida integrada en Microsoft 365 | Sistema completo operativo |
| Concepto | Detalle | Coste |
|---|---|---|
| Desarrollo AI Mate | Plataforma completa: app web · conectores · reporting · integración Teams | €8.500 (one-time) |
| Cuenta de servicio compartida | Una sola licencia Power BI Pro de servicio cubre la plataforma + usuario de servicio Snowflake | Una licencia compartida |
| Infraestructura Azure mensual | Container Apps · Functions · Blob · App web. ACA tier gratuito: 180.000 vCPU-seg/mes | ~€370 – €780/mes |
| Claude API (consumo) | Facturación por tokens consumidos, incluida en la estimación | Incluido en estimación |
| TOTAL SISTEMA COMPLETO | Hasta toda la organización · reporting automático · integración M365 | €30-50k dev + ~€370-780/mes |
A partir de cierto volumen de usuarios, la ecuación cambia.
Una cuenta de servicio compartida sale más a cuenta que una licencia de Claude por asiento. Por debajo de ese umbral, la Opción A gana sin discusión. El desarrollo inicial de la Opción B se amortiza a medio plazo si el sistema escala a buena parte de la organización.
Cada usuario ve solo lo que le toca
Cómo se garantiza que nadie accede a datos fuera de su ámbito.
La seguridad de este sistema no depende de un control añadido encima de los datos. Depende de quién hace la pregunta. En las dos opciones, cada consulta se ejecuta con la identidad real del usuario, y son Power BI y Snowflake quienes deciden —en origen— qué puede ver esa persona.
Cada analista inicia sesión con su propia identidad de Microsoft. Cuando pregunta, la consulta llega a Power BI y a Snowflake como suya. La RLS de Power BI y las Row Access Policies de Snowflake se aplican exactamente igual que si entrara por el dashboard. No existe ninguna cuenta de servicio que se salte permisos: simplemente no hay intermediario que pueda ver más de lo que ve el usuario.
En la plataforma a medida, el SSO de Entra ID propaga la identidad de cada usuario a través de la aplicación hasta las conexiones con Power BI y Snowflake. El usuario entra con su identidad corporativa y el sistema consulta los datos en su nombre. La visibilidad sigue gobernada en origen, no en la aplicación.
Lo que este sistema no hace
No usamos —ni en la Opción A ni en la Opción B— una cuenta de administrador de servicio con visibilidad global sobre todos los datos para luego filtrar por software. Ese patrón concentra el riesgo y rompe la trazabilidad. Aquí la identidad del usuario llega siempre hasta el dato, y es el dato quien decide.
Las dos opciones, cuándo conviene cada una
| Criterio | Opción A — Claude copiloto | Opción B — Plataforma a medida |
|---|---|---|
| Tiempo de arranque | Días | ~10-12 semanas |
| Usuarios objetivo | 3-5 analistas que ya conocen Claude | Toda la organización |
| Infraestructura | Ninguna (MCP de Power BI alojado por Microsoft) | Azure Container Apps en el tenant de FR |
| Reporting PPTX | Bajo demanda, desde la conversación | Automático y programado |
| Licencias | Cada analista usa la suya | Una cuenta de servicio compartida |
| Seguridad | Identidad propia, RLS/RAP nativas | SSO Entra ID, identidad propagada al dato |
| Inversión inicial | €2-4k | €30-50k |
| Coste recurrente | Licencias Claude | ~€370-780/mes infra + cuenta servicio |
Las dos opciones no compiten: se encadenan.
La recomendación es empezar por la Opción A esta misma semana —valor inmediato, riesgo mínimo— y activar la Opción B cuando el volumen de usuarios y la necesidad de reporting automático lo justifiquen.
Accesos, credenciales y documentación necesaria
| Requisito | Descripción | Responsable |
|---|---|---|
| Claude Desktop en los equipos | Instalación en los equipos de los analistas participantes — descarga gratuita | IT FR / Analistas |
| Identidad Microsoft con acceso PBI | Cada analista usa su propia cuenta con acceso a los datasets de Power BI | Ya disponible en FR |
| Credenciales Snowflake por usuario | Acceso de cada analista a las tablas de Revenue, con sus Row Access Policies | Equipo Datos FR |
| Documentación modelo semántico | Estructura del modelo PBI (tablas, medidas, relaciones) para calibrar consultas | Equipo Analytics FR |
| Licencias Claude Team/Enterprise | Para los analistas participantes en Fase 1 | Dirección FR |
| Requisito | Descripción | Responsable |
|---|---|---|
| Admin Entra ID | Configuración de SSO y registro de la aplicación corporativa | IT / Admin M365 FR |
| Cuenta de servicio Power BI | Una licencia Power BI Pro de servicio para la plataforma | IT / Admin M365 FR |
| Usuario de servicio Snowflake | ROLE de servicio para la plataforma + validación de Row Access Policies | Equipo Datos FR |
| Tenant Azure | Permisos para desplegar Container Apps, Functions y Blob en el tenant de FR | IT FR |
Distribución entre automatización y supervisión humana por proceso
| Proceso | Opción A | Opción B | Descripción de la intervención |
|---|---|---|---|
| Conversación con los datos | 90% | 95% | El usuario formula la pregunta; el sistema consulta Power BI o Snowflake y devuelve el resultado. Intervención: validación ocasional de respuestas críticas. |
| Generación de PPTX | 40% | 90% | (A) El usuario pide la presentación en la conversación y la recibe. (B) Generación programada y automática, sin intervención. |
| Distribución de informes | 10% | 85% | (A) Manual, el usuario comparte el archivo. (B) Power Automate envía automáticamente a los destinatarios configurados. |
La Opción A automatiza bien las consultas ad-hoc, pero el reporting sigue siendo manual. Con la Opción B, todo el ciclo se automatiza: desde la generación hasta la distribución. Las primeras semanas conviene revisar algunas respuestas del sistema para calibrar la precisión; después, la supervisión puede ser puntual.
Métricas de éxito y criterios de aceptación
| Capacidad | Métrica | Criterio de aceptación | Plan de evaluación |
|---|---|---|---|
| Conversación Power BI | % consultas correctas en primera iteración | > 85% en set de 50 preguntas | Test con el equipo de Analytics FR en semana 3 |
| Conversación Snowflake | % consultas SQL correctas en primera iteración | > 90% en set de 30 queries | Test con analistas de Revenue en semana 4 |
| Presentaciones PPTX | Presentaciones generadas sin corrección manual | 100% sin corrección | Validación con 3 ciclos de reporting en piloto |
| Seguridad por identidad | Ningún usuario accede a datos fuera de su ámbito | 100% — bloqueante | Validación técnica obligatoria antes de producción |
Los criterios de seguridad son binarios: cada usuario tiene que ver únicamente sus datos, al 100%, antes de poner el sistema en producción. Para la precisión de las consultas, los umbrales indicados son estimaciones basadas en proyectos similares; la calibración real se hace al inicio, con el modelo semántico del cliente.
Servicios de terceros a cargo del cliente
Costes a cargo del cliente, fuera del alcance de AI Mate.
| Servicio | Detalle | Coste estimado |
|---|---|---|
| Claude Team / Enterprise | Licencias para los usuarios del sistema (Opción A) | ~€25-30/seat/mes (Team) · ~€55-70/seat/mes (Enterprise) |
| Power BI | Cada analista usa su licencia existente (A) · una cuenta de servicio compartida (B) | Sin coste adicional (A) · 1 licencia de servicio (B) |
| Snowflake | Instancia existente en Frit Ravich | €0 adicional (consultas incrementales) |
| Microsoft 365 / Azure | Tenant existente en Frit Ravich | €0 en Opción A · infra Azure en Opción B |
Riesgos identificados y plan de respuesta
| Riesgo | Probabilidad | Impacto | Plan de mitigación |
|---|---|---|---|
| Esquema del modelo Power BI sin documentar | Media | Alto | Exportar con Tabular Editor al inicio. AI Mate puede asistir. |
| Permisos Snowflake incorrectos o RAP no configuradas | Media | Alto | Workshop técnico 2h con equipo datos FR al inicio. |
| Enfoque de impersonación de la Opción B sin validar | Media | Alto — bloqueante F2 | POC dedicada antes de construir la plataforma. No afecta a la Opción A. |
| Precisión NL→consulta insuficiente en casos complejos | Baja | Medio | Calibración con el modelo semántico real al inicio. Refinamiento iterativo. |
| Adopción baja por curva de prompt engineering | Baja | Medio | Guía de prompts específicos + sesión de onboarding con casos reales de FR. |
| Coste API por encima de estimaciones | Muy baja | Bajo | Azure Cost Management + alertas. Rate limits configurables en Opción B. |
Proyectos similares desarrollados por AI Mate
AI Mate ha implementado soluciones de acceso conversacional a datos para clientes en los sectores de distribución, retail y logística, con integraciones sobre Power BI y bases de datos SQL. Casos de referencia disponibles bajo NDA.
Plan de soporte post-entrega
- 30 días de soporte post-entrega sin coste adicional
- Corrección de bugs y ajustes menores durante el período de soporte
- Sesión de revisión técnica a los 30 días de la puesta en producción
- Documentación técnica del sistema entregada al equipo IT de FR
- Mantenimiento mensual: actualizaciones de modelos Claude, ajuste de prompts cuando el modelo semántico cambia, monitoring de precisión. Tarifa a definir en propuesta separada.
- SLA de respuesta: incidencias críticas en menos de 4 horas, mejoras en menos de 48 horas.
- Módulos adicionales o extensiones: bajo nueva propuesta.
¿Hablamos?
Esta propuesta es confidencial y está preparada para Frit Ravich. Válida 30 días.
Para cualquier pregunta o para dar el siguiente paso: andara14@gmail.com
Talk to Data — Arquitectura
Power BI y Snowflake como una sola plataforma de datos conversacional. Seguridad por identidad de usuario, no por cuenta de servicio. Claude como motor de IA, Azure-native cuando se requiere hosting.
Una sola plataforma de datos conversacional
Frit Ravich opera con Power BI Premium (Capacity P-SKU) y Snowflake como fuentes de datos principales. El objetivo es que los analistas —empezando por los 3-5 del equipo de Revenue— puedan obtener insights conversacionalmente: hacer preguntas en lenguaje natural y recibir datos, gráficos o presentaciones sin tocar una herramienta de BI.
La pieza clave de esta propuesta es que Power BI y Snowflake se presentan como UNA SOLA plataforma de datos conversacional. En la misma conversación, el analista puede preguntar por un KPI de Power BI y cruzarlo con una tabla de Snowflake, sin cambiar de herramienta ni de contexto.
- Cada analista se autentica con su PROPIA identidad Microsoft (OAuth) — Power BI RLS y Snowflake Row Access Policies se aplican de forma nativa, sin bypass posible.
- Sin coste de licencias adicionales en Fase 1: cada usuario emplea la licencia Power BI que ya tiene.
- Claude API con Zero Data Retention — los datos no se almacenan ni se usan para entrenar modelos.
- Infraestructura Microsoft por defecto — Azure-native cuando se requiere hosting (Fase 2).
- Equipo ya formado en Claude — punto de partida inmediato para la Fase 1.
Empezar por la Opción A, crecer hacia la Opción B
Hay dos formas de llevar la plataforma conversacional a Frit Ravich. No son excluyentes: recomendamos empezar por la Opción A (Fase 1) y crecer hacia la Opción B (Fase 2) cuando el volumen de usuarios y la necesidad de automatización lo justifiquen.
| Capacidad | Fase 1 — Opción A (Claude Directo) | Fase 2 — Opción B (Plataforma) |
|---|---|---|
| Consulta conversacional PBI + Snowflake | Nativa, en una sola conversación | Embebida en app web / Teams |
| Identidad para acceso a datos | OAuth del propio usuario (RLS/RAP nativas) | Entra ID SSO propagado a las fuentes |
| Generación de PPTX | Claude la genera a demanda en el chat | Automatizada y programada (Azure Function) |
| Distribución automática (email/Teams) | Manual / a demanda | Programada vía Power Automate |
| Esfuerzo de construcción | Días (config Claude Desktop + MCPs) | ~10 semanas (desarrollo a medida) |
| Hosting / infraestructura | Ninguna (MCP Microsoft + MCP Snowflake) | Azure Container Apps (compartidas) |
| Coste de licencias de datos | €0 adicional (licencia existente) | 1 cuenta de servicio por fuente |
Fase 1 (semanas 1-2): Opción A para los 3-5 analistas del equipo de Revenue. Aprovecha la formación recibida, da valor inmediato y valida el plumbing de datos con coste de build casi nulo y sin infraestructura que mantener.
Fase 2 (mes 3+): Opción B en Azure cuando el rollout crezca y la organización necesite reporting programado, branding propio y embebido en Teams.
Sin infraestructura propia, dos conectores MCP
En la Fase 1 no hay infraestructura propia. Cada analista trabaja desde Claude Desktop configurado con dos conectores MCP. La autenticación es con la identidad Microsoft del propio analista, de modo que la visibilidad de datos la imponen Power BI y Snowflake de forma nativa.
Analista → Claude Desktop / Claude Team
→ Power BI MCP (dos perfiles, según usuario)
├─ Remote MCP (api.fabric.microsoft.com/v1/mcp/powerbi) — consulta
└─ Modeling MCP (@microsoft/powerbi-modeling-mcp) — modelo
[token del usuario → RLS nativa de Power BI]
→ Snowflake MCP (local o remoto)
[credenciales del usuario → Row Access Policies]
Ambos MCP viven dentro de la MISMA conversación. El analista puede pedir "compárame las ventas del dashboard de Power BI con el detalle de pedidos en Snowflake" y Claude orquesta ambas consultas y cruza los resultados.
- Power BI MCP: acceso al modelo semántico en dos modalidades (Remote MCP y Modeling MCP), según el perfil del usuario.
- Snowflake MCP: servidor oficial de Snowflake Labs (Python, MIT). En Fase 1 puede correr en local o como endpoint remoto.
- Autenticación: OAuth con la identidad Microsoft del analista para Power BI; credenciales del usuario para Snowflake.
- Cliente: Claude Desktop / Claude Team. La configuración de ambos MCP se distribuye una sola vez por el administrador (no hay setup máquina a máquina).
- PPTX: capacidad nativa de Claude. El analista pide "genera la presentación de ventas de esta semana" y Claude la produce desde la conversación.
| Tipo | URL / Comando | Capacidades | Para quién |
|---|---|---|---|
| Remote MCP | api.fabric.microsoft.com/v1/mcp/powerbi |
Consulta y exploración del modelo en lenguaje natural (solo lectura). Setup centralizado vía Claude Team, sin dependencias locales. | Analista de datos |
| Modeling MCP | npx @microsoft/powerbi-modeling-mcp@latest --start |
Lectura + escritura: DAX, measures, tablas, columnas, relaciones, RLS, particiones, TMDL/deploy a Fabric, bulk. Requiere Node.js. | Analista avanzado / Dev BI |
El Modeling MCP expone tools completas: dax_query_operations, measure_operations, table_operations, column_operations, relationship_operations, security_role_operations (RLS), partition_operations, database_operations (TMDL, deploy a Fabric) y operaciones en bloque (bulk).
Configuración del Modeling MCP para Claude Desktop / Claude Team (la distribuye el administrador):
{
"powerbi-modeling-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@microsoft/powerbi-modeling-mcp@latest", "--start"]
}
}
Esta arquitectura NO usa Service Principal ni un mecanismo de impersonación. Cada petición viaja con el token del propio analista, de modo que Power BI aplica su RLS y Snowflake sus Row Access Policies exactamente como lo harían si el usuario consultara directamente. No existe ninguna cuenta con permisos elevados que pueda saltarse esos límites.
App web a medida, embebida en Microsoft 365
La Fase 2 traslada la misma plataforma conversacional a una app web a medida, embebida en el ecosistema Microsoft 365 de Frit Ravich, con reporting programado y rollout amplio. La identidad del usuario sigue siendo la base de la seguridad.
Analista → Navegador → App Web (Azure)
→ Entra ID SSO (identidad del usuario)
→ Orquestador (Azure Container Apps)
→ Power BI MCP (ACA) → RLS por identidad
→ Snowflake MCP (ACA) → RAP por identidad
→ Respuesta + PPTX opcional
- Frontend: app web con SSO Entra ID (Azure Static Web Apps). La identidad del usuario se propaga al backend.
- Orquestador y MCP: Power BI MCP + Snowflake MCP corriendo en Azure Container Apps como instancias compartidas para varios usuarios.
- Free tier de ACA: 180.000 vCPU-seg/mes + 360.000 GiB-seg/mes — coste mínimo para cargas de analistas.
- Cuentas de servicio: una por fuente (1 licencia Power BI Pro/PPU, 1 usuario de servicio Snowflake), con impersonación por usuario para preservar RLS/RAP.
- PPTX automatizado: Azure Function + python-pptx rellena plantillas con datos de PBI/Snowflake, se dispara con Power Automate y se distribuye por Outlook/Teams.
Power BI y Snowflake, una sola capa conversacional
Power BI y Snowflake no son dos productos separados: forman una única capa de datos conversacional. El analista no decide "voy a consultar Power BI" o "voy a consultar Snowflake" — simplemente pregunta, y Claude decide qué fuente (o ambas) responde mejor.
Ejemplo: "Las ventas del dashboard de Power BI de la semana pasada no cuadran con lo que veo en pedidos; enséñame el detalle por cliente desde Snowflake y dime dónde está la diferencia." Claude consulta Power BI, consulta Snowflake, cruza ambos resultados y responde — todo dentro del mismo hilo, respetando los permisos del analista en cada fuente.
No se crea ningún data warehouse intermedio. No se extraen datos al tenant de AI Mate. La capa de datos permanece 100% en la infraestructura existente de Frit Ravich: Talk to Data es una capa de interacción, no de almacenamiento.
La identidad del usuario es la frontera de seguridad
El principio de diseño es uno solo: la identidad del usuario es la frontera de seguridad. En ninguna de las dos fases existe una cuenta privilegiada que pueda ver datos que el usuario no podría ver por sí mismo.
El token de cada usuario se usa directamente contra Power BI y Snowflake. Cada fuente aplica sus permisos nativos (RLS y Row Access Policies). No hay bypass de administrador porque no hay cuenta de administrador en el camino del dato.
La identidad de Entra ID SSO se propaga a través del stack hasta las fuentes de datos. Las mismas garantías que en la Fase 1 se mantienen en la capa de datos: cada consulta se ejecuta bajo la identidad del usuario real.
| Aspecto | Fase 1 — Opción A | Fase 2 — Opción B |
|---|---|---|
| Identidad de acceso | OAuth del propio analista | Entra ID SSO propagado al stack |
| Power BI | RLS nativa con token del usuario | RLS por identidad propagada |
| Snowflake | Row Access Policies con credenciales del usuario | RAP por identidad propagada |
| Cuenta con bypass de permisos | Ninguna | Ninguna a nivel de datos |
| Fuga de datos entre usuarios | Arquitectónicamente imposible | Arquitectónicamente imposible |
Por qué es mejor que una cuenta de servicio compartida
Con una única cuenta de servicio que viera todos los datos, una consulta mal acotada podría devolver información de otro usuario. Aquí eso es imposible por construcción: la fuga de datos entre usuarios no depende de que el código "se acuerde" de filtrar — es Power BI / Snowflake quien filtra, con la identidad del usuario, antes de devolver una sola fila.
Claude como motor de IA, Azure-native donde se requiere
Claude como motor de IA en ambas fases. La Fase 1 no necesita infraestructura propia; la Fase 2 añade hosting Azure-native solo donde se requiere.
| Capa | Fase 1 — Opción A | Fase 2 — Opción B | Justificación |
|---|---|---|---|
| IA / LLM | Claude (claude-sonnet-4-6) | Claude API (claude-sonnet-4-6) | ZDR, precisión NL→DAX/SQL, equipo formado |
| Cliente | Claude Desktop | App web (Azure Static Web Apps) | (B) SSO Entra ID, datos en tenant |
| Identidad | OAuth del usuario | Entra ID SSO | RLS/RAP por identidad, sin bypass |
| MCP Power BI | Remote MCP (api.fabric) + Modeling MCP (npm) | Azure Container Apps | Dos perfiles: consulta y modelado, sin despliegue propio |
| MCP Snowflake | Local / remoto | Azure Container Apps | Oficial Snowflake Labs, key-pair |
| Orquestación | Claude native | Azure Functions + Power Automate | (B) conectores M365 nativos |
| PPTX | Claude a demanda | Azure Function + python-pptx | (B) reporting programado |
| Hosting | Ninguno | Azure Container Apps | (B) instancias compartidas, free tier |
Anclar la Fase 2 al stack que FR ya gobierna
Frit Ravich opera sobre Microsoft 365, Entra ID y Power BI. Anclar la Fase 2 a ese stack reduce la superficie de gobernanza, elimina vendors externos del tenant de datos y permite que IT gestione los accesos con las herramientas que ya conoce. (En la Fase 1 no hay hosting que gobernar: todo corre en Claude Desktop y en el MCP de Microsoft.)
| Necesidad | Componente Azure-native (Fase 2) | Por qué |
|---|---|---|
| Frontend | Azure Static Web Apps | SSO Entra ID nativo, datos en tenant, sin vendor nuevo |
| Orquestación / scheduler | Power Automate + Azure Functions | Conectores M365 nativos, IT lo gobierna |
| Persistencia (sesiones/audit) | Azure DB for PostgreSQL / Cosmos DB | En tenant, auth Entra, gestionado |
| Hosting MCP | Azure Container Apps (red privada) | Datos nunca salen del tenant |
- Frit Ravich ya recibió formación específica en Claude — curva de cambio cero.
- Claude API ofrece Zero Data Retention (ZDR).
- Copilot Studio fue evaluado y descartado por el cliente como "poco user friendly".
- Precisión NL→DAX/SQL superior en razonamiento sobre esquemas de datos complejos.
Dos bloques de pricing, uno por fase
Dos bloques de pricing — uno por fase. La Fase 1 no añade coste de licencias de datos; la Fase 2 añade infraestructura y una cuenta de servicio por fuente.
| Concepto | Detalle | Coste |
|---|---|---|
| Licencias de datos | Cada analista usa su licencia Power BI existente | €0 adicional |
| Acceso a Claude | Claude Team / Enterprise por analista | ~€25-30/seat/mes (3-5 usuarios) |
| MCP Power BI | Remote MCP (Microsoft) + Modeling MCP (npm) | €0 (incluido) |
| MCP Snowflake | Local / remoto, sin hosting dedicado | ~€0-50/mes |
| Configuración inicial AI Mate | Setup Claude Desktop + MCPs + onboarding | €500 (one-time) |
| TOTAL ARRANQUE (Fase 1) | 3-5 analistas operativos | ~€75-200/mes + setup |
| Concepto | Detalle | Coste mensual |
|---|---|---|
| Claude API (Sonnet 4.6) | $3/MTok input · $15/MTok output | ~€150-300/mes @50-150u. |
| Cuenta servicio Power BI | 1 licencia Pro/PPU para impersonación | ~€10-20/mes |
| Azure Static Web Apps | Frontend + CDN | ~€20-50/mes |
| Azure Functions | Orquestador + PPTX generator | ~€30-80/mes |
| Azure Container Apps | MCP servers (free tier cubre buena parte) | ~€0-150/mes |
| Azure DB for PostgreSQL | Sesiones, audit logs | ~€50-100/mes |
| Power Automate (M365) | Cron + distribución | €0 (incluido en M365) |
| TOTAL INFRA MENSUAL | — | ~€260-700/mes |
| DESARROLLO AI MATE | ~10 semanas de ingeniería (incl. POC) | €8.500 (one-time) |
El desarrollo inicial se amortiza cuando el volumen de usuarios y la necesidad de reporting programado justifican la plataforma a medida. El free tier de Azure Container Apps cubre buena parte del hosting de los MCP para cargas de analistas.
Riesgos técnicos y plan de respuesta
| Riesgo | Nivel | Mitigación |
|---|---|---|
| Esquema del modelo Power BI sin documentar | ALTO | Exportar modelo (Tabular Editor) y compartir con AI Mate antes del onboarding. |
| Permisos Snowflake y Row Access Policies | MEDIO | Workshop técnico 2h con el equipo de datos de FR en Fase 0. |
| Impersonación por usuario en Fase 2 (RLS/RAP) | MEDIO | POC de validación antes de comprometer el desarrollo de la Opción B. |
| Curva de habituación al prompt engineering | MEDIO | Guía de prompts específicos para Power BI/Snowflake. Templates en Fase 2. |
| Coste API bajo uso no previsto (Fase 2) | BAJO | Azure Cost Management + alertas. Rate limits por usuario. |
De prerequisitos a rollout organizacional
Preparación. Responsable: IT FR + AI Mate.
- Validar acceso OAuth de los analistas al MCP de Power BI de Microsoft.
- Crear ROLE Snowflake de solo lectura para los analistas + validar Row Access Policies.
- Compartir documentación del modelo semántico Power BI con AI Mate.
- Completar cuestionario de requisitos.
3-5 analistas operativos. Días de build. Alto valor inmediato. Sin infraestructura.
- Configurar Claude Desktop de cada analista con los dos MCP (Power BI Microsoft + Snowflake).
- Configurar las cuentas Claude Team / Enterprise de los analistas.
- Sesión de onboarding + guía de prompts Power BI/Snowflake.
- Validar que RLS y Row Access Policies se aplican con la identidad de cada usuario.
- Validar la generación de PPTX a demanda desde la conversación.
Entregable: los analistas hacen preguntas en lenguaje natural sobre Power BI y Snowflake desde una sola conversación en Claude, con RLS/RAP activas por identidad.
Trigger de activación: rollout amplio, necesidad de reporting programado con branding propio, o embebido en Teams.
- POC de validación de impersonación por usuario (preserva RLS/RAP sobre cuentas de servicio).
- Diseño UI (Azure Static Web Apps + branding FR) con Entra ID SSO.
- Despliegue de Power BI MCP + Snowflake MCP en Azure Container Apps (instancias compartidas).
- Orquestador en Azure Functions + integración Teams / M365.
- Reporting PPTX programado: Azure Function + python-pptx + Power Automate.
- Auditoría y logs en Azure DB. UAT + formación a usuarios ampliados. Rollout gradual.
Decisiones de diseño y su porqué
¿Hablamos?
Esta propuesta es confidencial y está preparada para Frit Ravich. Válida 30 días.
Para cualquier pregunta o para dar el siguiente paso: andara14@gmail.com