Br Docs
FreeNot checkedMCP server for validating and generating Brazilian documents (CPF, CNPJ, and bank boletos) with 6 tools, a resource, and a prompt.
About
MCP server for validating and generating Brazilian documents (CPF, CNPJ, and bank boletos) with 6 tools, a resource, and a prompt.
README
Servidor MCP (Model Context Protocol) para validação e geração de documentos brasileiros: CPF, CNPJ e boleto bancário.
O que é
Uma implementação de servidor MCP que expõe 6 ferramentas para validar e gerar documentos brasileiros. Implementa os algoritmos de validação (módulo 11 para CPF e CNPJ, módulo 10 e 11 para boleto) e permite que clientes MCP (Claude, Cursor, etc.) utilizem essas funcionalidades via chamadas de ferramentas.
Funcionalidades e Tecnologias
| Funcionalidade | Descrição | Tecnologia |
|---|---|---|
| Validação de CPF | Valida CPF com algoritmo mod11, aceita formatado e bruto | TypeScript |
| Geração de CPF | Gera CPF válido e aleatório | Pure logic |
| Validação de CNPJ | Valida CNPJ com pesos mod11 específicos | TypeScript |
| Geração de CNPJ | Gera CNPJ válido e aleatório | Pure logic |
| Validação de Boleto | Valida linha digitável (47 dígitos, layout FEBRABAN): mod10 nos 3 campos + DV geral mod11 na posição 33 | TypeScript |
| Parse de Boleto | Extrai banco, valor e vencimento via fator de vencimento (com rollover de 22/02/2025) | Pure logic |
| MCP Tools | Expõe 6 ferramentas via Model Context Protocol | @modelcontextprotocol/sdk |
| MCP Resource | docs://validation-rules com a documentação dos algoritmos |
Markdown |
| MCP Prompt | audit_customer_record para auditar cadastros usando as tools |
Template |
| Testes | 40 testes, incluindo E2E MCP real (Client ↔ Server via InMemoryTransport) | Vitest |
| Clean Architecture | Lógica pura separada da camada MCP | src/domain |
Arquitetura
graph TB
subgraph Client["Cliente MCP (Claude, Cursor)"]
A["Chamada de Tool<br/>ou Leitura de Resource"]
end
subgraph Transport["Transporte"]
B["Stdio Transport<br/>JSON-RPC 2.0"]
end
subgraph Server["br-docs-mcp Server"]
C1["Tool: validate_cpf"]
C2["Tool: generate_cpf"]
C3["Tool: validate_cnpj"]
C4["Tool: generate_cnpj"]
C5["Tool: validate_boleto"]
C6["Tool: parse_boleto"]
C7["Resource: docs://validation-rules"]
C8["Prompt: audit_customer_record"]
end
subgraph Domain["Lógica Pura"]
D1["src/domain/cpf.ts"]
D2["src/domain/cnpj.ts"]
D3["src/domain/boleto.ts"]
end
A --> B --> C1
C1 --> D1
C2 --> D1
C3 --> D2
C4 --> D2
C5 --> D3
C6 --> D3
style Domain fill:#e1f5ff
style Server fill:#f3e5f5
style Transport fill:#fff3e0
Como rodar
Pré-requisitos
- Node.js >= 20
Instalação
npm install
Desenvolvimento
npm run dev
Build
npm run build
Saída em dist/index.js com shebang, pronto para uso via npx br-docs-mcp.
Como testar
Rodar testes
npm test
Modo watch
npm run test:watch
Type check
npm run type-check
Todos os 40 testes rodam 100% offline e cobrem:
- Validação de CPF/CNPJ formatado e bruto
- Rejeição de dígito verificador errado, comprimento inválido, dígitos repetidos
- Roundtrip gerar → validar (20 iterações para CPF e CNPJ)
- Boleto: linha válida construída nos testes (com mod10/mod11 independentes), campos corrompidos, DV geral errado
- Parse de boleto: banco, valor e vencimento — incluindo o rollover do fator (1000 = 22/02/2025) e fator 0000 (sem vencimento)
- E2E MCP real:
ClienteMcpServerconectados porInMemoryTransport.createLinkedPair(), listando as 6 tools, chamandovalidate_cpf, lendo o resource e obtendo o prompt
Uso com clientes MCP
Configuração no Claude Desktop / Cursor
Adicione a entrada no mcp.json:
{
"mcpServers": {
"br-docs-mcp": {
"command": "npx",
"args": ["br-docs-mcp"]
}
}
}
Exemplo de chamada
{
"name": "validate_cpf",
"arguments": {
"cpf": "529.982.247-25"
}
}
Resposta:
{
"valid": true
}
Ferramentas disponíveis
validate_cpf- Valida CPF →{ "valid": true }ou{ "valid": false, "reason": "check digit mismatch" }generate_cpf- Gera CPF válido →{ "cpf": "..." }validate_cnpj- Valida CNPJgenerate_cnpj- Gera CNPJ válidovalidate_boleto- Valida linha digitável de boletoparse_boleto- Extrai dados do boleto →{ "bankCode": "001", "amount": 1500, "dueDate": "2025-02-22" }
Resource disponível
docs://validation-rules- Documentação dos algoritmos
Prompt disponível
audit_customer_record- Audita registros de clientes usando as tools
Estrutura do projeto
.
├── src/
│ ├── domain/
│ │ ├── cpf.ts # Lógica pura de CPF
│ │ ├── cnpj.ts # Lógica pura de CNPJ
│ │ └── boleto.ts # Lógica pura de boleto (layout FEBRABAN)
│ ├── server.ts # Servidor MCP (tools, resource, prompt)
│ ├── validation-rules.ts # Markdown servido pelo resource
│ └── index.ts # Entrypoint stdio (#!/usr/bin/env node)
├── tests/
│ ├── domain/
│ │ ├── cpf.test.ts
│ │ ├── cnpj.test.ts
│ │ └── boleto.test.ts
│ └── e2e/
│ └── server.test.ts
├── package.json # bin: br-docs-mcp → dist/index.js
├── tsconfig.json
├── vitest.config.ts
├── README.md # Este arquivo
├── LICENSE # MIT
└── .gitignore
Publicação no npm
Build e teste
npm run type-check
npm test
npm run build
Publicar
npm publish
O script prepublishOnly garante que testes e build passam antes de publicar.
Origem
Inspirado em conceitos do curso de pós-graduação em Engenharia de Software com IA Aplicada — implementação própria do zero, usando TypeScript e clean architecture para demonstrar:
- Design domain-driven
- Separação de responsabilidades (domain vs. transport)
- Algoritmos de validação (mod11, mod10)
- Model Context Protocol (MCP)
- Test-driven development com Vitest
- Empacotamento npm com tipos
Licença
MIT - Copyright (c) 2026 Vicente Moura
Install Br Docs in Claude Desktop, Claude Code & Cursor
unyly install br-docs-mcpInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add br-docs-mcp -- npx -y github:Mouraovicente/br-docs-mcpFAQ
Is Br Docs MCP free?
Yes, Br Docs MCP is free — one-click install via Unyly at no cost.
Does Br Docs need an API key?
No, Br Docs runs without API keys or environment variables.
Is Br Docs hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Br Docs in Claude Desktop, Claude Code or Cursor?
Open Br Docs on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Notion
Read and write pages in your workspace
by NotionLinear
Issues, cycles, triage — from Claude
by LinearGoogle Drive
Search and read your Drive files
by Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
by mindsdbCompare Br Docs with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All productivity MCPs
