PITCH: Surf Data - Conecte agentes de IA aos seus dados com segurança.
Fala, guys! Meu nome é Diogo Felizardo e estou construindo o Surf Data, uma plataforma SaaS brasileira que resolve um problema que quem trabalha com dados e IA conhece bem: como dar acesso seguro a bancos de dados para agentes de IA sem perder o sono com LGPD, infraestrutura e segurança?
Vou tentar explicar o problema, a solução, como funciona por dentro, os diferenciais, o modelo de negócio e os próximos passos. Bora lá.
O Problema
Se você é data engineer, dev backend ou qualquer pessoa técnica em uma empresa brasileira, já deve ter vivido isso:
"O time de marketing quer um agente de IA que responda perguntas sobre métricas de vendas."
"O time de suporte quer um chatbot que consulte dados de clientes."
"O time de produto quer um assistente que analise dados de uso."
Todos querem a mesma coisa: um agente de IA que converse com o banco de dados. E a tarefa de construir isso cai no seu colo.
O que acontece na prática:
- Complexidade — Você precisa entender o protocolo MCP (Model Context Protocol), montar a infra, criar endpoints, lidar com autenticação, parsing de queries, rate limiting...
- Custo — São semanas (às vezes meses) de trabalho de engenharia que não é core business da empresa
- Risco — Um erro e você expõe CPFs, emails, dados financeiros. A LGPD prevê multas de até 2% do faturamento
- Manutenção — Depois de construído, precisa manter. Atualizar dependências, monitorar, escalar...
O resultado? A maioria das empresas desiste ou gasta sprints inteiros em infraestrutura que deveria levar minutos.
A Solução: Surf Data
O Surf Data transforma o que seria um projeto de semanas em um setup de minutos. É uma plataforma managed que te dá um servidor MCP pronto, com segurança, mascaramento de PII e compliance LGPD built-in.
O Fluxo
flowchart LR
A["1. Conecte sua base de dados"] --> B["2. Crie queries SQL"]
B --> C["3. Configure PII masking"]
C --> D["4. Publique URL MCP"]
D --> E["5. Agente consome dados"]
style A fill:#3b82f6,color:#fff
style B fill:#8b5cf6,color:#fff
style C fill:#f59e0b,color:#fff
style D fill:#10b981,color:#fff
style E fill:#06b6d4,color:#fff
Passo 1: Conecte seu banco de dados
PostgreSQL ou MySQL. Basta informar host, porta, database, user e password. As credenciais são criptografadas com AES-256 antes de serem armazenadas e nunca ficam em texto plano.
Passo 2: Crie SQL Tools
Cada tool é uma query SQL com nome, descrição e parâmetros. Pense nelas como "funções" que o agente pode chamar. Exemplo:
-- Tool: buscar_vendas_por_periodo
-- Descrição: Retorna vendas agregadas por mês dentro de um período
SELECT
DATE_TRUNC('month', created_at) AS mes,
COUNT(*) AS total_vendas,
SUM(valor) AS receita_total,
AVG(valor) AS ticket_medio
FROM vendas
WHERE created_at BETWEEN {{data_inicio}} AND {{data_fim}}
GROUP BY DATE_TRUNC('month', created_at)
ORDER BY mes DESC
O agente recebe a descrição da tool e sabe quando usá-la. Se o usuário pergunta "quais foram as vendas do último trimestre?", o agente chama buscar_vendas_por_periodo com os parâmetros corretos.
Passo 3: Configure mascaramento de PII
Aqui é onde a LGPD entra. Para cada coluna que contém dados sensíveis, você define uma regra de mascaramento. O sistema detecta automaticamente colunas como cpf, email, telefone, nome_completo e sugere o mascaramento adequado.
Passo 4: Publique
Você recebe uma URL MCP e um token Bearer. Plugue no Claude, no GPT, no seu agente custom, qualquer coisa que fale MCP.
Arquitetura Técnica
Para os curiosos de plantão, aqui vai como o Surf Data funciona por dentro. A stack é moderna e focada em performance:
graph TB
subgraph Cliente
Agent["Agente de IA"]
end
subgraph Plataforma
MCP["MCP Endpoint"]
Auth["Auth Layer"]
SQL["SQL Engine"]
PII["PII Masking"]
Limits["Usage Tracker"]
Logs["Invocation Logs"]
end
subgraph Databases
PG[("PostgreSQL")]
MY[("MySQL")]
end
Agent -->|JSON-RPC| MCP
MCP --> Auth
Auth --> SQL
SQL --> PII
SQL --> Limits
SQL --> Logs
SQL --> PG
SQL --> MY
PII -->|Dados mascarados| MCP
MCP -->|Response| Agent
style MCP fill:#3b82f6,color:#fff
style Auth fill:#ef4444,color:#fff
style PII fill:#f59e0b,color:#fff
style Limits fill:#8b5cf6,color:#fff
Stack
| Camada | Tecnologia |
|---|---|
| Framework | Next.js 16 (App Router) com TypeScript strict |
| Estilização | Tailwind CSS v4 + shadcn/ui |
| Banco | PostgreSQL via Prisma v7 |
| Auth | Clerk (com Organizations) |
| Billing | Stripe |
| Resend (alertas, digest semanal) | |
| Editor SQL | Monaco Editor (mesmo do VS Code) |
| IA | Vercel AI SDK + Anthropic |
| Testes | Vitest |
Endpoint MCP
O coração do produto é o endpoint MCP que implementa o protocolo JSON-RPC 2.0 via HTTP. Quando um agente faz uma chamada:
- Autenticação. Token Bearer no formato
sk_live_<base64url>, armazenado como hash SHA-256. Zero chance de leak em plaintext - Validação SQL. Queries passam por um parser que bloqueia padrões perigosos:
DROP,DELETE,INSERT,UPDATE,ALTER. Somente leitura - AgentViews como CTEs. Views SQL criadas pelo usuário são injetadas como CTEs nas queries, permitindo composição sem risco
- Execução. Query executada no banco do cliente via connection pool cacheado (singleton por datasource)
- PII Masking. Resultados passam pelo engine de mascaramento antes de retornar ao agente
- Limites. Verificação de quota mensal (execuções, usuários, datasources por plano)
- Logging. Invocação registrada de forma assíncrona com stats por hora para o dashboard de analytics
Segurança em Profundidade
flowchart TD
A["Request do Agente"] --> B["Token Bearer"]
B --> C{"Hash SHA-256 valido?"}
C -->|Nao| D["401 Unauthorized"]
C -->|Sim| E["SQL Validation"]
E --> F{"SQL perigoso?"}
F -->|Sim| G["403 Forbidden"]
F -->|Nao| H["Execucao read-only"]
H --> I["PII Masking Engine"]
I --> J{"Dados sensiveis?"}
J -->|Sim| K["Mascaramento aplicado"]
J -->|Nao| L["Dados originais"]
K --> M["Response"]
L --> M
style D fill:#ef4444,color:#fff
style G fill:#ef4444,color:#fff
style K fill:#f59e0b,color:#fff
style M fill:#10b981,color:#fff
A segurança não é um add-on, é a base:
- Credenciais criptografadas com AES-256 em repouso
- Tokens como hashes. Mesmo com acesso ao banco, não é possível reconstruir o token original
- Read-only enforced. Sem exceções, sem bypass
- PII masking. 18 tipos de dados sensíveis detectados automaticamente
- Rate limiting. Por plano, por organização, por mês
- Audit trail. Toda invocação é registrada com timestamp, tool, parâmetros e resultado
Mascaramento de PII - O Diferencial LGPD
A LGPD (Lei Geral de Proteção de Dados) é lei desde 2020, mas a realidade é que a maioria das empresas ainda não tem controles adequados, especialmente quando dados são consumidos por IA.
O Surf Data detecta automaticamente 18 tipos de dados sensíveis, incluindo categorias específicas do contexto brasileiro:
| Categoria | Exemplos de colunas detectadas | Mascaramento |
|---|---|---|
| CPF | cpf, nr_cpf, num_cpf | ***.***.***-** |
| CNPJ | cnpj, nr_cnpj | **.***.****/****-** |
| RG | rg, identidade, nr_rg | ******* |
email, e_mail, correio | j***@***.com | |
| Telefone | telefone, celular, phone | (**) *****-**** |
| Nome | nome, nome_completo, full_name | J*** S*** |
| Endereço | endereco, logradouro, cep | Rua ***, nº *** |
| Cartão de Crédito | cartao, credit_card, card_number | ****-****-****-1234 |
| Dados de Saúde | diagnostico, health_data | [REDACTED] |
| Dados Biométricos | biometria, fingerprint | [REDACTED] |
| Opinião Política | partido, political_opinion | [REDACTED] |
| Crença Religiosa | religiao, religious_belief | [REDACTED] |
| Orientação Sexual | orientacao_sexual | [REDACTED] |
| Origem Étnica | etnia, ethnic_origin | [REDACTED] |
| IP | ip_address, ip_origem | ***.***.***.*** |
| Data de Nascimento | data_nascimento, birth_date | **/**/**** |
| Salário | salario, remuneracao, salary | R$ ***,** |
| Genético | dados_geneticos, genetic | [REDACTED] |
A detecção funciona por pattern matching nos nomes das colunas em português e inglês. O sistema sugere automaticamente as regras, e o usuário pode ajustar, ativar ou desativar individualmente.
Dados sensíveis especiais (saúde, biometria, genéticos, opiniões políticas, etc.) são completamente redacted. Nem o agente de IA recebe esses dados.
Funcionalidades Principais
Editor SQL com Monaco
O mesmo editor do VS Code, com syntax highlighting, autocomplete e validação. Escrever queries é tão confortável quanto no seu IDE favorito.
AgentViews
Views SQL nomeadas que funcionam como CTEs. Permitem encapsular lógica de negócio complexa e reutilizar entre múltiplas tools. O agente não precisa saber dos JOINs de 15 tabelas, ele só vê a view limpa.
Criação de Tools com IA
Descreva o que você quer em linguagem natural e a IA gera a query SQL, os parâmetros e a descrição da tool. Utiliza Vercel AI SDK + Anthropic.
Dashboard de Analytics
Visualize quantas execuções foram feitas, quais tools são mais usadas, tempo médio de resposta, erros. Stats agregados por hora para performance.
O que já está pronto
- Endpoint MCP completo com JSON-RPC 2.0
- Suporte a PostgreSQL e MySQL
- Engine de PII masking com 18 tipos e auto-detecção
- Auth com Clerk Organizations + RBAC
- Billing com Stripe
- Dashboard com analytics de uso
- Editor SQL com Monaco
- Alertas de uso por email
- Digest semanal automático
- Criptografia AES-256 para credenciais
- Tokens como SHA-256 hashes
- SQL validation (read-only enforced)
- i18n (PT-BR e EN)
Feedback
Estou construindo isso em público e o feedback da comunidade é essencial. Se você:
- Trabalha com dados e IA? Me conta como você resolve esse problema hoje
- Se preocupa com LGPD? Me diz se os 18 tipos de PII cobrem seu caso de uso
- Quer testar? Acessa a plataforma e me diz o que achou
- Tem sugestões? Comenta aqui, vou responder tudo
TL;DR: Surf Data é um MCP server managed que conecta sua base de dados a agentes de IA em minutos, com mascaramento de PII nativo para LGPD e segurança enterprise.
Obrigado por ler até aqui! 🏄♂️