Brazilian Dev MCP
by dan94k
README.md
# Brazilian Dev MCP
Servidor [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) com ferramentas utilitárias para desenvolvedores que trabalham com dados brasileiros — CPF, CNPJ, CEP, telefones, moeda, validações, dados fake e mais.
## Instalação
```bash
git clone https://github.com/dan94k/brazilian-dev-mcp.git
cd brazilian-dev-mcp
npm install
```
## Uso
### Com Claude Desktop
Adicione ao seu `claude_desktop_config.json`:
```json
{
"mcpServers": {
"brazilian-dev": {
"command": "npx",
"args": ["tsx", "caminho/para/brazilian-dev-mcp/src/index.js"]
}
}
}
```
### Com opencode
Adicione ao seu `opencode.json` (no diretório do projeto ou em `~/.config/opencode/opencode.json`):
```json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"brazilian-dev": {
"type": "local",
"command": ["npx", "tsx", "caminho/para/brazilian-dev-mcp/src/index.js"],
"enabled": true
}
}
}
```
Após salvar, reinicie o opencode para que as mudanças tenham efeito.
### Com MCP Inspector (desenvolvimento)
```bash
npm run dev
```
## Tools
| Tool | Descrição | Status |
|------|-----------|--------|
| `validar_cpf` | Valida se um CPF é válido e retorna o motivo da invalidez | ✅ |
| `gerar_cpf` | Gera um CPF válido aleatório (módulo 11) | ✅ |
| `validar_cnpj` | Valida CNPJ (formato numérico e alfanumérico) | ✅ |
| `gerar_cnpj` | Gera um CNPJ válido aleatório (módulo 11) | ✅ |
| `consultar_cep` | Consulta endereço pelo CEP na API ViaCEP | ✅ |
| `validar_cep` | Valida CEP com regex `/^\d{5}-?\d{3}$/` | ✅ |
| `consultar_cotacao` | Consulta cotação de moedas (BRL, USD, EUR) via API AwesomeAPI | ✅ |
| `validar_email` | Valida e-mail com regex | ⬜ |
| `validar_url` | Valida URL usando construtor nativo `URL` | ⬜ |
| `validar_ipv4` | Valida IPv4 (4 octetos de 0-255) | ⬜ |
| `validar_ipv6` | Valida IPv6 (8 grupos de 4 hex) | ⬜ |
| `gerar_lorem` | Gera Lorem Ipsum com X palavras | ⬜ |
| `eh_feriado` | Verifica se uma data é feriado nacional | ⬜ |
| `eh_dia_util` | Verifica se uma data é dia útil | ⬜ |
## Arquitetura
```
src/
index.js → Entrypoint: cria McpServer, conecta StdioServerTransport
registerTools.js → Registra todas as tools no servidor
handlers/ → Um arquivo por tool handler
validateCPF.js
generateCPF.js
validateCNPJ.js
generateCNPJ.js
validateCEP.js
searchCEP.js
getCurrencyQuote.js
```
### Design: Tools independentes
Cada tool é **autocontida**. Os handlers não dependem de outros arquivos do projeto — cada um contém toda a lógica necessária para funcionar. Isso significa que **alguns códigos podem estar duplicados** entre handlers, e isso é intencional. O objetivo é:
- **Zero acoplamento:** cada tool pode ser entendida, testada e modificada isoladamente
- **Facilidade de contribuição:** basta criar um handler novo em `src/handlers/` e registrar em `registerTools.js`
### Convenção de idioma
- **pt-BR (português brasileiro):** tudo que o usuário final vê ou interage — nomes de tools, parâmetros, descrições, mensagens de retorno, propriedades do JSON de resposta.
- **Inglês:** código interno — variáveis, funções, imports, lógica, nomes de arquivos
Exemplo: a tool se chama `validar_cpf`, mas a função interna é `validateCPF`.
## Contribuindo
Contribuições são muito bem-vindas! Sinta-se livre para:
- **Implementar novas tools** da lista de planejadas acima
- **Reportar bugs** via Issues
- **Sugerir novas funcionalidades** que não estão na lista
- **Melhorar documentação** ou testes
### Padrões para novas tools
- Handler exporta uma função nomeada (em inglês)
- Input schema usa `z.object()` do zod
- Handler retorna `{ content: [{ type: "text", text: JSON.stringify(result) }] }`
- Nomes de tools, parâmetros e descrições em **pt-BR**
- Código interno em **inglês**
- Cada handler é independente — não importe outros handlers
## Stack
- **Runtime:** Node.js (ESM)
- **Execução:** tsx
- **Schema:** zod
- **MCP SDK:** @modelcontextprotocol/sdk
- **Testes:** vitest
## Licença
MIT
TDQS
A4/5.0
Scored across 7 tools
Disambiguation5/5
Each tool has a distinct purpose: CPF/CNPJ validation vs generation, CEP validation vs address lookup, and currency quote fetching. No two tools overlap in function.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern in Portuguese (validator, gerar, consultar) with lowercase snake_case, making the naming predictable and uniform.
Tool Count5/5
With 7 tools, the server is well-scoped for its focused domain of Brazilian document/CEP utilities and currency quotes. Each tool earns its place without being excessive.
Completeness5/5
The server covers the core lifecycle for its domain: validate and generate CPF/CNPJ, validate and consult CEP, and fetch currency quotes. There are no obvious missing operations for the stated purpose.
Maintenance
ActivityInactive
ResponsivenessNo issues