simples-nacional-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@simples-nacional-mcpUma empresa de serviços com RBT12 de R$ 1 milhão e folha de R$ 250 mil: qual anexo, e quanto paga?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
simples-nacional-mcp
Servidor MCP para cálculo do Simples Nacional. Sete ferramentas, tabelas vindas da lei, e duas que existem para impedir a conclusão errada mais comum.
pip install simples-nacional-mcpPor que existe
Pergunte a um assistente quanto uma empresa paga de imposto no Simples e ele vai calcular a alíquota efetiva — que é a carga do DAS, não a carga tributária. A diferença não é sutil:
O DAS do Anexo IV não abrange a contribuição patronal. São 20% sobre a folha, mais RAT, recolhidos à parte. Pela alíquota, o Anexo IV parece mais barato que o Anexo III. Não é.
Cruzar o sublimite de R$ 3,6 mi reduz a alíquota do DAS, porque ICMS e ISS saem dele. A carga não cai; ela se reparte.
Receita monofásica ou com ICMS-ST muda a conta em direções opostas conforme a posição na cadeia: quem produz recolhe o concentrado por fora, quem revende segrega e reduz o DAS.
A ferramenta carga_fora_do_das existe para que o assistente diga isso em vez de entregar um número redondo e errado.
Related MCP server: Dichiarino
Ferramentas
Ferramenta | O que responde |
| DAS do mês, alíquota efetiva, faixa, tributos no DAS, bandeiras de sublimite e de saída do regime. Aceita |
| Anexo III ou V, pelo Fator R, com a razão e a norma |
| Setores com regime especial: bebidas alcoólicas e frias, medicamentos, cosméticos, autopeças, pneus, combustíveis |
| O que a alíquota não cobre, e se cada item acrescenta ou reduz |
| Quanto se paga a mais por não segregar receita monofásica ou com ICMS-ST |
| Os cinco anexos por carga total, somando a CPP que o Anexo IV deixa fora do DAS |
| Indébito de várias competências, separando o que prescreveu |
O número que ninguém calcula
Um bar no Anexo I, RBT12 de R$ 900 mil, receita mensal de R$ 80 mil sendo R$ 60 mil em cerveja:
DAS sem segregar | R$ 6.560,00 |
DAS segregado | R$ 4.149,20 |
Pago a mais | R$ 2.410,80/mês |
São 37% do DAS, quase R$ 29 mil por ano, e é indébito recuperável. Cerveja é monofásica de PIS/COFINS e tem ICMS-ST, então 49% da alíquota daquela faixa corresponde a tributos já recolhidos na cadeia.
quantificar_segregacao calcula isso. Acima do sublimite ela avisa que segregar ICMS-ST não muda nada, porque ali o ICMS já não integra o DAS.
A armadilha do Anexo IV, quantificada
RBT12 de R$ 1 milhão, receita mensal de R$ 80 mil, folha de R$ 30 mil:
Anexo | Alíquota do DAS | CPP por fora | Carga total |
III | 12,44% | — | 12,44% |
IV | 10,02% | R$ 6.300 | 17,90% |
comparar_anexos soma o que fica fora do DAS e alerta quando a ordem por carga inverte a ordem por alíquota — que é o caso acima. Sem folha informada, ela avisa que a comparação subestima o Anexo IV.
E quanto dá para recuperar
indebito_acumulado recebe as competências e devolve o total, separando o que ainda cabe no prazo de cinco anos:
20 competências recentes | R$ 48.216,00 recuperáveis |
2 competências de 2019 | R$ 4.821,60 prescritos |
Prazo do art. 168 do CTN. A contagem usa o vencimento do DAS como referência do pagamento; pedido administrativo não interrompe o prazo.
Instalação no Claude Code
claude mcp add simples-nacional -- simples-nacional-mcpInstalação no Claude Desktop
Em claude_desktop_config.json:
{
"mcpServers": {
"simples-nacional": {
"command": "simples-nacional-mcp"
}
}
}Exemplo
Uma empresa de serviços com RBT12 de R$ 1 milhão e folha de R$ 250 mil: qual anexo, e quanto paga?
O assistente resolve o Fator R (25%, abaixo de 28%, portanto Anexo V), calcula o DAS, e ao ser perguntado sobre a carga chama carga_fora_do_das — que no Anexo V devolve lista vazia, confirmando que ali a alíquota realmente representa a carga. Trocando para uma atividade do Anexo IV, a mesma pergunta passa a devolver a CPP por fora.
O que não faz
carga_fora_do_dasnão quantifica. Ela diz o que fica fora e em que direção; para números, usequantificar_segregacao, que calcula sobre a repartição do DAS por tributo.Não enquadra atividade. Descobrir o anexo de um CNAE é decisão contábil.
Não é assessoria fiscal. Cada descrição de ferramenta repete isso, porque um assistente repassa resultado como conselho se ninguém o avisar.
Onde mora o cálculo
Em simples-nacional (PyPI), com as tabelas transcritas da LC 123/2006 e testadas contra uma segunda transcrição independente. Aqui há apenas a interface: a lei não é duplicada em dois lugares.
Licença
MIT
Available Tools
7 toolscalcular_dasA
Calcula o DAS do mês e a alíquota efetiva do Simples Nacional para um anexo e um RBT12 (receita bruta dos 12 meses anteriores). Devolve também a faixa, e bandeiras para o sublimite de ICMS/ISS e para a saída do regime. Se a empresa tem menos de 13 meses de atividade, informe receita_acumulada e meses_de_atividade em vez de rbt12. A alíquota devolvida é a carga do DAS: consulte carga_fora_do_das antes de afirmar qual é a carga tributária total. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| anexo | Yes | ||
| rbt12 | No | ||
| receita_do_mes | Yes | ||
| receita_acumulada | No | ||
| incluir_reparticao | No | ||
| meses_de_atividade | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the return values (faixa, bandeiras for sublimite and regime exit), the meaning of the calculated rate, and a key caveat about consulting carga_fora_do_das. It also sets expectations by stating it calculates legal tables and is not tax advisory, though it does not describe edge-case handling or validation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the core purpose, followed by return values, parameter-mode guidance, and caveats. Each sentence adds information, though the final disclaimer about not being tax advisory could be seen as slightly tangential. Overall, it is dense without being bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that no annotations exist and schema coverage is 0%, the description does a good job of covering the main inputs, outputs, and one sibling relationship. However, it omits the incluir_reparticao parameter, does not clarify how conflicts between rbt12 and receita_acumulada should be handled, and does not explain how this tool relates to siblings like resolver_anexo_fator_r or comparar_anexos.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema. It does explain the distinction between rbt12 and receita_acumulada/meses_de_atividade, and it mentions anexo and the monthly revenue implicitly via 'DAS do mês'. However, the parameter incluir_reparticao is not described at all, and receita_do_mes is only implied, leaving meaningful gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Calcula o DAS do mês e a alíquota efetiva') and names the key inputs (anexo, RBT12). It also differentiates itself from the sibling 'carga_fora_do_das' by clarifying that the returned rate is only the DAS portion, so the agent can distinguish the tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to call the tool and gives explicit conditional guidance for companies with less than 13 months of activity, telling the agent to use receita_acumulada and meses_de_atividade instead of rbt12. It also directs the agent to consult the sibling tool carga_fora_do_das before making claims about total tax burden, but it does not explicitly state when not to use this tool versus other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carga_fora_do_dasA
Diz o que a alíquota efetiva do anexo NÃO cobre, e em que direção cada item altera a carga. Chame esta ferramenta antes de afirmar qual é a carga tributária de alguém: a alíquota efetiva é a carga do DAS, e não a total. Dois motivos distintos fazem um tributo ficar fora. O Anexo IV não abrange a contribuição patronal, que é recolhida à parte sobre a folha e ACRESCENTA carga. Já a segregação de receita monofásica ou com ICMS-ST muda de direção conforme a posição na cadeia: para quem produz ACRESCENTA, para quem revende REDUZ. Não quantifica valores, porque isso exige a repartição do DAS por tributo. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| anexo | Yes | ||
| posicao | No | revendedor | |
| receita_monofasica | No | ||
| receita_com_icms_st | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it delivers. It discloses the qualitative nature of the output (directional effects ACRESCENTA/REDUZ, never values), the two underlying structural causes, the legal basis ('Calcula as tabelas publicadas em lei'), and the authority boundary (enquadramento, regime, and obrigações acessórias left to accountants). This is rich behavioral context the schema could never express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose statement, followed by the usage trigger, then concrete examples that double as parameter semantics. Each sentence earns its place; the elaboration of the two exclusion reasons is the longest stretch, but it adds conceptual value the schema lacks rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero annotations and zero schema coverage, this is remarkably complete: it covers tool selection, invocation timing, parameter semantics, output expectations (directions, not values), and professional boundaries. An output schema exists, so documenting return values is not the description's job. The only gap is the edge case of receita_monofasica and receita_com_icms_st both being true, which the description treats as alternatives ('ou').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does so thoroughly. It explains posicao via the chain-position rule ('para quem produz ACRESCENTA, para quem revende REDUZ'), gives meaning to receita_monofasica and receita_com_icms_st through the 'segregação de receita' concept, and contextualizes anexo with the Annex IV employer-contribution example. Every parameter gains meaning beyond its raw name and enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Diz o que a alíquota efetiva do anexo NÃO cobre, e em que direção cada item altera a carga.' It explicitly distinguishes itself from quantifying tools by stating 'Não quantifica valores... isso exige a repartição do DAS por tributo', so an agent can tell it apart from calcular_das and quantificar_segregacao without inspecting either.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit invocation trigger: 'Chame esta ferramenta antes de afirmar qual é a carga tributária de alguém: a alíquota efetiva é a carga do DAS, e não a total.' It also states clear non-goals ('Não quantifica valores', 'Não é assessoria fiscal') that function as when-not-to-use signals. However, it never names sibling tools as concrete alternatives, so routing between options is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comparar_anexosA
Compara os cinco anexos por CARGA TOTAL, não por alíquota do DAS. Informe a folha mensal: ela só altera o Anexo IV, único cujo DAS não abrange a contribuição patronal, recolhida à parte a 20% sobre a folha mais o RAT do grau de risco (1% a 3%, ajustável pelo FAP). Sem a folha, a comparação reproduz a ilusão de que o Anexo IV é o mais barato. Use esta ferramenta, e não calcular_das repetido, sempre que a pergunta for qual anexo custa menos. O anexo aplicável depende da atividade e não é escolha livre: isto compara custos, não define enquadramento. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| fap | No | ||
| folha | No | ||
| rbt12 | Yes | ||
| rat_pct | No | ||
| receita_do_mes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does so thoroughly: it reveals the calculation basis (total load vs DAS rate), the folha dependency and its exact mechanism (only Annex IV; 20% employer contribution plus 1%-3% RAT adjusted by FAP), and the misleading result when folha is omitted. It also sets expectations that it computes legal tables and does not address classification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long (six sentences) but each sentence earns its place: load-vs-rate distinction up front, then the folha caveat, sibling routing, scope limits, and disclaimer. It is front-loaded with the core purpose, though it could be tightened slightly without losing the essential caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and 0% schema coverage, the description covers purpose, the critical parameter trap, sibling differentiation, and scope limits; the output schema covers return values. The remaining gap is the absence of any prose meaning or constraints for the two required inputs, rbt12 and receita_do_mes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains folha well (only affects Annex IV, employer contribution at 20%, RAT/FAP mechanics) and indirectly clarifies fap and rat_pct, but the two required parameters, rbt12 and receita_do_mes, receive no prose explanation and rely on self-evident names. Compensation is partial, not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: compares the five annexes by TOTAL LOAD rather than by DAS rate. It explicitly differentiates from the sibling calcular_das ('use this tool, not repeated calcular_das') whenever the question is which annex costs least, so an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use rule ('quando a pergunta for qual anexo custa menos') and a when-not-to (not repeated calcular_das), plus the condition to pass folha so the comparison is not misleading. It also states what the tool does not do — it compares costs, does not define annex classification, and is not tax advisory — which prevents off-scope use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indebito_acumuladoA
Soma o indébito de vários meses de quem revendeu sem segregar receita monofásica ou com ICMS-ST, e separa o que ainda está no prazo de cinco anos do art. 168 do CTN do que já prescreveu. Passe uma lista de competências, cada uma com ano, mes, rbt12 e a receita repartida por categoria. A contagem do prazo usa o vencimento do DAS, dia 20 do mês seguinte, como referência do pagamento; quem pagou em atraso conta da data efetiva, que só o contribuinte conhece. Pedido administrativo não interrompe o prazo. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| anexo | Yes | ||
| competencias | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden and does so thoroughly. It discloses the DAS due date convention, the late-payment caveat, that administrative requests do not interrupt the limitation period, that tables are calculated as published in law, and that classification/regime decisions are not covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: purpose, input structure, timing assumption, legal nuance, and scope boundary. The description is front-loaded with the core purpose and avoids filler or redundant restatements of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool involving legal deadlines and tax concepts, the description is remarkably complete. It explains the required inputs, the payment-reference rule, the limitation-period nuance, and the boundaries of the tool's responsibility. Since an output schema exists, the return-value details don't need to be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by specifying that each competência must include ano, mes, rbt12, and revenue split by category. This is essential because the schema's array items are completely open with additionalProperties: true. The anexo parameter is already constrained by its enum, so the description doesn't need to repeat it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it 'sums the undue payment' for those who resold without segregating monophasic revenue or ICMS-ST, and 'separates' amounts still within the five-year CTN limitation period from those already prescribed. This specificity distinguishes it from siblings like calcular_das and quantificar_segregacao without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly identifies the target use case (resellers who did not segregate monophasic revenue or ICMS-ST) and instructs the user to pass a list of competências. It also sets exclusions, such as 'não é assessoria fiscal,' but it does not explicitly name when to prefer this tool over an alternative sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quantificar_segregacaoA
Quantifica o efeito da segregação de receitas no DAS. Receita monofásica de PIS/COFINS (bebidas, medicamentos, cosméticos, autopeças, combustíveis) e receita com ICMS já retido por substituição tributária devem ser segregadas: os percentuais dos tributos já cobrados na cadeia são desconsiderados no cálculo. Informe a receita do mês repartida entre as categorias e a ferramenta devolve o DAS sem segregar, o DAS segregado, e a diferença — que é o valor pago a mais por quem não segrega, e é recuperável. Use para quem REVENDE mercadoria já tributada na origem; quem produz é o responsável pelo recolhimento concentrado e tem carga acima da alíquota, não abaixo. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| anexo | Yes | ||
| rbt12 | Yes | ||
| receita_monofasica | No | ||
| receita_com_icms_st | No | ||
| receita_sem_regime_especial | No | ||
| receita_monofasica_e_com_icms_st | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden and does a good job: it reveals the calculation logic (segregated tax percentages are disregarded), the three returned values, and that the difference is recoverable. It also disclaims tax-advisory scope, which helps set agent expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but organized: the main purpose comes first, followed by input guidance, outputs, target user, and a safety disclaimer. It is somewhat long, but each sentence adds useful information and no filler is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the calculation context, required revenue segmentation, outputs, intended user, and important boundary conditions. Given the tool's tax complexity and the presence of an output schema, it is reasonably complete, though it could further clarify how the optional revenue parameters should be filled relative to the month total.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives meaning to the segregation categories by explaining monofásica and ICMS-ST revenue, but it does not explain required parameters like 'anexo' and 'rbt12' beyond their self-explanatory names. This is partial compensation, not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement ('Quantifica o efeito da segregação de receitas no DAS') and goes on to define the exact outputs: DAS sem segregar, DAS segregado, and the difference. This clearly separates it from the generic calcular_das sibling by describing a specialized calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use the tool ('Use para quem REVENDE mercadoria já tributada na origem') and when not to ('quem produz é o responsável... não abaixo'). It does not name an alternative sibling, but the target audience and exclusions are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolver_anexo_fator_rA
Decide entre Anexo III e Anexo V para atividades do § 5º-I (serviços intelectuais) pelo Fator R: a razão entre a folha de salários e a receita bruta, ambas dos 12 meses anteriores. Razão de 28% ou mais leva ao Anexo III, abaixo disso ao Anexo V. A diferença de alíquota nominal entre os dois chega a 9,5 pontos, então errar isto custa mais que errar a fórmula. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| rbt12 | Yes | ||
| folha_12m | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Sem anotações, a descrição carrega a transparência: explica o cálculo, define o caso-limite '28% ou mais', quantifica a consequência ('diferença de até 9,5 pontos') e declara o que não faz ('não é assessoria fiscal'). Isso é mais transparente que o esperado para uma calculadora pura.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Quatro frases densas começam pela decisão e fórmula, seguidas do limiar e da ressalva; não há repetição do schema nem conteúdo supérfluo. Cada frase agrega informação para o agente.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A definição cobre todos os elementos necessários para invocar corretamente: entradas, fórmula, limiar, escopo e limitações. Há output schema disponível, e os dois parâmetros simples já são explicados na própria descrição.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Com 0% de cobertura no schema, a descrição compensa ao mapear folha_12m e rbt12 para 'folha de salários' e 'receita bruta', e especificar que ambas são dos 12 meses anteriores. Não detalha formato monetário ou de string, mas a semântica essencial está presente.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A descrição abre com verbo específico e recurso: 'Decide entre Anexo III e Anexo V ... pelo Fator R', com limiar de 28% e escopo §5º-I. Isso separa claramente a ferramenta de calcular_das e das demais, tornando o propósito inconfundível.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Há contexto claro de uso: atividades do §5º-I (serviços intelectuais) e decisão baseada em Fator R, com inputs dos 12 meses anteriores. Falta apenas nomear alternativas ou quando não usar em relação aos irmãos, embora a ressalva 'não é assessoria fiscal' funcione como limite de escopo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ressalvas_setoriaisA
Lista as ressalvas de um setor cuja receita tem regime especial de PIS/COFINS (tributação monofásica) ou de ICMS (substituição tributária): bebidas alcoólicas e frias, medicamentos, cosméticos, autopeças e pneus, combustíveis. Sem argumento, lista os setores registrados. Ausência de um setor aqui não significa que o DAS cubra toda a carga dele. Calcula as tabelas publicadas em lei. Não é assessoria fiscal: enquadramento de atividade, regime e obrigações acessórias são decisões de contador.
| Name | Required | Description | Default |
|---|---|---|---|
| setor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden and does so reasonably: it states that the tool 'Calcula as tabelas publicadas em lei', warns that a missing sector does not mean DAS covers its burden, and explicitly disclaims tax-advisory scope. It does not mention potential errors or output limits, but the output schema helps fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core action, then adds brief scope, legal-basis, and disclaimer sentences. Each sentence adds information, though the final disclaimer is slightly long relative to the rest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, the description covers invocation behavior, legal calculation basis, and a key caveat about DAS coverage. It is complete enough for an agent to select and call the tool correctly, though a more explicit allowed-value list for 'setor' would raise this further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It effectively explains the optional 'setor' parameter by listing example sector values and stating that omitting the argument lists registered sectors. It does not define exact accepted string formats, but the examples and default behavior are enough for a single optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Lista as ressalvas de um setor' and enumerates the affected sectors such as bebidas alcoólicas, medicamentos, and combustíveis. It clearly conveys the tool's domain, though it does not explicitly distinguish it from sibling tools like carga_fora_do_das.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear scope of use: sectors under special PIS/COFINS or ICMS regimes, and explains the no-argument behavior ('Sem argumento, lista os setores registrados'). It also sets an exclusion by noting it is not tax advisory, but it does not refer to any alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v0.3.1- First observed
calcular_das - First observed
carga_fora_do_das - First observed
comparar_anexos - First observed
indebito_acumulado - First observed
quantificar_segregacao - First observed
resolver_anexo_fator_r - First observed
ressalvas_setoriais
TDQS
Each tool covers a distinct step: calculation, annex selection, Fator R, sector caveats, segregation, comparison, and overpayment accumulation. The descriptions explicitly route agents between overlapping tools, such as telling users to use comparar_anexos instead of repeating calcular_das.
Four tools follow a verb-first pattern (calcular_das, comparar_anexos, quantificar_segregacao, resolver_anexo_fator_r), while three use noun-phrase names (carga_fora_do_das, ressalvas_setoriais, indebito_acumulado). All names are snake_case and readable, but the verb/noun mixing is inconsistent.
Seven tools is a well-scoped size for this specialized tax domain. Each tool has a clear purpose and none feel redundant or unnecessary.
The set covers the main workflows: DAS calculation, Fator R decision, sector ressalvas, segregation quantification, annex comparison, and recovery of overpayments. Minor gaps remain, such as a general activity-to-annex mapping or detailed DAS apportionment by tributo, but these are edge cases rather than core dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Brazilian AI-powered accounting & tax automation: NFS-e invoicing, CBS/IBS tax reform, compliance.
Issue and manage Brazilian service invoices (NFS-e) by chatting with your agent, platform-hosted, no
Receita Federal: Simples (DASN SIMEI), official-source lookup. Platform-hosted, pay per query with p
Brazil NFS-e service invoices for AI agents via Focus NFe and NFe.io. Stateless, never stores data.
Related MCP Servers
- AlicenseAqualityBmaintenanceConnects AI agents to Brazilian tax compliance data (CNPJ, CPF, NFe, SPED, eSocial) and provides tools for due diligence, risk scoring, and tax regime comparison.44289MIT
- FlicenseAqualityCmaintenanceEnables AI assistants to help compile the Italian Modello 730 income tax return by providing IRPEF calculations, deduction tools, and tax rule guidance.1223-
- AlicenseAqualityCmaintenanceEnables Turkish tax research, calculation, and document management using official GİB resources, including legislation search, tax computation, invoice validation, and circular drafting.131MIT

brasilnfe-mcpofficial
FlicenseNot gradedqualityDmaintenanceMCP server that exposes Brazilian tax infrastructure as tools, resources, and prompts, enabling AI agents to emit and manage fiscal documents (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e) through natural language.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vitorantoniazzi/simples-nacional-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server