Skip to main content
Glama

Kalvi — NFS-e e IBS/CBS

Server Details

Confere a NFS-e brasileira para IBS/CBS antes de transmitir. Sem cadastro e sem chave.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

The three tools target clearly separate workflows: service tax classification, rejection-code explanation, and DPS XML validation. Although validation can surface rejection codes that the explanation tool interprets, their use cases and outputs are described distinctly enough to avoid confusion.

Naming Consistency5/5

All tool names follow a consistent Portuguese verb_noun pattern in snake_case: classificar_servico, explicar_rejeicao, validar_nfse. The naming is predictable and readable.

Tool Count5/5

Three tools are well scoped for a focused NFS-e/IBS-CBS reference and validation server. Each tool corresponds to a distinct user question and earns its place without bloat.

Completeness4/5

The surface covers the main advisory workflows: classifying a service, validating a DPS XML, and explaining rejection codes. Minor gaps remain, such as direct exploration of rate tables or broader rule listings, but the included tools let an agent handle core tasks.

Available Tools

3 tools
classificar_servicoDescobrir o CST e o cClassTrib de um serviçoAInspect

A partir do item da LC 116 (ou do código de tributação nacional), do regime do prestador, do município e da data de competência, devolve os candidatos de CST e cClassTrib com justificativa, alíquotas vigentes e a fonte oficial de cada regra. Use quando a pergunta for 'qual código eu uso neste serviço'.

NameRequiredDescriptionDefault
nbs_codeNoNBS, quando houver.
tax_regimeYes
service_codeYesItem da LC 116 ("04.01") ou cTribNac de 6 dígitos ("040101").
competence_dateYesAAAA-MM-DD.
operation_natureNo
municipality_codeYesCódigo IBGE de 7 dígitos.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does meaningful work: it discloses that the result is a set of candidates (not a single deterministic answer) accompanied by justification, current rates and the official source of each rule. It does not say what happens when nothing matches (empty result vs. error) or note any auth prerequisites, which is a read-only lookup so risk is low.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences: inputs first, outputs second, usage trigger last. No filler, no repetition of the tool name, and the key classification constraint is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, annotation-free tool with no output schema, the description substitutes well by describing the return payload (candidates, justification, rates, sources). Remaining gaps are the unmentioned optional parameters and the no-match behavior, but the core call is fully specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67% and the description reinforces the meaning of service_code (accepts either "04.01" or a 6-digit cTribNac). However, nbs_code and operation_nature are absent from both the description and the schema, and the enum parameters (tax_regime, operation_nature) have no explanation of their effect on classification.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: given the LC 116 item (or national tax code), regime, municipality and competence date, it returns CST/cClassTrib candidates. The enumerated inputs and outputs make the function unambiguous. It does not explicitly differentiate from siblings (validar_nfse, explicar_rejeicao), though the tasks are plainly distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence gives an explicit trigger: use it when the question is 'which code do I use for this service'. That is a clear usage context, but no when-not-to-use guidance or prerequisite/alternative routing is offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

explicar_rejeicaoExplicar um código de rejeição da NFS-eAInspect

Recebe um código de rejeição da NFS-e nacional (E0958, E0855, E0959...) e devolve o texto oficial da regra, o campo do XML a que ela se refere e se o efeito é recusar a nota. Use quando a pergunta for 'o que significa este erro'.

NameRequiredDescriptionDefault
codigoYesO código, como veio na recusa. Ex.: "E0958".

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does disclose the return content (rule text, XML field, rejection effect), which effectively signals a read-only lookup. It does not say what happens for an unrecognized code or whether partial matches are resolved, which is the main residual gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste: the return contract comes first, the usage trigger second. Nothing is repeated or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description properly enumerates the returned fields, which is the critical information here. Minor omission: behavior on an unknown or malformed rejection code is not covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter already carries its own description and example ("E0958"). The description only re-states the example codes with an ellipsis, adding no format or normalization guidance beyond the schema, so the 3 baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb pair (recebe / devolve) plus the exact resource (código de rejeição da NFS-e nacional), and it enumerates the three things returned: official rule text, XML field, and whether the effect is rejection. It is clearly a lookup-dictionary tool, distinguishable in spirit from validar_nfse, though it never names a sibling to contrast with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit trigger: "Use quando a pergunta for 'o que significa este erro'." That cleanly separates diagnostic explanation from validation or classification work. No explicit 'do not use when' clause or named alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validar_nfseConferir uma NFS-e antes de transmitirAInspect

Confere o XML da DPS (NFS-e do padrão nacional) contra as regras oficiais de IBS/CBS e devolve o que seria recusado, com o código oficial de rejeição e o campo do XML que causou. Use antes de transmitir. Nada da nota é guardado.

NameRequiredDescriptionDefault
xmlYesO XML da DPS, completo, como string.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description does real work: it discloses dry-run semantics ('devolve o que seria recusado') and a no-persistence guarantee ('Nada da nota é guardado'), which tells the agent this is a side-effect-free operation. It omits whether all violations are returned or only the first, and says nothing about size limits or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: what it checks, what it returns, when to use it, and the no-storage guarantee. No filler, and the core action plus output shape are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, no annotations and no output schema, the description carries the disclosure burden well by describing the return payload (official rejection code plus offending XML field). The main remaining gap is what a passing validation returns and whether multiple errors surface at once.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema field text by clarifying that the XML is the DPS under the national standard ('padrão nacional'), distinguishing it from municipal NFS-e layouts. That is useful disambiguation for a single-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: checks the DPS XML (national-standard NFS-e) against official IBS/CBS rules. The purpose is unambiguous and clearly a pre-transmission validation, but it never names or contrasts with the siblings classificar_servico and explicar_rejeicao, even though 'explicar_rejeicao' overlaps with its rejection-code output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use antes de transmitir' gives a clear trigger condition for when to call it. It does not state when NOT to use it or point to explicar_rejeicao for deeper explanation of a returned code, so the routing guidance is contextual but not complete.

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.

  1. 3 tool updates
    • First observedclassificar_servico
    • First observedexplicar_rejeicao
    • First observedvalidar_nfse

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources