DataClaw MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DataClaw MCP Serveranalyze this sales.csv for trends"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🦅 DataClaw MCP Server
AI-First CSV Analysis Tool — um servidor MCP para agentes de IA e workflows com LLM. Feito para datasets grandes (10k–1M linhas) com precisão cirúrgica.
🚦 Status: v3.2 — em validação com dados reais. O servidor passou da bateria sintética para datasets públicos de verdade (Olist e-commerce, ~1,5 milhão de linhas em 9 arquivos). Essa rodada encontrou 4 defeitos que os testes sintéticos não pegavam — todos já corrigidos e descritos abaixo, com transparência total. O time de testes segue validando com novas bases nas próximas semanas. Deploy em produção previsto para as próximas semanas, condicionado aos itens de segurança listados no fim deste documento.
🧠 O que é o DataClaw?
DataClaw é um servidor Model Context Protocol (MCP) que dá a agentes de IA a capacidade de analisar, consultar e auditar arquivos CSV sem escrever uma linha de código.
A ideia central: o CSV nunca entra no contexto do LLM. O pandas calcula tudo localmente e o agente recebe apenas um JSON de ~10 KB com os números já prontos e rótulos inequívocos. Um arquivo de 1 milhão de linhas e o de 5 mil produzem exatamente a mesma estrutura de resposta — muda só o conteúdo.
Objetivo principal: servir como servidor MCP para agentes de IA, especificamente para uso no OpenClaw.
Related MCP server: CSV Analytics MCP Server
🔒 Princípio de confiabilidade
Nenhuma transformação é silenciosa. Tudo que o servidor faz com os dados volta no JSON, com contagem:
O que acontece | Onde aparece no JSON |
Linha descartada pelo parser |
|
Duplicata encontrada |
|
Duplicata removida |
|
Base usada no cálculo |
|
Texto convertido em número |
|
Variantes de texto unificadas |
|
Data que não pôde ser lida |
|
Métrica inválida substituída |
|
Ranking parcial |
|
Lista cortada por tamanho |
|
Estatísticas de coluna são calculadas sobre o arquivo inteiro, nunca sobre amostra.
Se algum dia houver amostragem, o campo stats_scope diz explicitamente.
O servidor não decide o que é duplicata
Duas linhas idênticas podem ser erro de digitação ou venda legítima (duas unidades do mesmo item no mesmo pedido). O dado sozinho não desempata — então o DataClaw não remove nada por padrão. Ele conta, classifica a confiança e recomenda:
"deduplication": {
"exact_duplicate_rows": 11033,
"rows_removed_total": 11033,
"duplicate_confidence": "baixa",
"confidence_reason": "arquivo transacional (tem data e valor): linhas idênticas
costumam ser itens repetidos legítimos, não erro de digitação",
"duplicate_pct": 9.79,
"recommended_action": "NÃO remover automaticamente; confirme a regra de negócio antes"
}Para analisar sem as duplicatas, é uma escolha explícita: analyze_csv(arquivo, deduplicate=True).
Os dois totais (total_WITH_duplicates e total_WITHOUT_duplicates) vêm sempre no JSON.
🛠️ Tools expostas
Tool | O que faz |
| Estrutura, tipos, nulos e nulos por coluna. Chame primeiro. |
| Análise completa: qualidade, financeiro, tendência mensal, rankings por até 3 dimensões, outliers (IQR + z-score), cancelamentos por dimensão, sazonalidade. |
| Consulta ad-hoc: agrupa, filtra, ordena. Informa sempre se o ranking é completo. |
| Aplica o pipeline de limpeza, salva em |
Todas as tools de leitura aceitam deduplicate: bool = False.
Em clean_csv o padrão é True — limpar é o objetivo dela —, mas ela avisa
(WARNING_DEDUP) quando a confiança na remoção é baixa.
🚀 Instalação e uso
pip install -r requirements.txt
python server.py # sobe via stdioRegistro em um cliente MCP:
{
"mcpServers": {
"dataclaw": {
"command": "python",
"args": ["/caminho/absoluto/para/dataclaw-mcp/server.py"]
}
}
}🧪 Testes
python tests/test_dataclaw.py # 129 checks contra gabarito sintético
python tests/test_mcp_protocol.py # smoke test do protocolo MCP via stdio
python tests/test_dados_reais.py <arquivo|pasta> # valida QUALQUER CSV contra o pandastest_dataclaw.py cobre precisão contra gabarito, conservação, invariância
(5k/50k/150k linhas, metades, ordem embaralhada, latin-1, locale en-US, TAB),
determinismo e robustez (arquivo vazio, prosa, só cabeçalho, linha malformada,
quebra de linha dentro de aspas, coluna inexistente, filtro sem match).
test_dados_reais.py é a ferramenta de validação com dados novos. Aponte para
um CSV ou uma pasta e ele confere o servidor contra o pandas puro, sem gabarito
pré-calculado — serve para qualquer base que o time de testes trouxer:
python tests/test_dados_reais.py ~/dados/vendas_2026.csv
python tests/test_dados_reais.py ~/dados/ # a pasta inteiraEle valida contagem de registros (via csv.reader, respeitando aspas e quebra de
linha), soma/média/mediana/máx/mín contra o pandas, as duas leis de conservação,
coerência entre o total reportado e a base declarada, fechamento do ranking completo,
denúncia de métrica inválida, determinismo e a invariância metade + metade.
📋 Rodada de validação com dados reais — o que foi encontrado e corrigido
Dataset: Olist Brazilian E-Commerce (9 arquivos, ~1,5 milhão de linhas, 123 MB), mais uma planilha de vendas achatada de 112.650 linhas montada por join — o formato que um usuário de negócio realmente manda para o agente.
# | Defeito encontrado | Correção |
1 | Faturamento subestimado em 6,62% (R$ 899.980 de R$ 13,6 mi). O servidor removia 11.033 linhas duplicadas que eram vendas legítimas, e o campo se chamava | Dedup virou opt-in ( |
2 |
| Agora devolve |
3 |
| Dimensões de alta cardinalidade viram fallback quando não há nenhuma estreita. Colunas de data e quase-únicas por linha continuam fora (agrupar por timestamp devolveria um grupo por linha). |
4 | Em | Classificação de confiança ( |
Resultado depois das correções: 129/129 na suíte sintética, 109/109 na validação
com os 9 arquivos reais, 37/37 na bateria específica dos defeitos acima, e o smoke
test MCP verde. O que já estava correto continuou correto: contagem de registros
exata em todos os arquivos (incluindo os 99.224 registros de reviews espalhados em
104.720 linhas físicas por quebra de linha dentro de aspas), soma/média/mediana
idênticas ao pandas, determinismo, filtro insensível a caixa e acento, e 1.000.163
linhas processadas sem erro.
⚠️ Mudança de contrato na v3.2
Quem já consumia o JSON precisa saber:
Antes (v3.1) | Agora (v3.2) |
|
|
|
|
Métricas calculadas sem duplicatas | Calculadas sobre o arquivo inteiro, salvo |
A invariante de conservação agora é
rows_parsed == rows_after_dedup + duplicate_rows_found.
⚠️ Limitações atuais
Variantes de texto só são unificadas quando diferem em caixa, acento, espaço ou pontuação.
S. PauloeSPnão são unificados aSão Paulo— casamento fuzzy traz risco de fundir categorias distintas. Eles aparecem separados no ranking.analyze_csvcobre até 3 dimensões categóricas por rodada. O campocolumns_detected.categorical_dimensions_analyzeddiz quais foram — usequery_csvpara as demais.Colunas com mais de 1000 valores distintos não passam pela unificação de variantes.
A tendência mensal mostra os últimos 12 meses;
monthly_trend_scopeinforma o total.Transporte apenas
stdio;file_pathaceita qualquer caminho do disco local.
🔐 Antes do deploy em produção
O deploy hospedado multiusuário depende destes itens, ainda pendentes:
Transporte HTTP no lugar de
stdioAutenticação por token
Sandbox de arquivos — hoje o servidor lê qualquer caminho da máquina
Limite de tamanho de arquivo e timeout por requisição
Até lá, use apenas localmente ou em ambiente confiável.
🗺️ Próximos passos
✅ Fase 1 — arquitetura JSON e suíte sintética
✅ Fase 2 — validação com dados reais (Olist) e correção dos 4 defeitos
🔄 Fase 3 — validação ampliada pelo time de testes com novas bases reais ← estamos aqui
⏳ Fase 4 — hardening de segurança (HTTP + auth + sandbox)
⏳ Fase 5 — deploy e publicação para os agentes do OpenClaw
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Ask data questions in natural language. Get SQL, insights, and charts from your databases.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
45 AI data tools for agents — crypto, DeFi risk, audits, equities, energy, and more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables conversational analysis of CSV and Parquet files through natural language, providing statistics, summaries, data type information, and comprehensive multi-step data analysis.
- AlicenseNot gradedqualityBmaintenanceA spreadsheet and CSV analysis toolkit for AI agents that enables loading CSV files, filtering and querying data, computing statistics, creating aggregations, building pivot tables, and exporting chart-ready data using pandas.16MIT
- AlicenseNot gradedqualityDmaintenanceEnables querying Excel and CSV files using SQL via natural language, allowing AI assistants to analyze data without manual SQL writing.1MIT
- AlicenseNot gradedqualityDmaintenanceTransforms AI assistants into data analysts by enabling CSV and Google Sheets import, SQL querying, and instant insights through natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bernardcaldas/dataclaw-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server