Servidor MCP open source para integração segura com a API do Bling ERP
Permite que assistentes baseados em LLM (Claude, etc.) acessem e manipulem dados do Bling ERP através do Model Context Protocol.
⚠️ Projeto não oficial. Não somos afiliados ao Bling Sistemas Ltda.
Este projeto é um fork hardened do bling-mcp v1.0.1, com foco em segurança:
| Aspecto | Original | Pro |
|---|---|---|
| Logs com tokens vazando | ❌ Sim | ✅ Redação automática |
| Validação de config | ❌ Mínima | ✅ Reforçada (HTTPS, formato, tamanho) |
| Rate limiting | ❌ Não tem | ✅ Token bucket configurável |
| Tratamento de erros | ❌ Genérico | ✅ Mensagens por status HTTP |
| Transporte HTTP/SSE | ❌ Comentado | ✅ Funcional |
| Encerramento limpo | ❌ Não tem | ✅ SIGINT/SIGTERM |
| Timeout em requisições | ❌ Não tem | ✅ 30s padrão |
| Documentação | ❌ Incompleta | ✅ Completa |
| Política de segurança | ❌ Não tem | ✅ SECURITY.md |
45+ ferramentas MCP cobrindo:
- 📦 Produtos: listar, obter, criar, atualizar, excluir (individual e em lote)
- 👥 Contatos: CRUD completo + tipos + consumidor final
- 💰 Contas a Pagar: CRUD + baixa de conta
- 💵 Contas a Receber: CRUD + baixa de conta
- 🏷️ Categorias: produtos e receitas/despesas
- 💳 Formas de Pagamento: CRUD completo
- 👔 Vendedores: listar e obter
- 📊 Contas Contábeis: listar
- Node.js 18 ou superior
- Token de acesso à API do Bling (como obter)
# 1. Clone o repositório
git clone https://github.com/marlo01/bling-mcp-pro.git
cd bling-mcp-pro
# 2. Instale as dependências
npm install
# 3. Configure o ambiente
cp .env.example .env
# Edite .env e adicione seu BLING_TOKEN
# 4. Compile
npm run build
# 5. Execute
npm startTodas as configurações são feitas via variáveis de ambiente. Veja .env.example para a lista completa.
BLING_TOKEN=seu_token_aquiBLING_TOKEN=seu_token_aqui
BLING_CLIENT_ID=seu_client_id
BLING_CLIENT_SECRET=seu_client_secret
BLING_REFRESH_TOKEN=seu_refresh_token
LOG_LEVEL=info
RATE_LIMIT_PER_SECOND=3Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"bling": {
"command": "node",
"args": ["/caminho/absoluto/para/bling-mcp-pro/dist/index.js"],
"env": {
"BLING_TOKEN": "seu_token_aqui",
"LOG_LEVEL": "info"
}
}
}
}Para usar como Custom Connector remoto, o servidor agora exige autenticação Bearer obrigatória (desde v2.1.0).
# Linux / macOS
openssl rand -hex 32
# Windows (PowerShell)
-join ((1..32) | ForEach-Object { '{0:x2}' -f (Get-Random -Max 256) })
# Node.js
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"# No seu servidor (VPS, Docker, etc.)
export BLING_TOKEN=seu_token_bling
export MCP_TRANSPORT=sse
export MCP_PORT=4545
export MCP_AUTH_TOKEN=cole_o_token_gerado_acima
npm startSem
MCP_AUTH_TOKEN(ou com menos de 32 caracteres) o servidor recusa iniciar em modo de rede.
Sempre coloque atrás de Nginx/Caddy/Traefik com TLS — o MCP_AUTH_TOKEN viaja no header e precisa de criptografia em trânsito.
Settings → Connectors → Add custom connector
- URL:
https://seu-servidor.com/sse - Header:
Authorization: Bearer cole_o_token_gerado_acima
Em ferramentas que enviem o header automaticamente (curl, fetch, etc.) o formato é:
curl -H "Authorization: Bearer SEU_MCP_AUTH_TOKEN" https://seu-servidor.com/sse
⚠️ Importante:
- Nunca commite
MCP_AUTH_TOKENno Git.- Rotacione o token periodicamente (mensalmente).
- Use um valor diferente de
BLING_TOKEN— eles têm propósitos distintos.
Leia SECURITY.md para detalhes sobre:
- Boas práticas de configuração
- Como reportar vulnerabilidades
- Práticas de segurança aplicadas
Resumo rápido:
- ✅ Tokens nunca aparecem em logs (exceto em
LOG_LEVEL=debug) - ✅ HTTPS obrigatório
- ✅ Rate limiting embutido
- ✅ Validação de configuração na inicialização
Este é um projeto open source mantido voluntariamente. Se ele te ajuda, considere:
- ⭐ Dar uma estrela no GitHub
- 🐛 Reportar bugs e sugerir melhorias
- 🤝 Contribuir com código (PRs são bem-vindos!)
- ☕ Fazer uma doação via [PIX/Ko-fi/GitHub Sponsors] (configure em .github/FUNDING.yml)
Não oferecemos suporte técnico individual. Use as Issues do GitHub para a comunidade ajudar.
Contribuições são muito bem-vindas! Por favor:
- Abra uma issue antes de PRs grandes
- Mantenha o código limpo e tipado
- Não adicione
console.log— uselogger - Não exponha dados sensíveis em logs ou erros
- Atualize o README se mudar comportamento
Este é um fork derivativo do bling-mcp v1.0.1, publicado sob licença MIT em abril de 2025 por autor anônimo. Mantemos a atribuição original na LICENSE.
- Este software é fornecido "como está", sem garantias.
- Use por sua conta e risco.
- Não somos afiliados ou endossados pelo Bling Sistemas Ltda.
- "Bling" é marca registrada de seus respectivos donos.
- Não somos responsáveis por danos decorrentes do uso deste software.
MIT — sinta-se livre para usar, modificar e distribuir.