cursormcpdata-analysisai-agentside

Analise Seu Data Lake pelo Cursor IDE com DataSpoc MCP

Michael San Martim · 2026-04-23

O Cursor é um editor de código alimentado por IA. O DataSpoc Lens expõe um data lake como servidor MCP. Conecte-os e o Cursor se torna um ambiente de análise de dados — explore schemas, escreva SQL, gere gráficos e construa relatórios sem sair do editor.

Configuração

1. Instalar DataSpoc Lens

Terminal window
pip install dataspoc-lens[mcp]

2. Configurar as Configurações MCP do Cursor

Abra as configurações do Cursor e navegue até a configuração MCP. Adicione o servidor DataSpoc Lens.

Crie ou edite .cursor/mcp.json na raiz do seu projeto:

{
"mcpServers": {
"dataspoc-lens": {
"command": "dataspoc-lens",
"args": ["mcp"],
"env": {
"DATASPOC_BUCKET": "s3://my-company-data"
}
}
}
}

Para GCS:

{
"mcpServers": {
"dataspoc-lens": {
"command": "dataspoc-lens",
"args": ["mcp"],
"env": {
"DATASPOC_BUCKET": "gs://my-company-data"
}
}
}
}

3. Reiniciar o Cursor

Após salvar a configuração, reinicie o Cursor. O servidor MCP iniciará automaticamente, e a IA do Cursor descobrirá as ferramentas disponíveis.

O Que o Cursor Pode Fazer Agora

Descobrir Tabelas

No chat do Cursor, digite:

What tables are available in my data lake?

O Cursor chama lens.tables() via MCP:

Your data lake contains 8 tables:
raw_postgres_orders - 245,000 rows
raw_postgres_customers - 18,200 rows
raw_stripe_payments - 892,000 rows
raw_hubspot_contacts - 34,500 rows
curated_sales - 245,000 rows
curated_customer_360 - 18,200 rows
gold_revenue_by_region - 48 rows
gold_monthly_metrics - 36 rows

Explorar Schemas

What columns does curated_sales have? Show me sample data.

O Cursor chama lens.schema() e lens.query():

curated_sales schema:
order_id VARCHAR
customer_id VARCHAR
product VARCHAR
category VARCHAR
amount DOUBLE
quantity INTEGER
region VARCHAR
sale_date DATE
payment_method VARCHAR
Sample data (5 rows):
| order_id | customer_id | product | amount | region | sale_date |
|----------|-------------|----------------|---------|----------------|------------|
| ORD-001 | CUST-042 | Widget Pro | 299.99 | North America | 2026-03-15 |
| ORD-002 | CUST-108 | Widget Basic | 49.99 | Europe | 2026-03-15 |
| ORD-003 | CUST-042 | Gadget Plus | 599.00 | North America | 2026-03-16 |

Escrever Queries Analíticas

Show me revenue trends by month for the last 6 months, broken down by region.

O Cursor gera e executa:

SELECT
DATE_TRUNC('month', sale_date) AS month,
region,
SUM(amount) AS revenue,
COUNT(*) AS orders,
ROUND(AVG(amount), 2) AS avg_order_value
FROM curated_sales
WHERE sale_date >= '2025-10-01'
GROUP BY month, region
ORDER BY month, revenue DESC

E exibe os resultados diretamente no chat.

Gerar Código de Análise

Peça ao Cursor para criar um script Python de análise baseado nos dados que ele acabou de descobrir:

Write a Python script that analyzes customer cohorts by signup month
and tracks their monthly spending over time. Use dataspoc_lens to query.

O Cursor escreve diretamente no seu editor:

"""Customer cohort analysis using DataSpoc Lens."""
import pandas as pd
import matplotlib.pyplot as plt
from dataspoc_lens import LensClient
lens = LensClient()
# Get customer cohorts (signup month) with their spending over time
df = lens.query("""
WITH cohorts AS (
SELECT
customer_id,
DATE_TRUNC('month', MIN(sale_date)) AS cohort_month
FROM curated_sales
GROUP BY customer_id
),
monthly_spend AS (
SELECT
s.customer_id,
DATE_TRUNC('month', s.sale_date) AS spend_month,
SUM(s.amount) AS monthly_total
FROM curated_sales s
GROUP BY s.customer_id, spend_month
)
SELECT
c.cohort_month,
m.spend_month,
DATEDIFF('month', c.cohort_month, m.spend_month) AS months_since_signup,
COUNT(DISTINCT m.customer_id) AS active_customers,
SUM(m.monthly_total) AS total_revenue,
AVG(m.monthly_total) AS avg_spend_per_customer
FROM cohorts c
JOIN monthly_spend m ON c.customer_id = m.customer_id
WHERE c.cohort_month >= '2025-07-01'
GROUP BY c.cohort_month, m.spend_month, months_since_signup
ORDER BY c.cohort_month, months_since_signup
""")
# Pivot for cohort retention chart
pivot = df.pivot_table(
index="cohort_month",
columns="months_since_signup",
values="active_customers",
aggfunc="sum"
)
# Calculate retention rates
retention = pivot.div(pivot[0], axis=0) * 100
# Plot
fig, ax = plt.subplots(figsize=(12, 8))
import seaborn as sns
sns.heatmap(
retention,
annot=True,
fmt=".0f",
cmap="YlOrRd_r",
ax=ax,
vmin=0,
vmax=100,
)
ax.set_title("Customer Cohort Retention (%)")
ax.set_xlabel("Months Since Signup")
ax.set_ylabel("Cohort Month")
plt.tight_layout()
plt.savefig("cohort_retention.png", dpi=150)
plt.show()
print("Chart saved to cohort_retention.png")

