Analisis de datos desde Windsurf IDE con DataSpoc MCP
Windsurf es un IDE nativo de IA construido por Codeium. Como Cursor, puede conectarse a servidores MCP (Model Context Protocol). Conecta DataSpoc Lens cómo un servidor MCP y el asistente de IA de Windsurf gana acceso directo a tu data lake — puede listar tablas, leer esquemas, ejecutar consultas SQL y responder preguntas sobre tus datos. Todo sin salir de tu editor.
Lo que obtienes
Despues de la configuración, puedes escribir lenguaje natural en el panel de IA de Windsurf:
- “Que tablas tenemos en el data lake?”
- “Muestrame el esquema de la tabla de ordenes”
- “Cual fue el ingreso el mes pasado?”
- “Encuentra usuarios que se registraron pero nunca compraron”
- “Crea un script Python que genere un reporte mensual de ingresos”
Windsurf llama a DataSpoc Lens a traves de MCP, obtiene los datos reales y los usa para responder tus preguntas o generar código.
Paso 1: Instalar DataSpoc Lens
pip install dataspoc-lensConfigura tu bucket:
dataspoc-lens add-bucket s3://my-company-data --name productiondataspoc-lens tables # verify connectionPaso 2: Configurar MCP en Windsurf
Abre la configuración MCP de Windsurf. Navega a Settings, luego MCP Servers, o edita el archivo de configuración directamente:
{ "mcpServers": { "dataspoc-lens": { "command": "dataspoc-lens", "args": ["mcp"], "env": { "AWS_PROFILE": "default" } } }}En macOS/Linux, el archivo de configuración esta tipicamente en ~/.codeium/windsurf/mcp_config.json.
Si también quieres capacidades de ingesta de datos, agrega el servidor MCP de Pipe:
{ "mcpServers": { "dataspoc-lens": { "command": "dataspoc-lens", "args": ["mcp"], "env": { "AWS_PROFILE": "default" } }, "dataspoc-pipe": { "command": "dataspoc-pipe", "args": ["mcp"], "env": { "AWS_PROFILE": "default" } } }}Reinicia Windsurf despues de editar la configuración.
Paso 3: Verificar la conexión
En el panel de IA de Windsurf, escribe:
What tables are available in my data lake?Windsurf llama a la herramienta list_tables via MCP y responde con algo cómo:
You have 8 tables available:
- raw.customers (12,450 rows)- raw.orders (89,230 rows)- raw.products (340 rows)- raw.events (1,245,600 rows)- curated.dim_customers (12,340 rows)- curated.fct_orders (87,650 rows)- gold.daily_revenue (480 rows)- gold.customer_dashboard (11,890 rows)Si ves esto, MCP esta conectado y funciónando.
Flujo de trabajo 1: Analizar tendencias de ingresos
Escribe en el panel de IA de Windsurf:
Analyze revenue trends for Q1 2026. Show monthly breakdown and growth rate.Detras de escena, Windsurf:
- Llama a
get_schemapara tablas relevantes - Escribe una consulta SQL con agregacion mensual
- Llama a
run_querypara ejecutarla - Formatea los resultados con análisis
Respuesta:
Q1 2026 Revenue Analysis:
| Month | Revenue | Orders | Avg Order | MoM Growth ||----------|-----------|--------|-----------|------------|| Jan 2026 | $245,600 | 3,120 | $78.72 | -- || Feb 2026 | $268,400 | 3,450 | $77.80 | +9.3% || Mar 2026 | $312,100 | 4,010 | $77.83 | +16.3% |
Q1 Total: $826,100Average monthly growth: 12.8%
Revenue is accelerating. March saw 16.3% growth, nearly doubleJanuary's baseline. Order count is growing faster than averageorder value, suggesting new customer acquisition is driving growth.Todos los números provienen de consultas SQL reales sobre tus datos reales.
Flujo de trabajo 2: Encontrar anomalias en registros de usuarios
Find anomalies in user signups over the past 30 days. Flag any dayswith unusual signup counts.Windsurf consulta los datos y responde:
I analyzed daily signups for the past 30 days. The average is 42signups/day with a standard deviation of 8.
Anomalies detected:
| Date | Signups | Z-Score | Notes ||------------|---------|---------|---------------------|| 2026-04-12 | 127 | +10.6 | 3x normal volume || 2026-04-13 | 89 | +5.9 | 2x normal, tail || 2026-04-03 | 18 | -3.0 | Weekend + holiday |
April 12-13 saw a massive spike. This correlates with a Product Huntlaunch (if relevant). The April 3 dip aligns with a weekend.Flujo de trabajo 3: Crear un reporte de churn
Create a churn analysis report. Define churned as no order in 90 days.Show churn by plan tier and signup cohort.Windsurf construye el SQL, lo ejecuta y presenta:
Churn Analysis (as of 2026-04-28):
By Plan Tier:| Tier | Total | Churned | Churn Rate ||------------|-------|---------|------------|| free | 5,990 | 3,240 | 54.1% || pro | 4,120 | 824 | 20.0% || enterprise | 2,340 | 117 | 5.0% |
By Signup Cohort (monthly):| Cohort | Signups | Retained | 90-Day Retention ||----------|---------|----------|-----------------|| Jan 2026 | 1,245 | 892 | 71.6% || Feb 2026 | 1,380 | 1,048 | 75.9% || Mar 2026 | 1,520 | 1,230 | 80.9% |
Retention is improving month over month. Enterprise churn isextremely low at 5%. Focus retention efforts on free tier users.Flujo de trabajo 4: Generar código desde datos
El verdadero poder de una integración con IDE: Windsurf puede escribir código que usa el esquema real de tus datos.
Create a Python script that generates a weekly revenue report as aPDF using the gold.daily_revenue table.Windsurf inspecciona el esquema via MCP, luego genera un script Python con nombres de columna correctos, imports apropiados y consultas funciónales — todo en un archivo nuevo en tu editor. El código referencia nombres reales de tablas y columnas de tu data lake porque Windsurf los busco a traves de MCP antes de escribir el código.
Consejos para prompts de datos efectivos en Windsurf
Se especifico con el rango de tiempo:
# Good"Show revenue for March 2026"
# Vague"Show recent revenue"Nombra las tablas si las conoces:
# Good"Query gold.customer_dashboard for churned enterprise customers"
# Slower (Windsurf has to discover tables first)"Find churned enterprise customers"Pide el SQL también:
"What's our MRR? Show me the SQL you used."Esto te permite verificar la consulta y reutilizarla despues.
Encadena solicitudes para análisis complejos:
1. "List all tables and their row counts"2. "Show the schema for raw.orders and raw.customers"3. "Now build a cohort retention analysis using those tables"Dividir análisis complejos en pasos le da a Windsurf contexto para construir mejores consultas.
Pide generacion de código despues del análisis:
1. "What does our daily revenue look like this month?"2. "Create a Python function that queries this data and returns a pandas DataFrame"3. "Add a Matplotlib chart to visualize the trend"Windsurf vs. Cursor para análisis de datos
Ambos IDEs soportan MCP y ambos funciónan con DataSpoc. Asi se comparan:
| Caracteristica | Windsurf | Cursor |
|---|---|---|
| Soporte MCP | Si | Si |
| Modelo de IA | Codeium + configurable | Configurable (Claude, GPT) |
| Flujo de análisis de datos | Panel de IA + inline | Chat + Composer |
| Edicion multi-archivo | Flujo Cascade | Composer |
| Nivel gratuito | Generoso | Limitado |
| Ubicacion de config MCP | ~/.codeium/windsurf/mcp_config.json | ~/.cursor/mcp.json |
La configuración MCP es casi identica. Si ya usas DataSpoc MCP con Cursor, cambiar a Windsurf toma 30 segundos — solo copia la configuración del servidor.
Solucion de problemas
El servidor MCP no conecta:
# Test the MCP server manuallydataspoc-lens mcp --test
# Check that the command is in your PATHwhich dataspoc-lensConsultas con timeout:
# Cache frequently queried tablesdataspoc-lens cache refresh raw.ordersdataspoc-lens cache refresh raw.customersCredenciales de AWS incorrectas:
Asegurate de que el AWS_PROFILE en tu configuración MCP coincida con un perfil valido en ~/.aws/credentials, o establece credenciales explicitas:
{ "mcpServers": { "dataspoc-lens": { "command": "dataspoc-lens", "args": ["mcp"], "env": { "AWS_ACCESS_KEY_ID": "AKIA...", "AWS_SECRET_ACCESS_KEY": "...", "AWS_REGION": "us-east-1" } } }}Conecta Windsurf a tu data lake una vez y cada conversacion con IA en tu IDE tiene acceso a datos reales. Sin cambiar de contexto, sin herramienta de BI separada, sin copiar y pegar resultados de consultas. Solo haz preguntas y obtiene respuestas fundamentadas en tus datos reales.