<div align="center">
<img src="https://raw.githubusercontent.com/MaykeSN/Mochi/main/mochi-logo.png" width="160" alt="mochi" />
🍡 mochi
Rode SQL nos seus bancos MySQL/MariaDB por apelido — do terminal e pelo Claude.
   !Platform
$ mochi vendas "select * from pedidos limit 5"
┌─────────┬──────────┬───────────┐
│ id │ cliente │ status │
├─────────┼──────────┼───────────┤
│ 1050889 │ ACME LTDA│ CONSUMIDO │
│ 1050890 │ FOO S.A. │ LIVRE │
└─────────┴──────────┴───────────┘
(2 linhas)
</div>
---
mochi é uma CLI (e servidor MCP) pra consultar bancos MySQL/MariaDB usando apelidos. Você cadastra suas conexões uma vez e depois é só mochi <apelido> "<query>". Resolve a conexão por apelido, nome do banco ou tag (com desambiguação por host), tem trava de comandos destrutivos, LIMIT automático, export pra CSV/JSON/Excel, histórico, queries salvas e senhas cifradas com DPAPI. Via MCP, o Claude consulta seus bancos direto — sempre pedindo confirmação antes de qualquer alteração.
⚠️ Windows-only. As senhas são protegidas pela DPAPI do Windows.
📦 Instalação
npm install -g @maykesn/mochi
Ou baixe o mochi.exe na página de Releases (não precisa de Node instalado).
🚀 Começando
mochi add # assistente: host, porta, usuário, senha, apelido, tags
mochi list # vê suas conexões
mochi vendas "select * from pedidos limit 10"
Como o mochi escolhe a conexão
- Se a linha começa com SQL (
select,show…) → usa a última conexão usada. - Senão, o primeiro token é o seletor — casa por apelido, nome do banco ou tag.
seletor@hostdesambigua quando o mesmo nome existe em vários hosts (ex:sync@70).
mochi select * from clientes # última conexão
mochi sync select * from pedidos # conexão "sync"
mochi sync@70 show tables # "sync" no host que termina em .70
✨ Recursos
| | | |---|---| | 🏷️ Apelidos & tags | conecte por apelido, banco ou tag, com @host pra desambiguar | | 🛡️ Trava de destrutivo | DELETE/UPDATE/DROP/… exigem -y; --dry-run mostra quantas linhas afetaria | | ✂️ LIMIT automático | SELECT sem LIMIT ganha LIMIT 1000 (ajuste com --limit/--all) | | 📤 Export | --csv, --out arquivo.csv/.json/.xlsx | | 🔎 Schema | mochi tables, mochi describe <tabela> | | 💾 Salvas & histórico | mochi save, mochi q, mochi history | | 🔐 Senhas cifradas | DPAPI do Windows (atreladas à sua conta) | | 🤖 MCP | o Claude consulta seus bancos com confirmação pra alterações |
🧭 Comandos
mochi add cadastra uma conexão (assistente)
mochi list lista as conexões
mochi use / rename / edit / remove gerencia conexões
mochi test [apelido] testa a conexão
mochi tables [apelido] [filtro] lista tabelas
mochi describe [apelido] <tabela> colunas da tabela
mochi which [apelido] mostra qual conexão seria usada
mochi save / q / saved / unsave queries salvas
mochi history [n] últimas queries rodadas
mochi version
Flags
-y, --force confirma comandos destrutivos
--dry-run simula (conta linhas) sem executar
--limit <n> LIMIT automático (padrão 1000) · --all desliga
--page <n> --page-size <n> paginação
-f, --file <a> roda a query de um arquivo .sql
--json | --csv formato de saída
--out <arquivo> salva em .csv / .json / .xlsx
--wide não trunca colunas largas
🔐 Segurança
- Comandos destrutivos são recusados sem
-y. No terminal, antes de confirmar umUPDATE/DELETEo mochi mostra quantas linhas seriam afetadas (via transação + rollback). - LIMIT automático evita puxar milhões de linhas sem querer.
- Senhas ficam cifradas com DPAPI em
%USERPROFILE%\.mochi\secrets.json— atreladas à sua conta do Windows (não abrem em outra máquina/usuário).
🤖 Usar com o Claude (MCP)
Registre o servidor MCP (uma vez):
claude mcp add --scope user mochi -- mochi-mcp
Reinicie o Claude Code e pronto — ferramentas expostas: listar_conexoes, executar_query, testar_conexao, listar_tabelas, descrever_tabela. Comandos destrutivos exigem force=true (o Claude confirma com você antes).
🛠️ Desenvolvimento
git clone https://github.com/MaykeSN/Mochi.git
cd Mochi
npm install
npm test # roda a suíte (node --test)
npm run build:exe # gera dist/mochi.exe
Os dados (conexões, senhas, estado, histórico, salvas) ficam em %USERPROFILE%\.mochi\ — fora do repositório.
📄 Licença
MIT © Mayke Nogueira






