windsurfmcpai-agentsidedata-analysis

Analisis de datos desde Windsurf IDE con DataSpoc MCP

Michael San Martim · 2026-04-28

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

Terminal window
pip install dataspoc-lens

Configura tu bucket:

Terminal window
dataspoc-lens add-bucket s3://my-company-data --name production
dataspoc-lens tables # verify connection

Paso 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:

  1. Llama a get_schema para tablas relevantes
  2. Escribe una consulta SQL con agregacion mensual
  3. Llama a run_query para ejecutarla
  4. 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,100
Average monthly growth: 12.8%
Revenue is accelerating. March saw 16.3% growth, nearly double
January's baseline. Order count is growing faster than average
order 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 days
with unusual signup counts.

Windsurf consulta los datos y responde:

I analyzed daily signups for the past 30 days. The average is 42
signups/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 Hunt
launch (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 is
extremely 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 a
PDF 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:

CaracteristicaWindsurfCursor
Soporte MCPSiSi
Modelo de IACodeium + configurableConfigurable (Claude, GPT)
Flujo de análisis de datosPanel de IA + inlineChat + Composer
Edicion multi-archivoFlujo CascadeComposer
Nivel gratuitoGenerosoLimitado
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:

Terminal window
# Test the MCP server manually
dataspoc-lens mcp --test
# Check that the command is in your PATH
which dataspoc-lens

Consultas con timeout:

Terminal window
# Cache frequently queried tables
dataspoc-lens cache refresh raw.orders
dataspoc-lens cache refresh raw.customers

Credenciales 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.

Recomendados