Você pode executar isso diretamente no terminal do Cursor.

Construir Gráficos Interativamente

Create a bar chart showing the top 10 products by revenue this quarter.

O Cursor consulta os dados e gera o código de visualização:

from dataspoc_lens import LensClient
import matplotlib.pyplot as plt
lens = LensClient()
df = lens.query("""
SELECT product, SUM(amount) AS revenue
FROM curated_sales
WHERE sale_date >= '2026-01-01'
GROUP BY product
ORDER BY revenue DESC
LIMIT 10
""")
fig, ax = plt.subplots(figsize=(10, 6))
ax.barh(df["product"][::-1], df["revenue"][::-1])
ax.set_xlabel("Revenue ($)")
ax.set_title("Top 10 Products by Revenue — Q1 2026")
for i, (val, name) in enumerate(zip(df["revenue"][::-1], df["product"][::-1])):
ax.text(val + 1000, i, f"${val:,.0f}", va="center", fontsize=9)
plt.tight_layout()
plt.savefig("top_products.png", dpi=150)
plt.show()

Gerar Relatórios em Markdown

Write a weekly metrics report for the last 7 days. Include revenue,
order count, top products, and regional breakdown. Format as markdown.

O Cursor consulta o lake múltiplas vezes e monta um relatório:

# Weekly Metrics Report: April 8-14, 2026
## Summary
- **Total Revenue**: $987,000 (+8.3% vs prior week)
- **Orders**: 3,420 (+5.1% vs prior week)
- **Average Order Value**: $288.60 (+3.0% vs prior week)
## Daily Revenue
| Date | Revenue | Orders |
|------|---------|--------|
| Apr 8 | $142,000 | 490 |
| Apr 9 | $138,000 | 478 |
| Apr 10 | $145,000 | 502 |
| Apr 11 | $151,000 | 523 |
| Apr 12 | $133,000 | 461 |
| Apr 13 | $128,000 | 443 |
| Apr 14 | $150,000 | 523 |
## Top 5 Products
1. Widget Pro — $124,000 (12.6%)
2. Gadget Plus — $98,000 (9.9%)
...

O Fluxo de Trabalho

O fluxo de trabalho típico Cursor + DataSpoc:

  1. Abra o Cursor no diretório do seu projeto
  2. Pergunte sobre dados — o Cursor descobre tabelas e schemas via MCP
  3. Itere nas queries — refine SQL baseado nos resultados, tudo no chat
  4. Gere código — peça ao Cursor para escrever scripts Python que usam LensClient
  5. Execute e refine — execute no terminal do Cursor, revise a saída, itere
  6. Salve artefatos — gráficos, relatórios e scripts de análise ficam no seu projeto

Comparação: BI Tradicional vs Jupyter vs CLI vs Cursor

TarefaFerramenta BI (Metabase)JupyterCLI (dataspoc-lens)Cursor + MCP
Explorar tabelasClicar na UIlens.tables()dataspoc-lens tables”What tables exist?”
Escrever SQLEditor SQLCélula com lens.query()Pipe para comando”Show me revenue by month”
Gerar gráficosArrastar e soltarCódigo MatplotlibExportar + ferramenta separada”Create a bar chart”
Escrever relatóriosDashboardCélulas MarkdownManual”Write a weekly report”
IterarAtualizar dashboardRe-executar célulasRe-executar comandoContinuar conversa
Salvar trabalhoLink do dashboardArquivo .ipynbHistórico do shellArquivos .py no projeto
Curva de aprendizadoMédiaMédiaBaixaBaixa

O Cursor com MCP combina a interface em linguagem natural de uma ferramenta BI com a geração de código do Jupyter e a velocidade de um CLI. Você descreve o que quer, o Cursor escreve o código, e você o executa.

Dicas para Análise de Dados Eficaz no Cursor

Comece com exploração:

What tables are available? Show me the schema of the largest table.

Seja específico sobre intervalos de tempo:

Revenue by product category for March 2026 only, excluding returns.

Peça comparações:

Compare this month vs last month for all key metrics.
Show percentage changes.

Solicite código reutilizável:

Write a function I can reuse to generate monthly reports.
Take the month as a parameter.

Encadeie análises:

First show me which customers churned last month.
Then analyze what they had in common (plan, region, usage).
Then suggest retention strategies based on the patterns.

Segurança

A integração MCP do Cursor herda todas as propriedades de segurança do DataSpoc:

  • Somente leitura: O servidor MCP rejeita SQL de escrita
  • Cloud IAM: Usa suas credenciais existentes (AWS SSO, gcloud, Azure CLI)
  • Escopo definido: Acessa apenas o bucket que você configurar
  • Auditável: Toda query é SQL que é registrado em log

Seus dados permanecem no seu bucket na nuvem. A IA do Cursor gera SQL, o Lens o executa localmente via DuckDB, e os resultados ficam na sua máquina. Nenhum dado sai do seu ambiente a menos que você exporte explicitamente.

Recomendados