Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Simples Nacional conferido contra a LC 123 e a LC 214: alíquota, DAS, repartição, Fator R e CNAE
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
claude mcp add simples-nacional-br -- uvx simples-nacional-brPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"simples-nacional-br": {
"command": "uvx",
"args": [
"simples-nacional-br"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"simples-nacional-br": {
"type": "stdio",
"command": "uvx",
"args": [
"simples-nacional-br"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account peterwkdev-creator, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.7.1) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB, Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Tool Guardian
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Too many MCP servers eating your context? A router that loads each tool's schema only when needed.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Alíquota efetiva, valor do mês e Fator R do Simples Nacional, conferidos faixa a faixa contra as tabelas oficiais da Lei Complementar 123/2006 (redação da LC 155/2016) e, de 2027 em diante, da LC 214/2025. Python puro, só a biblioteca padrão, Decimal do começo ao fim.
[Experimente no navegador](https://peterwkdev-creator.github.io/simples-nacional-br/): a página roda esta mesma biblioteca, testada, no seu navegador (Pyodide): alíquota efetiva, valor do mês, a parte de cada tributo (também da empresa com menos de 12 meses, pela receita de cada mês) e, com o Fator R, a folha que leva ao Anexo III e quanto muda o DAS. Nenhum número sai do seu computador. Na primeira visita o navegador baixa cerca de 6 MB (o Python do Pyodide; a biblioteca são 61 KB); depois, cada conta leva de 0 a 2 ms (medido na página publicada em 10/10/2026).
É estimativa, não consultoria tributária. Não substitui o PGDAS-D nem o
contador. Todos os exemplos usam números inventados.
pip install simples-nacional-br
Python 3.9 ou mais novo, sem nenhuma outra dependência. Testado a cada push com Python 3.9 a 3.14 (Linux) e 3.13 (Windows).
A instalação traz quatro comandos:
| Comando | Para quê |
|---|---|
simples-nacional | o DAS do mês: alíquota efetiva, valor e avisos |
simples-nacional-cnae | o anexo de uma atividade (CNAE), com o fundamento na lei |
simples-nacional-mcp | o servidor MCP, para o Claude e outros assistentes ("Servidor MCP", abaixo) |
simples-nacional-br | o mesmo servidor MCP, com o nome do pacote (o que uvx simples-nacional-br roda) |
Primeira conta: empresa do Anexo III com R$ 600 mil de receita nos últimos 12 meses (o RBT12) e R$ 50 mil no mês.
simples-nacional --ano 2026 --anexo III --rbt12 600000 --receita-mes 50000
Tabela do ano-calendário 2026: LC 123/2006, Anexos I a V, redação da LC 155/2016 (para outro ano de apuração, use --ano)
Anexo III, 3ª faixa (até R$ 720.000,00): alíquota nominal 13,5000%, parcela a deduzir R$ 17.640,00 Alíquota efetiva: 10,5600% = (RBT12 × Aliq - PD) / RBT12 (LC 123, art. 18, § 1º-A) Valor do mês: R$ 5.280,00 = R$ 50.000,00 × 10,5600% Estimativa conferida contra a tabela da lei: não substitui o PGDAS-D nem o contador.
simples-nacional --help mostra todas as opções. Sem --ano, vale o ano corrente, e a primeira linha diz qual tabela foi usada.
Outras formas:
pip install "git+https://github.com/peterwkdev-creator/simples-nacional-br@v1.7.0";git clone): python -m unittest roda os testes, e python -m simples_nacional faz a mesma conta.from simples_nacional import aliquota_efetiva, anexo_por_fator_r, avisos, valor_devido
aliquota_efetiva("I", 4_500_000, ano=2026) # Decimal('0.106') valor_devido("I", 4_500_000, "375000", ano=2026) # Decimal('39750.00') anexo_por_fator_r(280_000, 1_000_000) # 'III' avisos(4_500_000, ano=2026) # ['RBT12 acima do sublimite ...']
ano é o ano-calendário do mês de apuração, não o de hoje: o DAS de dezembro de 2026, calculado em janeiro de 2027, usa a tabela de 2026. Valores em Decimal, int ou str; float é recusado, porque erra centavo. RBT12 acima de R$ 4,8 milhões levanta LimiteExcedido (um ValueError). Sublimite, início de atividade e a leitura de números no formato brasileiro estão em "Mais exemplos", abaixo.
A alíquota efetiva não é a alíquota impressa no anexo. LC 123, art. 18, § 1º-A:
alíquota efetiva = (RBT12 × alíquota nominal − parcela a deduzir) / RBT12
RBT12 é a receita bruta dos 12 meses anteriores ao período de apuração (a partir de 2027, dos 12 meses antecedentes ao mês anterior: para apurar março, de fevereiro do ano anterior a janeiro; LC 123, art. 18, § 1º, na redação da LC 214/2025). Um comércio com RBT12 de R$ 4.500.000,00 está na 6ª faixa do Anexo I (nominal 19%, parcela a deduzir R$ 378.000,00):
(4.500.000 × 19% − 378.000) / 4.500.000 = 477.000 / 4.500.000 = 10,60%
Aplicar a nominal de 19% dá R$ 855.000,00 no ano, onde a lei dá R$ 477.000,00. É o erro relatado em mcp-fiscal-brasil#146.
Fora do escopo, entre outros: sublimites estaduais, exportação e MEI. A lista completa e a fonte legal de cada regra estão em "Fontes e limites", abaixo.
Arredondamento: a lei não fixa regra. A alíquota efetiva guarda todos os dígitos; o valor do mês é arredondado em centavos com ROUND_HALF_UP. As contas usam um contexto Decimal próprio (28 dígitos): um getcontext().prec mudado no programa de quem usa a biblioteca não muda o resultado. Na linha de comando, a efetiva da linha "Valor do mês" sai com as casas (4 ou mais) que fecham a conta no centavo, e o Fator R é cortado, não arredondado, na 4ª casa: 27,99999% aparece 27,9999%, ao lado do Anexo V.
from simples_nacional import (aliquota_efetiva, valor_devido, valor_devido_acima_do_sublimite,
valor_devido_inicio_atividade)
aliquota_efetiva("I", 4_500_000, ano=2027) # Decimal('0.105'): 6ª faixa de 2027
aliquota_efetiva("I", 4_500_000, ano=2026, icms_iss_no_das=True) # Decimal('0.14740600') valor_devido("I", 4_500_000, "375000", ano=2026, icms_iss_no_das=True) # Decimal('55277.25')
aliquota_efetiva("I", 4_500_000, ano=2027, icms_iss_no_das=True) # Decimal('0.14661612')
valor_devido_acima_do_sublimite("III", 4_000_000, 500_000, 3_400_000, ano=2026) # Decimal('113563.08')
valor_devido_inicio_atividade("I", [30_000, 50_000], ano=2026) # Decimal('2825.00') valor_devido_inicio_atividade("I", [400_000], ano=2027) # Decimal('16000.00'), 1ª faixa
Na linha de comando, o ICMS ou o ISS pela 5ª faixa vem com --icms-iss-no-das, e a saída mostra as duas parcelas da efetiva:
python -m simples_nacional --ano 2026 --anexo I --rbt12 4500000 --receita-mes 375000 --icms-iss-no-das
Até 2026, --receita-ano (a receita do ano antes do mês de apuração) calcula o mês em que ela passa do sublimite e mostra cada parcela:
python -m simples_nacional --ano 2026 --anexo III --rbt12 4000000 --receita-mes 500000 --receita-ano 3400000
Na linha de comando, o início de atividade vai em --receitas, separadas por ponto e vírgula, no lugar de --rbt12 e --receita-mes:
python -m simples_nacional --ano 2026 --anexo I --receitas "30.000;50.000"
Com --mes-inicio (o mês do calendário em que a atividade começou, de 1 a 12), a saída confere a receita do ano de início contra o limite e o sublimite proporcionais; sem ele, avisa quando a receita passa de R$ 300.000,00 por mês e pede o mês. Na API, o mesmo vem de avisos_inicio_atividade(receitas, mes_inicio, ano=...):
from simples_nacional import avisos_inicio_atividade
avisos_inicio_atividade([300_000, 400_000], 11, ano=2026)
Na linha de comando e em ler_numero, números aceitos: 4500000, 4500000.00, 1000,50, 1.000,50 e 360.000 (ponto seguido de três dígitos é milhar), com ou sem R$ na frente e espaço nas pontas, como o Excel copia a célula (R$ 1.000,50). O que é ambíguo, como 1,000.50 ou 100 000, dá erro em vez de virar outro número. --version mostra a versão instalada.
A mesma leitura e a saída no formato brasileiro são públicas, para quem integra a biblioteca num sistema:
from decimal import Decimal
from simples_nacional import ler_numero, para_decimal, porcentagem, reais
ler_numero("360.000") # Decimal('360000'); ambíguo: ValueError para_decimal("1000.50", "receita") # Decimal('1000.50'); float: TypeError para_decimal("360.000", "receita") # Decimal('360.000'): ponto decimal, como no Decimal porcentagem(Decimal("0.0565")) # '5,6500%' reais(Decimal("4800000")) # '4.800.000,00'
Na API, o texto vai com ponto decimal, como no Decimal: "360.000" é
ler_numero.Only the beginning is shown; read the rest in the repo