Skip to main content
Glama

Server Details

Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
BrasilNFe/brasilnfe-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 3.8/5 across 34 of 34 tools scored. Lowest: 2.8/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct operation or resource, with detailed descriptions that clarify boundaries. Even overlapping tools like cliente_consultar and cadastro_consultar are clearly differentiated by purpose and fallback behavior.

Naming Consistency5/5

All tool names follow a consistent noun_verb pattern in Portuguese (e.g., arquivo_baixar, cliente_criar, nfe_emitir), making them predictable and easy to understand.

Tool Count4/5

34 tools cover a broad and complex domain (multiple fiscal document types, CRUD for clients/products/tax rules, events, utilities). While slightly high, each tool serves a specific need and the count is justified.

Completeness5/5

The tool set covers the full lifecycle of Brazilian fiscal documents: emission, events, file operations, cadastral maintenance, tax calculation, and status checks. Only minor gaps (e.g., explicit deletion) are mitigated by existing event tools.

Available Tools

34 tools
arquivo_baixarBaixar XML ou PDF do documentoB
Read-onlyIdempotent
Inspect

Baixa o arquivo (XML ou PDF/DANFE) de uma NF-e/NFC-e/NFS-e por chave de acesso. Retorna conteúdo em base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChavesNo
ChaveNFNo
FileTypeNoTipo do documento fiscal (Padrão 1 - XML) Valores: 1 - XML; 2 - DANFE
Base64LogoNo
TipoDocumentoFiscalNoTipo do documento fiscal (Padrão 1 - Saída) Valores: 0 - Entrada; 1 - Saída
Behavior4/5

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

The description correctly notes the return format (base64) and the file type options (XML/PDF). Annotations already declare readOnlyHint and idempotentHint, so the added behavioral context is adequate for a read-only, idempotent operation.

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

Conciseness4/5

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

The description is concise (two sentences) and front-loaded with the action. It is efficient but could benefit from slightly more structure, such as clarifying parameter roles or usage options.

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

Completeness2/5

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

Given the tool's complexity (5 parameters, no required fields, no output schema), the description is incomplete. It omits details on parameter relationships (e.g., Chaves array vs. single ChaveNF), the purpose of Base64Logo, and the impact of TipoDocumentoFiscal. An agent would likely need additional information to invoke the tool correctly.

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

Parameters2/5

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

With only 40% schema description coverage, the description should compensate for undocumented parameters (Chaves, ChaveNF, Base64Logo). It does not explain their purpose, mutual exclusivity, or how to use them, leaving significant ambiguity.

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

Purpose5/5

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

The description clearly states the tool downloads an XML or PDF file for NF-e/NFC-e/NFS-e documents using an access key, and returns base64 content. It distinguishes itself from sibling tools like 'arquivo_baixar_evento' and 'arquivo_baixar_periodo' by being a general download tool.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus its siblings or alternatives. It mentions 'por chave de acesso' but does not clarify the relationship between the 'Chaves' and 'ChaveNF' parameters or when to use each.

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

arquivo_baixar_eventoBaixar XML ou PDF de eventoA
Read-onlyIdempotent
Inspect

Baixa o arquivo de um evento (CC-e, cancelamento, manifestação, encerramento) por chave de acesso + número sequencial. Retorna conteúdo em base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNFNoChave de acesso da Nota Fiscal (44 dígitos) à qual o evento está vinculado.
NuProtocoloNoNúmero do protocolo do evento (somente dígitos). Identifica o evento específico (ex.: Carta de Correção, Cancelamento) registrado para a nota fiscal.
TipoArquivoNoTipo do arquivo do evento a ser retornado. Valores: 1 - XML do evento; 2 - PDF da Carta de Correção (CC-e)
Behavior2/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that the return is base64 content, but it does not disclose potential failure modes, authentication requirements, or what happens if the event does not exist. For a tool with no annotations about destructive behavior, more context is needed.

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?

The description is two sentences long, front-loading the essential information about what the tool does and its key parameters. Every sentence adds value, and there is no redundant or extraneous text.

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?

Given the tool's moderate complexity (3 simple parameters, no output schema), the description covers the main functionality and return format (base64). It could be improved by noting that the base64 represents XML or PDF depending on TipoArquivo, but it is largely complete.

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?

The input schema has 100% description coverage, so each parameter already has a clear description. The tool description adds minimal extra meaning beyond referencing 'chave de acesso' and 'número sequencial'. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the verb 'Baixa' (download), the resource 'arquivo de evento', lists event types (CC-e, cancelamento, manifestação, encerramento), and specifies the retrieval method (chave de acesso + número sequencial). It effectively distinguishes from sibling tools like 'arquivo_baixar' and 'arquivo_baixar_periodo'.

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

Usage Guidelines3/5

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

The description implies usage context by stating the required parameters (chave de acesso and número sequencial), but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria. No direct guidance on when not to use it.

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

arquivo_baixar_periodoExportar arquivos do períodoA
Read-only
Inspect

Exporta múltiplos arquivos (XML/PDF) de um período em um único ZIP base64. Útil para backup, contabilidade ou auditoria.

ParametersJSON Schema
NameRequiredDescriptionDefault
TypeNoTipo do documento fiscal (Padrão 1 - XML) Valores: 0 - PDF; 1 - XML; 2 - EXCEL
DtFimNo
ChavesNoChaves pagar pegar notas fiscal especificas
DtInicioNo
TipoNotaNoTipo de ambiente (Padrão 1 - Saída) Valores: 1 - Saídas; 2 - Entradas; 3 - Saídas e Entradas
cpfCnpjsNoCPFs ou CNPJs dos clientes das notas
SituacoesNoFiltra por situação. Vazio = todas (comportamento padrão). Combinável.
incluirCCeNoIncluir carta de correção emitidas no periodo
TipoAmbienteNoTipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação
JuntarArquivosPDFNoAnexar todas as notas fiscais retornadas em um unico arquivo PDF
aplicarPlanoAjustesNoAplicar plano de ajustes de impostos

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
QuantidadeNo
Base64FilesCompactedNo
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a non-destructive read operation. The description adds that it exports to a ZIP base64, which is consistent. However, no further behavioral details (e.g., potential size limits, time expectations) are provided beyond what annotations cover.

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?

The description is two sentences, concise and front-loaded with the core action. It includes both the operation and practical use cases without unnecessary words. Every sentence earns its place.

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

Completeness3/5

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

Given the tool has 11 parameters, high schema coverage, and an output schema, the description provides a high-level overview (exports multiple files as ZIP) but omits mention of specific parameters like date range or filtering options. It is adequate but not thorough.

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 description coverage is 82%, meaning the input schema already documents most parameters. The tool description does not add any parameter-level meaning beyond what is in the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool exports multiple files (XML/PDF) from a period into a single ZIP base64, and explicitly mentions use cases (backup, contabilidade, auditoria). This distinguishes it from siblings like 'arquivo_baixar' (likely single file) and 'arquivo_baixar_evento' (event downloads).

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

Usage Guidelines3/5

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

The description provides implicit usage context through the use cases (backup, contabilidade, auditoria) but does not explicitly state when to use this tool versus siblings or when not to use it. No alternative tool names are mentioned.

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

cadastro_consultarConsultar Inscrição Estadual (IE) na SEFAZA
Read-onlyIdempotent
Inspect

Consulta a Inscrição Estadual (IE) de um contribuinte na SEFAZ estadual (mundo NF-e/ICMS), por CNPJ/CPF/IE + UF. ATENÇÃO: muitas UFs NÃO oferecem este serviço (ex: RJ) e prestadores de serviço normalmente NÃO têm IE - nesses casos a IE não vem, e ISSO NÃO SIGNIFICA QUE O CNPJ ESTEJA INATIVO. Quando a SEFAZ não retorna e o documento é CNPJ, há fallback automático na Receita Federal (campo 'fonte'='receita') trazendo razão social, situação cadastral e endereço - sempre leia o campo 'mensagem'. Para apenas saber se um CNPJ está ativo ou pegar seus dados cadastrais (sem precisar da IE), prefira cliente_consultar.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoUF do CPF, CNPJ, IE
cpfCnpjIeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ieNo
fonteNoFonte dos dados: "sefaz" (Inscrição Estadual da SEFAZ estadual), "receita" (fallback na Receita Federal quando a UF não oferece a consulta ou o contribuinte não tem IE - comum em prestadores de serviço) ou "indisponivel".
statusNoStatus Consulta Valores: 0 - Não Encontrada;; 1 - Encontrada;
ContatoNo
cpfCnpjNo
ieAtualNo
ieUnicaNo
EnderecoNo
mensagemNoMensagem explicativa do resultado: por que a IE não veio, qual fonte foi usada, e o aviso de que vazio NÃO significa CNPJ inativo. Fica vazio quando a SEFAZ retornou a Inscrição Estadual normalmente.
situacaoNoSituação do contribuinte: 0 - não habilitado; 1 - habilitado.
razaoSocialNo
nomeFantasiaNo
ufConsultadaNo
cnaePrincipalNo
regimeApuracaoNo
dataInicioAtividadeNo
dataOcorrenciaBaixaNo
indicadorCredenciamentoCTeNoIndicador de contribuinte credenciado a emitir CT-e. Valores: 0 - Não credenciado para emissão da CT-e;; 1 - Credenciado;; 2 - Credenciado com obrigatoriedade para todas operações;; 3 - Credenciado com obrigatoriedade parcial;; 4 - a SEFAZ não fornece a informação. Este indicador significa apenas que o contribuinte é credenciado para emitir CT-e na SEFAZ consultada.
indicadorCredenciamentoNFeNoIndicador de contribuinte credenciado a emitir NF-e. Valores: 0 - Não credenciado para emissão da NF-e;; 1 - Credenciado;; 2 - Credenciado com obrigatoriedade para todas operações;; 3 - Credenciado com obrigatoriedade parcial;; 4 - a SEFAZ não fornece a informação. Este indicador significa apenas que o contribuinte é credenciado para emitir NF-e na SEFAZ consultada.
dataUltimaAlteracaoCadastralNo
Behavior5/5

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

Adds significant behavioral context beyond annotations: warns that many UFs don't offer the service, that missing IE doesn't mean inactive CNPJ, describes fallback to Receita Federal with field 'fonte', and instructs to read 'mensagem'. No contradiction with annotations.

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

Conciseness4/5

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

Description is somewhat lengthy but each sentence adds value, covering purpose, warnings, alternatives, and fallback. Front-loaded with core operation. Could be more concise but appropriate for complexity.

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

Completeness5/5

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

Given the tool's complexity (state-level variations, fallback, output schema exists), the description is thorough: explains when data may not be available, describes fallback behavior, and tells agent to read specific fields ('mensagem', 'fonte').

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 has 50% description coverage (only 'uf' described). Description clarifies the second parameter by stating 'por CNPJ/CPF/IE + UF', adding meaning for the undocumented 'cpfCnpjIe' parameter. However, does not detail input formats.

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

Purpose5/5

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

The description clearly states the tool queries the Inscrição Estadual (IE) from SEFAZ using CNPJ/CPF/IE and UF. It distinguishes from sibling tool 'cliente_consultar' by specifying when to use each.

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

Usage Guidelines5/5

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

Explicitly says when not to use (if only need if CNPJ is active or cadastral data, prefer cliente_consultar) and provides context about UFs that don't offer the service and cases where IE is absent.

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

cliente_consultarConsultar cliente/destinatario por CNPJ, CPF, IE ou nomeA
Read-onlyIdempotent
Inspect

Pesquisa unificada de cliente/fornecedor. Tenta primeiro o cadastro local da empresa logada e, se nao achar e o termo for um CNPJ valido, consulta a BrasilAPI (Receita Federal) - razao social, endereco, situacao cadastral. E a tool CORRETA pra saber se um CNPJ esta ativo e pegar seus dados (razao social, endereco) - nao confunda com cadastro_consultar, que so traz Inscricao Estadual (IE) da SEFAZ. Use ANTES de pedir CNPJ ao usuario; geralmente o usuario informa nome ou apelido (ex: 'TNT', 'Correios'). Obs: consulta na Receita so funciona por CNPJ - CPF nao tem base publica. Para obter a Inscricao Estadual (operacao com ICMS), use cadastro_consultar. PAGINACAO: Limite default 10 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.

ParametersJSON Schema
NameRequiredDescriptionDefault
UfNo
TermoNo
FontesNo
LimiteNo
OffsetNo
TipoBuscaNo
IncluirInativasNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
AvisosNo
LimiteNo
OffsetNo
MatchesNo
TotalGeralNo
TotalLocalNo
TipoDetectadoNo
TermoNormalizadoNo
ConsultouBrasilApiNo
Behavior5/5

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

Annotations indicate readOnly and idempotent. Description adds rich behavioral details: local-first search, fallback to BrazilAPI for valid CNPJ, CPF limitation, pagination behavior (default limit 10, max 50, offset, TotalGeral). No contradictions with annotations.

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?

Concise yet comprehensive: every sentence adds value. Front-loaded with purpose, then behavior, sibling differentiation, usage advice, limitations, and pagination. No redundancy.

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?

Covers core usage, behavior, and limitations well. Output schema exists, so return values are handled. However, missing explicit descriptions for 4 out of 7 parameters leaves the agent blind to optional but potentially useful options.

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 has 0% description coverage. Description explains Termo (search term), Limite, and Offset implicitly, but does not clarify Uf, Fontes, TipoBusca, or IncluirInativas. Partial compensation but significant gaps remain for a 7-parameter tool.

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

Purpose5/5

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

The description clearly defines the tool as a unified customer/supplier search, specifying it queries local database first and then external BrazilAPI for CNPJ. It distinguishes itself from sibling tool 'cadastro_consultar', which only returns IE from SEFAZ.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool ('to check if CNPJ is active and get data'), advises to use before asking user for CNPJ, and provides alternatives ('use cadastro_consultar for IE'). Also includes pagination instructions with actionable guidance.

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

cliente_criarCadastrar novo cliente (destinatario/fornecedor/transportadora)AInspect

Cadastra um novo Cliente no sistema da empresa logada (CNPJ ou CPF, razao social, endereco, IE). Use depois de cliente_consultar quando o usuario confirmar que quer salvar o cadastro. Se ja existir cliente com mesmo CpfCnpj devolve erro com Id existente - use cliente_editar.

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
IeNo
ImNo
NomeYes
EmailNo
CpfCnpjYes
EnderecoNo
TelefoneNo
IndicadorIeNo
ConsumidorFinalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ClienteNo
Behavior4/5

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

Discloses creation behavior and duplicate error handling (returns existing Id). No annotations to contradict; description adds useful context about side effects. Lacks detail on success response, but output schema may compensate.

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: first states purpose and key fields, second gives usage guidance and error handling. Front-loaded and efficient, no wasted words.

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

Completeness3/5

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

Covers workflow (consult then create) and duplicate handling, but omits success response description. Given complexity (10 params, nested object) and no annotations, additional detail on output or permissions would improve completeness.

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

Parameters2/5

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

Schema description coverage is 0%, so description must elaborate. Only mentions a subset of parameters (CpfCnpj, razao social, endereco, IE) without explaining formats or optional fields. Does not clarify Id or other properties.

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

Purpose5/5

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

Description clearly states the tool creates a new client, listing key fields (CNPJ/CPF, razao social, endereco, IE). It distinguishes from siblings by specifying workflow order (use after consult) and duplicate handling (use edit).

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

Usage Guidelines5/5

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

Explicitly says when to use: after cliente_consultar when user confirms save. Also provides alternative: if duplicate exists, use cliente_editar. Clear context and exclusions.

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

cliente_editarEditar cliente cadastradoB
Idempotent
Inspect

Atualiza dados de um Cliente existente no cadastro. O campo Id e obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados, nao preservados. Para edicao parcial, faca cliente_consultar primeiro e mande os dados existentes mais o que muda. Valida ownership por UserCreate (cliente tem que pertencer ao usuario logado) e por empresa (IdEmpresa tem que ser a logada, 0 ou null - se for outra empresa sua, troque antes).

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
IeNo
ImNo
NomeYes
EmailNo
CpfCnpjYes
EnderecoNo
TelefoneNo
IndicadorIeNo
ConsumidorFinalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ClienteNo
Behavior3/5

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

Discloses key behaviors: complete payload requirement, field zeroing, ownership checks, and company switching. However, it doesn't confirm idempotency (though annotation indicates it) or explain missing schema fields like IdEmpresa. With annotations covering idempotency, this is adequate but not thorough.

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

Conciseness3/5

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

The description is a single paragraph that conveys necessary warnings but lacks clear structure (e.g., bullet points). It is somewhat verbose but includes essential information; could be more concise.

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

Completeness2/5

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

Given 10 parameters including a nested address object and no output schema details, the description is incomplete. It covers usage and validation but omits parameter explanations and return value context. The missing IdEmpresa field and contradictory Id requirement reduce completeness.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds little value beyond naming a few fields (Id, CpfCnpj, Nome). It does not explain nested object fields, enums, or constraints. The misleading claim about Id being required further degrades semantic clarity.

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?

The description clearly states the tool updates an existing client ('Atualiza dados de um Cliente existente no cadastro'), distinguishing it from create and read tools. However, it incorrectly says Id is required (schema shows only CpfCnpj and Nome as required), causing slight confusion.

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

Usage Guidelines5/5

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

Provides explicit guidance: use for full updates, recommends consulting first for partial edits, warns that omitted fields are zeroed, and mentions ownership validation. This clearly differentiates from cliente_consultar and cliente_criar.

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

cte_desacordoRegistrar desacordo de CT-eBInspect

Registra desacordo do tomador com um CT-e recebido (evento tipo 4 do CT-e). Prazo: 45 dias da emissão.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNo
ObservacaoNo
TipoAmbienteNoTipo do Documento Fiscal: Valores: 1 - Produção; 2 - Homologação
NumeroSequencialNoNúmero sequencial do evento

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo
Behavior3/5

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

The description adds the deadline constraint beyond the annotations. However, annotations only include 'openWorldHint', which is contradicted by the schema's 'additionalProperties: false'. The description does not disclose side effects or mutation behavior, but the verb implies a write operation.

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?

The description is a single sentence with 14 words, efficiently front-loading the key action and constraints. No wasted words.

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

Completeness3/5

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

With an output schema present, return values need no explanation. However, the description omits practical context like whether a CT-e key (Chave) is required, or how the observation affects the event. It is minimally adequate.

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

Parameters2/5

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

Schema coverage is 50% (2 of 4 parameters have descriptions). The description does not elaborate on any parameter meaning. Given low coverage, the description should compensate but does not.

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

Purpose5/5

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

The description clearly states the verb 'Registra' and the resource 'desacordo do tomador com um CT-e recebido', including the specific event type (tipo 4) and a time constraint (45 days). This distinguishes it from sibling tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'evento_manifestar'. It only states the deadline but does not specify prerequisites or exclusions.

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

cte_emitirEmitir CT-eCInspect

Emite CT-e (Conhecimento de Transporte Eletrônico). Requer serviço CT-e habilitado no cadastro da empresa e certificado digital A1 ou A3 configurado.

ParametersJSON Schema
NameRequiredDescriptionDefault
CfopYesCFOP de 4 dígitos. Primeiro dígito: 1/2/3 = entrada, 5/6/7 = saída.
LoteNo
CargaYesDados da carga transportada (produto predominante, lista de detalhes, documentos fiscais que acompanham). OBRIGATÓRIO. Para Tipo de serviço 0/1/2/6/7/8 também exige Carga.Documentos com ao menos 1 NF-e referenciada.
ModalYesModal de transporte (rodoviário, aéreo, aquaviário, ferroviário, dutoviário, multimodal). OBRIGATÓRIO. Tipo: 1=Rodoviário, 2=Aéreo, 3=Aquaviário, 4=Ferroviário, 5=Dutoviário, 6=Multimodal.
SerieNo
CodigoNo
NumeroNo
RetiraNo
ImpostoNo
ServicoYesDados do serviço prestado (Tipo, CodMunicipioInicio, CodMunicipioFim com 7 dígitos cada, MunicipioInicio/MunicipioFim, ValorPrestacao > 0, ValorReceber > 0). OBRIGATÓRIO. Tipo: 0=Normal, 1=Subcontratação, 2=Redespacho, 3=RedespachoIntermediario, 4=ServicoVinculadoMultimodal.
TipoCteYesTipo do CT-e. Valores: 0 - CT-e Normal (caso mais comum); 1 - CT-e de Complemento de Valores; 2 - CT-e de Anulação; 3 - CT-e Substituto
TomadorNo
DtEmissaoNo
ExpedidorNo
RemetenteNo
ObservacaoNo
DestinatarioNo
TipoAmbienteYesIdentificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão real, irreversível); 2 - Homologação (teste, sem valor fiscal)
ModeloDocumentoYesModelo do Conhecimento de Transporte Eletrônico. Valores: 57 - CT-e (Conhecimento de Transporte Eletrônico); 67 - CT-e OS (Outros Serviços de transporte)
NaturezaOperacaoYesDescrição da natureza da operação (ex: "Prestação de serviço de transporte").
IdentificadorInternoNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
chaveNo
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
serieNo
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
numeroNo
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
base64XmlNo
base64DACTeNo
tipoAmbienteNo
Behavior2/5

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

The description mentions required prerequisites (CT-e service enabled, A1 or A3 certificate) but does not disclose behavioral traits such as side effects (e.g., transmission to SEFAZ, irreversibility), rate limits, or failure modes. With no readOnlyHint or destructiveHint in annotations, the description carries the full burden but is insufficient.

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

Conciseness4/5

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

The description is concise with two sentences, no filler. However, it is front-loaded with the core purpose, so the structure is acceptable despite lacking depth.

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

Completeness1/5

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

Given the complexity of the tool (21 parameters, nested objects, 3 enums, output schema exists), the description is severely incomplete. It does not explain what the tool returns, how to structure input objects, or any constraints. The presence of an output schema is not referenced.

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

Parameters1/5

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

Schema description coverage is low (38%), yet the description provides no information about any parameter. It does not explain the complex nested objects (e.g., Carga, Servico) or the meaning of required fields like ModeloDocumento or TipoAmbiente. The description completely fails to add value beyond the schema.

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

Purpose5/5

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

The description clearly states that the tool emits a CT-e (Conhecimento de Transporte Eletrônico), distinguishing it from sibling tools like nfe_emitir or dce_emitir by naming the specific document type. It also includes prerequisites (service enabled and digital certificate), which adds clarity.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives such as nfe_emitir or mdfe_emitir. While it lists prerequisites, it lacks explicit when-to/when-not-to-use instructions, which is a significant gap given the number of sibling emission tools.

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

dce_emitirEmitir DC-eAInspect

Emite DC-e (Declaração de Conteúdo Eletrônica) para transporte de itens não-fiscais por pessoa física ou MEI. Requer serviço DC-e habilitado no cadastro.

ParametersJSON Schema
NameRequiredDescriptionDefault
LoteNo
ItensYesItens/produtos declarados no conteúdo (mínimo 1, máximo 999). Cada item exige Descricao (até 120 chars) e ValorTotal > 0. NCM opcional (2 ou 8 dígitos quando informado).
SerieNo
CodigoNo
NumeroNo
UfFiscoNoSigla da UF do órgão fiscalizador (obrigatório quando TipoEmitente=0). Se não preenchido, usa a UF da empresa emissora.
RemetenteYesPessoa física/jurídica que está enviando o pacote. OBRIGATÓRIO. Exige Endereco completo (validado por ValidaPessoaDCe).
ValorTotalNoValor total declarado da DC-e. Se omitido, soma dos ValorTotal dos itens. Deve ser > 0.
XOrgaoFiscoNoNome do órgão fiscalizador (obrigatório quando TipoEmitente=0)
DestinatarioYesDestinatário do pacote. OBRIGATÓRIO. Exige Endereco completo.
TipoAmbienteYesTipo de ambiente. Valores: 1 - Produção (emissão real); 2 - Homologação (teste)
TipoEmitenteNoTipo do emitente: Valores: 0 - App Fisco; 1 - Marketplace; 2 - Emissor próprio; 3 - Transportadora; 4 - ECT (Correios)
SiteMarketplaceNoURL do site do marketplace (obrigatório quando TipoEmitente=1)
CnpjTransportadoraNoCNPJ da transportadora que leva a carga. Opcional. Quando informado, é usado no XML; quando vazio, mantém o CNPJ da empresa emissora.
IdentificadorInternoNo
ModalidadeTransporteNoModalidade de transporte: Valores: 0 - Correios; 1 - Conta própria; 2 - Transportadora
DeclaracaoCrimeTributarioYesTexto da declaração de crime tributário (xObs2). OBRIGATÓRIO, até 5000 caracteres. Texto padrão sugerido: "Declaro, sob as penas da lei, que o conteúdo desta declaração é verdadeiro e que não estou cometendo crime contra a ordem tributária."
InformacoesComplementaresNoInformações complementares (opcional, até 5000 caracteres).
DeclaracaoContribuinteICMSYesTexto da declaração de contribuinte ICMS (xObs1). OBRIGATÓRIO, até 2000 caracteres. Texto padrão sugerido: "Declaro, sob as penas da lei, que não sou contribuinte do ICMS."
InformacoesAdicionaisFiscoNoInformações adicionais de interesse do fisco (opcional, até 2000 caracteres).

Output Schema

ParametersJSON Schema
NameRequiredDescription
chaveNo
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
serieNo
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
numeroNo
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
base64XmlNo
protocoloNo
base64DACENo
tipoAmbienteNo
Behavior3/5

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

Annotations are limited to openWorldHint: true, which the description does not contradict. The description adds value by stating the prerequisite (DC-e service enabled) but does not disclose other behavioral traits such as idempotency, error handling, or side effects. For a tool with sparse annotations, the description provides minimal additional behavioral context.

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?

The description is extremely concise with two sentences that communicate the core purpose and a key prerequisite. Every word serves a purpose, and the information is front-loaded. No fluff or repetition.

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

Completeness2/5

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

Despite the complexity of the tool (20 parameters, nested objects, output schema), the description is very brief. It does not explain the output, error scenarios, or provide guidance on handling the complex nested structures. For a tool of this complexity, the description is insufficiently complete.

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 description coverage is high (75%), so the schema already documents most parameters. The description adds contextual meaning (non-fiscal items, individual/MEI) but does not elaborate on parameter usage beyond what the schema provides. The prerequisite mentioned is not a parameter, so the description adds limited parameter-level value.

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

Purpose5/5

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

The description clearly states the tool emits DC-e for transporting non-fiscal items by individuals or MEI, using a specific verb ('Emite') and resource ('DC-e'). It distinguishes from sibling emission tools like nfe_emitir or cte_emitir by specifying the domain (non-fiscal items, individual/MEI) and a prerequisite (DC-e service enabled).

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

Usage Guidelines3/5

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

The description mentions a prerequisite ('Requer serviço DC-e habilitado no cadastro') but does not explicitly state when to use this tool vs alternatives, nor does it provide exclusions or context for selecting among sibling emission tools. Usage is implied by the tool name and description.

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

evento_cancelarCancelar documento fiscalA
Destructive
Inspect

Cancela um documento fiscal autorizado (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e). Informe a chave de 44 dígitos e a justificativa (mínimo 15 caracteres). Para NFS-e use TipoDocumento=1 e informe NumeroNFSe ao invés de chave. Prazo SEFAZ NF-e: 24h após autorização (algumas UFs mais).

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNFYesChave de acesso de 44 dígitos da NF-e/NFC-e/CT-e/MDF-e/DC-e a cancelar. Obrigatório quando TipoDocumento = 0 (documentos NFe-family). Para NFS-e (TipoDocumento = 1) use NumeroNFSe.
DataEventoNoData do evento de cancelamento do documento (Caso não for enviado é considerada a data e hora atual)
NumeroNFSeNoNúmero da NFS-e a ser cancelada
TipoAmbienteYesAmbiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Se a nota foi emitida em homologação (testes), use 2. Valores: 1 - Produção; 2 - Homologação
JustificativaYesMotivo do cancelamento. MÍNIMO 15 caracteres, MÁXIMO 1000. NÃO use texto genérico como "cancelamento" ou "erro" - descreva o motivo real (ex: "Erro no valor unitário do produto X"). Obrigatório para TipoDocumento = 0 (NFe-family).
TipoDocumentoYesTipo do documento fiscal a cancelar. Valores: 0 - NF-e, NFC-e, CT-e, MDF-e, DC-e (usa ChaveNF de 44 dígitos); 1 - NFS-e (usa NumeroNFSe + CodCancelamentoNFSe + TipoAmbiente)
NumeroProtocoloNoNúmero do protocolo de autorização original do documento (obrigatório quando a nota foi emitida por OUTRO sistema externo). Se o documento foi emitido pelo próprio BrasilNFe, o protocolo é localizado automaticamente.
NumeroSequencialNoNúmero sequencial do evento
CodCancelamentoNFSeNoCódigo do motivo de cancelamento da NFS-e (Padrão 1) Valores: 1 - Erro na emissão; 2 - Serviço não prestado; 3 - Duplicidade da nota; 9 - Outros
CpfCnpjRemetenteDCeNoCPF ou CNPJ do Usuário Emitente (Remetente) da DC-e original. Obrigatório no cancelamento de DC-e quando a nota não está cadastrada no sistema (caso esteja, o valor é lido da própria NotaFiscal).

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo
Behavior4/5

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

Annotations already indicate destructiveHint=true and openWorldHint=true. The description adds valuable behavioral details such as the 44-digit key requirement, minimum 15-character justification, SEFAZ deadline, and the alternative parameter set for NFS-e. This context helps the agent understand side effects and prerequisites beyond the annotations.

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

Conciseness4/5

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

The description is a single dense paragraph that front-loads the core action and then covers key exceptions and requirements. While effective, it could benefit from slightly more structure (e.g., bullet points or separation of general vs. NFS-e rules) to improve scanability.

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?

Given the tool's complexity (10 parameters, multiple document types, varying rules), the description adequately covers essential points: document types, key format, justification constraints, deadline, and NFS-e handling. The presence of an output schema reduces the burden to explain return values. Minor omission: no mention of the CpfCnpjRemetenteDCe parameter context in the description.

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% with all parameters documented. The description adds high-level usage context (e.g., 'Para NFS-e use TipoDocumento=1 e informe NumeroNFSe') and emphasizes justification quality, which helps the agent select appropriate parameter values. It does not repeat schema details but adds practical guidance.

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

Purpose5/5

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

The description clearly states the action (Cancela) and the specific resource (documento fiscal autorizado) with a list of document types (NF-e, NFC-e, NFS-e, CT-e, MDF-e, DC-e). It distinguishes the tool from siblings by focusing solely on cancellation and mentions the 44-digit key requirement, making it unambiguous.

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 description provides good usage context, including when to use the tool (cancel authorized documents), key conditions (e.g., 24h deadline for NF-e, differentiation for NFS-e), and justification requirements. However, it does not explicitly exclude scenarios where other sibling tools (e.g., carta_correcao, inutilizar) should be used instead.

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

evento_carta_correcaoEnviar Carta de Correção (CC-e)AInspect

Envia Carta de Correção (CC-e) para uma NF-e ou CT-e já autorizada (evento tipo 2). Não pode corrigir: valores, datas de emissão/saída, partes envolvidas (CNPJ/CPF), regimes tributários ou número/série do documento. Limite: 20 CC-e por NF-e.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveNFYesChave de acesso de 44 dígitos da NF-e ou CT-e a corrigir.
CorrecaoNoTexto da correção (mínimo 15, máximo 1000 caracteres). Obrigatório para NF-e (modelo 55). Não pode corrigir variáveis que afetam tributos (valores, quantidades, base de cálculo, alíquotas) nem dados de remetente/destinatário, nem data de emissão. Para CT-e use a lista Correcoes em vez deste campo.
CorrecoesNoLista de correções estruturadas (campo, grupo, valor). Usado SOMENTE para CT-e (modelo 57). Para NF-e/NFC-e use o campo Correcao acima.
TipoAmbienteYesAmbiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Se a nota foi emitida em homologação, use 2. Valores: 1 - Produção; 2 - Homologação
NumeroSequencialNoNúmero sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo
Behavior4/5

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

The description adds behavioral context beyond annotations: it states the tool modifies authorized documents via a correction event, lists specific non-corrigible fields, and provides a usage limit. The openWorldHint annotation is supported by the description's additional constraints.

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?

The description is very concise: three sentences that front-load the primary action, then add constraints and limits. No unnecessary words or redundancy.

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?

Given the tool's complexity (5 parameters, 2 required, enum, output schema exists), the description adequately explains the purpose, constraints, and usage context. It could mention error handling or process flow but is sufficiently complete for an agent to use the tool correctly.

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?

The input schema already covers all parameters with descriptions (100% coverage). The tool description reiterates some restrictions but does not add significant parameter-level meaning beyond the schema's own descriptions.

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

Purpose5/5

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

The description starts with a clear verb 'Envia' and specifies the resource 'Carta de Correção (CC-e)' for NF-e or CT-e already authorized, and distinguishes it from other sibling tools by mentioning it is event type 2, which is unique among the evento_ siblings.

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

Usage Guidelines3/5

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

The description lists restrictions on what cannot be corrected (values, dates, parties, etc.) and a limit of 20 per NF-e, but does not explicitly contrast with alternatives like evento_cancelar or evento_inutilizar, leaving the agent to infer usage boundaries.

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

evento_inutilizarInutilizar numeraçãoA
Destructive
Inspect

Inutiliza uma faixa de numeração não utilizada na SEFAZ. Útil quando há quebra de sequência por erro de emissão. Não pode ser desfeito. Operação rara - confirme com o usuário antes.

ParametersJSON Schema
NameRequiredDescriptionDefault
SerieYesSérie referente ao modelo do documento. Deve ser > 0.
TipoAmbienteYesIdentificação do Ambiente. IMPORTANTE: passe explicitamente. Inutilização em produção é IRREVERSÍVEL. Valores: 1 - Produção (faixa fica DEFINITIVAMENTE inutilizada na SEFAZ); 2 - Homologação (teste)
JustificativaYesJustificativa da inutilização. Mínimo 15, máximo 255 caracteres. Descreva o motivo real (ex: "Erro de digitação - série pulada por engano no sistema interno").
NumeracaoFinalYesFinal da faixa numérica a inutilizar. Deve ser >= NumeracaoInicial.
ModeloDocumentoYesCódigo do modelo do Documento Fiscal a inutilizar. Valores: 55 - NF-e; 65 - NFC-e; 57 - CT-e
NumeracaoInicialYesInício da faixa numérica a inutilizar. Deve ser > 0 e <= NumeracaoFinal.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo
Behavior5/5

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

Annotations already indicate destructiveHint: true. Description adds essential behavioral context: 'Não pode ser desfeito' (irreversible) and 'confirme com o usuário antes' (require user confirmation). This goes beyond annotations, making behavioral traits fully transparent.

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 concise sentences, each serving a purpose: core function, use case, and critical warning. No redundant information; front-loaded with primary action.

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

Completeness5/5

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

Given destructiveHint annotation, full schema coverage, and output schema presence, the description is complete. It adds the crucial context of irreversibility and user confirmation, ensuring safe usage.

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 covers all 6 parameters with descriptions (100% coverage). Description does not add new parameter-specific meaning beyond what schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

Description explicitly states 'Inutiliza uma faixa de numeração não utilizada na SEFAZ.' The verb 'inutilizar' and specific resource 'faixa de numeração' clearly define the tool's purpose, distinguishing it from sibling tools like 'evento_cancelar' or 'nfe_emitir'.

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

Usage Guidelines5/5

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

Provides clear guidance: 'Útil quando há quebra de sequência por erro de emissão.' Also warns 'Não pode ser desfeito. Operação rara - confirme com o usuário antes.' This tells when to use and when not to (rare, irreversible), exceeding basic guidelines.

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

evento_manifestarManifestar destinatárioCInspect

Registra a manifestação do destinatário sobre uma NF-e. TipoEvento: 0=ciência da operação, 1=confirmação da operação, 2=desconhecimento, 3=operação não realizada.

ParametersJSON Schema
NameRequiredDescriptionDefault
ChaveYesChave de acesso de 44 dígitos da NF-e a manifestar.
TipoAmbienteYesAmbiente do documento original (DEVE bater com o ambiente onde a nota foi emitida). IMPORTANTE: passe explicitamente. Manifestação de NF de prod precisa ser ambiente 1. Valores: 1 - Produção; 2 - Homologação
JustificativaNoJustificativa. OBRIGATÓRIA quando TipoManifestacao = 4 (mínimo 15 caracteres). Para outros tipos pode omitir.
NumeroSequencialNoNúmero sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível.
TipoManifestacaoYesTipo da manifestação do destinatário. Valores: 1 - Confirmação da Operação; 2 - Ciência da Operação; 3 - Desconhecimento da Operação; 4 - Operação não Realizada (exige Justificativa com 15+ caracteres)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo
Behavior3/5

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

Annotations show openWorldHint=true, indicating side effects. The description's 'Registra' confirms a write operation, but no further behavioral details (e.g., authorization, rate limits) are provided. The description does not contradict annotations.

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

Conciseness3/5

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

The description is short and to the point, but the inconsistent mapping adds confusion. It is not overly verbose, but the flawed content detracts from conciseness.

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

Completeness2/5

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

Given the existence of an output schema, the description doesn't need to cover return values. However, it fails to mention important preconditions (e.g., NF-e must exist, status constraints) or error scenarios. The description is insufficient for a complete understanding of tool behavior.

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

Parameters1/5

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

Schema coverage is 100%, so baseline is 3. However, the description introduces 'TipoEvento' with values 0-3, but the schema defines 'TipoManifestacao' with values 1-4 and different mappings. This incorrect and misleading information actively harms the agent's ability to set the parameter correctly, making the description worse than providing no extra information.

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?

The description clearly states the tool's purpose: registering a recipient's manifestation about an NF-e. The verb 'Registra' and resource 'manifestação do destinatário sobre uma NF-e' are specific. However, the mapping for TipoEvento is inconsistent with the schema's TipoManifestacao, which slightly reduces clarity.

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

Usage Guidelines3/5

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

The description provides a mapping for event types but does not explain when to use this tool versus other event tools (e.g., evento_cancelar). No explicit guidance on prerequisites or alternatives is given.

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

fci_gerarGerar FCIAInspect

Gera o arquivo FCI (Ficha de Conteúdo de Importação) requerido para produtos com conteúdo importado em operações interestaduais.

ParametersJSON Schema
NameRequiredDescriptionDefault
ProdutosNoProdutos para gerar os registros do arquivo FCI
TransmitirNoQuando verdadeiro, além de gerar o arquivo, assina e transmite a mídia via programa TED. Requer certificado e-CNPJ configurado na empresa.
ValidarCodigosNoQuando verdadeiro retorna erro caso envie produtos com código repetido
Behavior3/5

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

The description mentions generating a file but doesn't disclose that transmission may occur if Transmitir is true, nor that it requires a certificate. With minimal annotations, the description provides basic context but lacks depth on side effects.

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?

Single sentence, front-loaded with action and purpose. No wasted words.

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

Completeness3/5

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

Given no output schema, the description doesn't explain what the tool returns (e.g., file content or confirmation). It is adequate but not comprehensive for a tool with multiple behaviors.

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%, so baseline is 3. The description adds no extra parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool generates an FCI file for products with imported content in interstate operations. It uses specific verb 'Gera' and resource 'arquivo FCI', distinguishing it from siblings like nfe_emitir.

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 description implies usage when an FCI file is needed for products with imported content. However, it lacks explicit when-not or alternative tool guidance.

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

healthHealth-checkA
Read-onlyIdempotent
Inspect

Verifica a saúde da API BrasilNFe (status, timestamp, versão). Não recebe parâmetros.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds expected return fields (status, timestamp, version) without contradicting annotations.

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?

A single sentence conveying all necessary information with no redundancy. Front-loaded with purpose and constraints.

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

Completeness5/5

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

Given no parameters, no output schema, and annotations covering safety, the description fully informs the agent about the tool's behavior and return values.

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?

No parameters exist, so schema coverage is 100%. The description adds no parameter info because none are needed, which is appropriate.

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

Purpose5/5

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

The description clearly states the tool checks health of the API BrasilNFe, returning status, timestamp, and version. It is specific and distinguishes from sibling tools like 'sefaz_status' which checks SEFAZ status.

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 description notes no parameters are needed, making usage clear. It does not explicitly state when to use this tool versus alternatives, but the simplicity and context imply it for health checks.

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

imposto_calcularSimular cálculo de impostosA
Read-onlyIdempotent
Inspect

Simula o cálculo de impostos (ICMS, PIS, COFINS, IPI, ST) sobre uma lista de produtos sem emitir nota. Útil para precificação.

ParametersJSON Schema
NameRequiredDescriptionDefault
CountNo
CapacityNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
TotalNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
ImpostosNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by specifying which taxes are considered (ICMS, PIS, COFINS, IPI, ST) and that no note is issued. This is consistent with annotations and provides useful behavioral detail beyond the annotations.

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?

The description is a single sentence plus a short phrase, no wasted words. It conveys the core purpose and usage context efficiently.

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

Completeness2/5

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

Despite concise purpose, the description fails to explain the two undocumented parameters (Count and Capacity) which are likely essential for providing the product list. The tool complexity (simulating multiple taxes) demands more detail. The output schema exists but is not described; return values are not covered.

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

Parameters1/5

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

The input schema has two parameters (Count, Capacity) with no descriptions. Schema coverage is 0%. The tool description does not explain what these parameters represent or how they relate to the product list. Since the description adds no meaning beyond the schema, this is a critical gap.

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

Purpose5/5

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

Description clearly states the verb 'simulate' and resource 'tax calculation (ICMS, PIS, COFINS, IPI, ST) on a list of products'. It distinguishes from siblings like 'nfe_emitir' by explicitly saying 'without issuing an invoice'. This is specific and unambiguous.

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?

Description says 'Útil para precificação' (useful for pricing), indicating when to use. It does not explicitly mention when not to use or alternatives, but the context of simulation vs. emission tools is clear from the description. With annotations showing readOnly and idempotent, the agent knows it's a safe simulation.

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

mdfe_emitirEmitir MDF-eBInspect

Emite MDF-e (Manifesto Eletrônico de Documentos Fiscais), agrupando vários CT-e/NF-e em um único transporte. Obrigatório para transportadores com vários DFs no mesmo veículo.

ParametersJSON Schema
NameRequiredDescriptionDefault
loteNo
pesoYesPeso bruto total das mercadorias em KG. DEVE ser > 0.
AereoNo
serieNo
valorYesValor total das mercadorias transportadas. DEVE ser > 0.
codigoNo
numeroNo
segurosNo
AquaviarioNo
RodoviarioNoDados do transporte rodoviário (placa 7 caracteres, condutores com CPF/nome, UF do veículo). OBRIGATÓRIO quando modalidade = 1.
modalidadeYesModalidade de transporte. Valores: 1 - Rodoviário (exige objeto Rodoviario com placa, condutores e percurso); 2 - Aéreo (exige objeto Aereo); 3 - Aquaviário (exige objeto Aquaviario); 4 - Ferroviário (exige objeto Ferroviario)
observacaoNo
DataEmissaoNo
FerroviarioNo
percursoUfsNo
tipoAmbienteYesTipo de ambiente. IMPORTANTE: passe explicitamente. Para testes use 2. Valores: 1 - Produção; 2 - Homologação
tipoEmitenteYesTipo de emitente. Valores: 1 - Prestador de Serviço de Transporte (transportadora); 2 - Transportador de carga própria (mais comum - empresa transportando seus próprios produtos)
carregamentosNo
ufCarregamentoYesUF de carregamento (origem). Sigla de 2 letras (SP, RJ, MG...).
observacaoFiscoNo
descarregamentosNo
ufDescarregamentoYesUF de descarregamento (destino). Sigla de 2 letras (SP, RJ, MG...).
produtoPredominanteNoProduto predominante transportado. Opcional.
identificadorInternoNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
chaveNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
numeroNo
statusNo1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote
base64XmlNo
base64DAMDFeNo
tipoAmbienteNo
codRespostaSefazNo
Behavior2/5

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

Annotations provide only openWorldHint (schema may be incomplete) and no destructiveHint. The description is minimal and does not disclose behavioral traits beyond 'emits MDF-e'. Key aspects like network dependency, synchronous/asynchronous nature, side effects on existing documents (e.g., consuming CT-e/NF-e), or prerequisites (e.g., having valid CT-e/NF-e) are omitted. With sparse annotations, the description should carry more weight.

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

Conciseness3/5

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

The description is short (two sentences) and front-loaded with the main purpose, which is good. However, for a complex tool with 24 parameters and nested objects, the description could be slightly longer to cover essential usage context. It is not verbose, but it skimps on important details, making it feel incomplete.

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

Completeness2/5

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

Given the tool's complexity (24 parameters, 7 required, nested objects, enums, and many siblings), the description is too brief. It does not mention prerequisites (e.g., having CT-e/NF-e to reference), the need for internet/SEFAZ, the overall flow (e.g., after emission, call mdfe_encerrar), or the output format (though an output schema exists). The openWorldHint is not leveraged to explain schema extensions.

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

Parameters2/5

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

The description adds no parameter-level detail; it only explains the overall purpose. Given the low schema description coverage (38%), the description should compensate by explaining key parameters like modalidade, tipoAmbiente, or the relationship between modalidade and required transport objects. The schema itself contains some descriptions, but the tool description fails to provide an overview or usage hints for the many parameters.

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

Purpose5/5

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

The description clearly states the action (emits MDF-e), the resource (Manifesto Eletrônico de Documentos Fiscais), and the core purpose (aggregating multiple CT-e/NF-e into a single transport). It also specifies when it's mandatory (for transporters with multiple DF in the same vehicle). This effectively distinguishes it from sibling tools like cte_emitir (which emits single CT-e) or nfe_emitir (single NF-e).

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 description gives a clear usage indication: it is mandatory for transporters with multiple DFs in the same vehicle. This implies when to use it versus alternatives. However, it does not explicitly state when NOT to use it (e.g., for single CT-e, use cte_emitir) or provide explicit comparisons with siblings. Still, the context is sufficient for an informed agent.

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

mdfe_encerrarEncerrar MDF-eAInspect

Encerra um MDF-e já autorizado (evento tipo 3). Obrigatório ao final de cada transporte. Sem encerramento, novos MDF-e podem ser bloqueados pela SEFAZ.

ParametersJSON Schema
NameRequiredDescriptionDefault
chaveYesChave de acesso de 44 dígitos do MDF-e a encerrar.
protocoloNoProtocolo de autorização do MDF-e original. Opcional - se omitido, o sistema localiza pela chave.
tipoAmbienteYesAmbiente do MDF-e original (DEVE bater com o ambiente onde o manifesto foi emitido). IMPORTANTE: passe explicitamente. ATENÇÃO: encerramento é DEFINITIVO - revise os dados antes. Valores: 1 - Produção; 2 - Homologação
numeroSequencialNoNúmero sequencial do evento. Se omitido, o sistema usa o próximo disponível.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento
DsEventoNo
DsMotivoNo
DsAmbienteNo
NuProtocoloNo
NumeroSequencialNo
CodStatusRespostaSefazNo
Behavior4/5

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

The description reveals that the tool performs a finalizing action, and the parameter description for 'tipoAmbiente' explicitly warns that 'encerramento é DEFINITIVO - revise os dados antes' (closure is definitive). The annotation 'openWorldHint: true' indicates potential external side effects, and the description supplies additional context about consequences. This exceeds what annotations alone provide.

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?

The description is extremely concise, consisting of two sentences. The first sentence immediately states the action, and the second adds key context about necessity and consequences. No superfluous words or information are present.

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?

The description covers the essential aspects: the action, its mandatory nature, and the consequence of not using it. It mentions the event type and that the MDF-e must be authorized. With an output schema present, return values are not required. It could briefly mention prerequisites or typical errors, but overall it is sufficient for this straightforward tool.

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?

The main description does not add parameter-level information, but the schema descriptions cover 100% of parameters with detailed explanations, including an explicit warning for 'tipoAmbiente'. As schema coverage is high, a baseline of 3 is appropriate; the main description could be enhanced to summarize parameter usage but is not required.

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

Purpose5/5

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

The description clearly states the action: 'Encerra um MDF-e já autorizado' (closes an already authorized MDF-e). It uses a specific verb and resource, and the tool name reflects this. The sibling tools list includes other actions like mdfe_emitir and evento_cancelar, but no other tool closes MDF-e, so it is well-distinguished.

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 description explicitly states that closing is 'Obrigatório ao final de cada transporte' (mandatory at the end of each transport) and warns that without it new MDF-e may be blocked. This provides clear context for when to use the tool. It does not mention alternatives because there are none for this specific action, so no exclusions are needed.

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

nfe_emitirEmitir NF-e ou NFC-eAInspect

Emite uma NF-e (modelo 55) ou NFC-e (modelo 65) na SEFAZ. Use modeloDocumento=55 para NF-e (B2B com destinatário CPF/CNPJ) ou modeloDocumento=65 para NFC-e (consumidor final). Retorna chave de acesso (44 dígitos), número, protocolo, status e XML/DANFE em base64. Operação síncrona (pode levar 5-30s). Use tipoAmbiente=2 (homologação) para testes.

ParametersJSON Schema
NameRequiredDescriptionDefault
LoteNoLote da Nota Fiscal
SerieNoSérie da nota Fiscal
CodigoNoB03 - Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e.
NumeroNoNúmero da nota fiscal
ClienteNoDestinatário da nota. OBRIGATÓRIO para NF-e (modelo 55). Para NFC-e (modelo 65) só é obrigatório quando IndicadorPresenca = 4 (entrega a domicílio). Quando informado para NF-e mod 55, exige: CpfCnpj, NmCliente, IndicadorIe (1/2/9), Endereco com Logradouro e UF (e CEP/Município/Bairro quando não exportação).
EntregaNo
ExportaNo
CobrancaNo
ProdutosYesItens da nota fiscal. Mínimo 1 item.
RetencoesNoRetenções federais totais da nota (IRRF, PIS/COFINS/CSLL retidos, Previdência). Gera a tag retTrib no XML.
FinalidadeYesFinalidade da emissão da NF. Valores: 1 - Normal (caso mais comum); 2 - Complementar (referenciando NF anterior em NFReferencia); 3 - Ajuste; 4 - Devolução
ObservacaoNo
PagamentosNoFormas de pagamento. OBRIGATÓRIO quando Finalidade = 1 (Normal). Para finalidades 2/3/4 pode ficar vazio. Para NFC-e (mod 65) deve haver pelo menos um pagamento com FormaPagamento diferente de "90" (sem pagamento).
TransporteNo
DataEmissaoNoData e Hora da saída ou de entrada da produto/serviço (Envia a data atual caso não informada)
EnviarEmailNo
CalcularIBPTNoIndica operação com Consumidor final (NFCe de ser 1 Validar!)
NFReferenciaNoNotas fiscal de Referência
TipoAmbienteYesIdentificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão REAL, com valor fiscal, irreversível); 2 - Homologação (teste, sem valor fiscal - use durante desenvolvimento e testes)
JustificativaNoUtilizar quando o tipo de emissão for diferente normal
ConsumidorFinalNoIndica operação com Consumidor final (NFCe de ser 1 Validar!)
ModeloDocumentoYesCódigo do modelo do Documento Fiscal. Valores: 55 - NF-e (B2B / com destinatário CPF/CNPJ identificado); 65 - NFC-e (consumidor final / varejo)
ObservacaoFiscoNo
DataEntradaSaidaNoData e Hora da saída ou de entrada da produto/serviço
NaturezaOperacaoYesDescrição da natureza da operação (máx 60 caracteres). Exemplos: "Venda de mercadoria", "Remessa para industrialização", "Devolução de venda".
IndicadorPresencaYesIndicador de presença do comprador no estabelecimento comercial no momento da operação. Padrão sugerido para NF-e B2B = 9 (operação não presencial, outros). Para NFC-e varejo = 1 (presencial). Valores: 0 - Não se aplica; 1 - Operação presencial;; 2 - Operação não presencial, pela Internet;; 3 - Operação não presencial, Teleatendimento;; 4 - NFC-e em operação com entrega a domicílio;; 5 - Presencial fora do estabelecimento;; 9 - Operação não presencial, outros.
IdentificadorInternoNo
IndicadorIntermediadorNoIndicador de intermediador/marketplace

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
ReturnNFNo
Base64XmlNo
Base64FileNo
Behavior4/5

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

The description discloses synchronous operation (5-30s) and return format (chave, número, protocolo, status, XML/DANFE base64). It implies irreversibility in production by recommending homologação for tests. No annotation contradictions. Could be more explicit about fiscal impact, but adequate.

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?

The description is extremely concise, using only a few sentences to convey essential information. It is front-loaded with the main purpose and structured logically: action, model choice, return values, timing, testing guidance. No superfluous text.

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?

Given the complexity (28 parameters, nested objects), the description covers the key aspects: models, sync timing, return values, testing. It does not mention prerequisites like certificates, but the agent can infer from context. Output schema exists, so return values are partially covered. Sufficient for an AI agent.

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 description coverage is 71%, which is high. The description adds context for a few key parameters (modeloDocumento, tipoAmbiente) but does not significantly enhance understanding beyond the schema's own descriptions. Meets baseline for high coverage.

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

Purpose5/5

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

The description clearly states the verb 'Emite' and the specific resources (NF-e and NFC-e), distinguishing between model 55 (B2B) and model 65 (consumer). It also lists the return values, leaving no ambiguity about the tool's function.

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 description provides explicit guidance on when to use each model (modeloDocumento=55 for B2B, 65 for consumer) and recommends using tipoAmbiente=2 for testing. It does not mention sibling tools like nfe_emitir_complementar, but the use cases are clear.

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

nfe_emitir_complementarEmitir NF-e complementarAInspect

Emite uma NF-e complementar referenciando uma NF-e já autorizada. Usado para complementar valores, impostos ou itens (finalidade=2). Informe a chave da nota original em NFReferencia.

ParametersJSON Schema
NameRequiredDescriptionDefault
CFOPNoCFOP
LoteNoLote da Nota Fiscal
SerieNoSérie da nota Fiscal
CodigoNoCódigo numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e.
NumeroNoNúmero da nota fiscal
ClienteNo
CobrancaNo
ProdutosNo
ObservacaoNo
TransporteNo
NFReferenciaNoNotas fiscal de Referência
TipoAmbienteNoIdentificação do Ambiente Valores: 1 - Produção; 2 - Homologação
ObservacaoFiscoNo
TipoComplementoNoTipo de complemento Valores: 0 - Complementar quantidade ou valor; 1 - Complementar impostos
NaturezaOperacaoNoDescrição da Natureza da Operação
ImpostoComplementarNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
ReturnNFNo
Base64XmlNo
Base64FileNo
Behavior3/5

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

Description states it emits a new NF-e, indicating creation behavior. Annotations provide only openWorldHint=true, so description carries burden. It does not disclose potential side effects on the referenced NF-e, authorization requirements, or rate limits.

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, front-loaded with purpose and usage. No extraneous words. Provides essential information compactly.

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

Completeness2/5

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

Despite output schema existing, the tool has 16 parameters with nested objects, many required subfields, and complex options like TipoComplemento. Description does not guide on these or warn about required fields. For a complex tool, this is insufficiently complete.

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 description coverage is 56% (moderate). Description adds value by explaining that NFReferencia field should contain the key of the original NF-e. Other parameters are not elaborated, but schema descriptions are detailed. Baseline 3 is appropriate as description adds some meaning beyond schema.

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

Purpose5/5

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

Description clearly states it emits a supplementary NF-e referencing an already authorized NF-e, with specific purpose of complementing values, taxes, or items (finalidade=2). This distinguishes it from normal NF-e emission tool (nfe_emitir).

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?

Description explains when to use: for complementing an existing authorized NF-e. It implies not to use for first-time NF-e. However, it does not explicitly exclude normal NF-e emission or list prerequisites beyond referencing the key.

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

nfenercom_emitirEmitir NF-EnerComCInspect

Envia a NF-EnerCom (Nota Fiscal de Energia Comercializada) para autorização na SEFAZ.

ParametersJSON Schema
NameRequiredDescriptionDefault
serieNoSérie da nota fiscal. Quando não informado é controlado pelo Painel
numeroNoNúmero da nota fiscal. Quando não informado é controlado pelo Painel
energiaNoInformações referente a nota de Energia
produtosYesItens da nota (mínimo 1). Cada item exige codigo, descricao, unidadeMedida, quantidade, valor, CFOP.
situacaoNoSituação do documento (Padrão 4) Valores: 1 - documento fiscal cancelado dentro do mesmo período de apuração;; 2 - documento fiscal emitido em substituição a um documento fiscal cancelado dentro do mesmo período de apuração; 3 - documento fiscal complementar; 4 - demais casos
comunicaoNoInformações referente a nota de comunicação e Telecomunicação
dataEmissaoYesData de emissão do documento. Obrigatória.
destinatarioYesInformações do destinatário (cliente). OBRIGATÓRIO.
tipoAmbienteYesTipo de ambiente. Valores: 1 - Produção; 2 - Homologação
modeloDocumentoYesModelo do documento. Valores: 6 - Energia elétrica; 21 - Comunicação; 22 - Telecomunicação
valorTotalFaturaYesValor total da fatura comercial. Deve ser > 0.
identificadorInternoNoCódigo de controle interno unico da venda. Evita duplicidades, caso configurado.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errosNoLista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao.
avisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em sucesso.
statusNoStatus do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida).
Behavior2/5

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

Description discloses the action (send for authorization) but does not explain behavioral traits like idempotency, side effects, or permissions. Annotations provide openWorldHint but no additional context.

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

Conciseness4/5

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

Single sentence, concise and front-loaded. However, could be slightly more structured by mentioning key constraints.

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

Completeness2/5

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

Given 12 parameters, 6 required, nested objects, and an output schema, the description is too brief. It does not explain prerequisites, return value, or workflow. Incomplete for a complex tool.

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% with descriptions for all parameters. The tool description adds no further semantics beyond the schema, so baseline score of 3 is appropriate.

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?

Description clearly states the action (Envia) and resource (NF-EnerCom) and purpose (autorização na SEFAZ). It distinguishes from general emission tools like nfe_emitir by specifying 'Energia Comercializada', but does not explicitly differentiate from siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., nfe_emitir, nfenercom_gerar_arquivo). No when-not or context provided.

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

nfenercom_gerar_arquivoGerar arquivo NF-EnerComAInspect

Gera o arquivo da Nota Fiscal de Energia (NF-EnerCom). Pré-requisito para nfenercom_emitir.

ParametersJSON Schema
NameRequiredDescriptionDefault
anoNoAno de emissão das notas (4 dígitos). Obrigatório quando tipoGeracao = 1.
mesNoMês de emissão das notas (1-12). Obrigatório quando tipoGeracao = 1.
notasNoNotas Fiscais de Energia/Comunicação/Telecomunicação a incluir no arquivo. Obrigatório quando tipoGeracao = 2.
tipoGeracaoYesTipo de geração do arquivo. Valores: 1 - Gera o arquivo a partir das notas já emitidas no período (mes + ano informados); 2 - Gera o arquivo a partir da lista de notas informada em "notas"
tipoAmbienteYesTipo de ambiente. Valores: 1 - Produção; 2 - Homologação
Behavior2/5

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

With no annotations beyond title, the description does not disclose behavioral traits such as side effects, state changes, authentication needs, or output format. It only states the tool generates a file without further detail.

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?

Extremely concise: two sentences, no wasted words. Front-loaded with purpose and usage context.

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

Completeness3/5

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

Description is brief and does not cover return values, error handling, or process details. Given the complex nested parameters and no output schema, it is minimally adequate but leaves gaps.

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%, so the description does not add meaning beyond what the input schema already provides. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it generates the NF-EnerCom file (specific resource) and identifies itself as a prerequisite for nfenercom_emitir, distinguishing it from sibling tools that handle other document types.

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?

Explicitly indicates it is a prerequisite for nfenercom_emitir, providing clear when-to-use context. However, it does not explicitly state when not to use or list alternatives.

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

nfe_previsualizarPré-visualizar DANFEA
Read-onlyIdempotent
Inspect

Gera o DANFE em PDF como pré-visualização, sem enviar para a SEFAZ. Útil para conferência visual antes de emitir.

ParametersJSON Schema
NameRequiredDescriptionDefault
Base64XmlNo
TipoEnvioNoTipo do envio no qual será convertido para o tipo do arquivo informado (Padrão - 0) Valores: 0 - Base64 contendo as informações do XML; 1 - Objeto contendo as informações das notas fiscais
notaFiscalNo
TipoArquivoNoTipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF
mostrarTarjaPreVisualizacaoNoMostrar tarja "SEM VALOR FISCAL - PRÉ-VISUALIZAÇÃO" (Padrão - Verdadeiro) Somente para o tipo de arquivo 1 - PDF

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusNo
Base64FileNo
Behavior5/5

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

Annotations declare readOnlyHint=true and idempotentHint=true, and the description aligns perfectly by stating it generates a preview without sending to SEFAZ. The description adds valuable context about the tool's non-destructive nature and the watermark option (`mostrarTarjaPreVisualizacao`), exceeding the annotations' information.

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?

The description consists of two concise sentences that front-load the core purpose ('Gera o DANFE em PDF como pré-visualização') and then add a specific use case. Every sentence earns its place with no superfluous content.

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 preview tool with an output schema (assumed to document the generated file), the description sufficiently covers the tool's role and constraints. It could briefly mention the output format (e.g., base64 PDF), but given the output schema exists, the missing detail is non-critical. The description feels complete for its simplicity.

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?

The input schema has a 60% description coverage, meaning many parameters are self-documented but some are not. The description itself adds no parameter-level information beyond what the schema provides. Given the schema's rich descriptions for nested objects, the baseline score of 3 is appropriate, as the description does not compensate for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states the tool generates a DANFE PDF preview without sending to SEFAZ, using a specific verb ('Gera') and resource ('DANFE em PDF como pré-visualização'). It distinguishes itself from sibling tool `nfe_emitir` by explicitly saying 'sem enviar para a SEFAZ', making its purpose unmistakable.

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 description provides clear usage context ('Útil para conferência visual antes de emitir') and implies it should be used before actual emission. It does not explicitly name alternatives or when not to use, but the sibling tools (e.g., `nfe_emitir`) are self-evident for actual emission. The guidance is adequate for an agent to infer correct usage.

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

nfse_consultarConsultar NFS-eC
Read-onlyIdempotent
Inspect

Consulta status e dados de uma NFS-e já enviada por número, série e ambiente.

ParametersJSON Schema
NameRequiredDescriptionDefault
RpsNoRps para retornar (Se não enviar retorna todos)
codLoteNoCódigo do lote

Output Schema

ParametersJSON Schema
NameRequiredDescription
LoteNoNúmero do lote enviado;
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
NotasNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
CodLoteNoCódigo atrelado ao lote; - Usado para busca de lotes
ProtocoloNoNúmero de protocolo do lote
StatusLoteNo1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote
Base64XmlLoteNoDados xml do lote, bytes em base64
DsTipoAmbienteNoDescrição do ambiente de envio
MunicipioEnvioNoMunicipio onde foi enviado
CodTipoAmbienteNoCódigo do ambiente de envio
DataRecebimentoNoData de recebimento do lote;
TempoRequisicaoPrefeituraNoTempo total da transmissão para prefeitura em milisegundos
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, ensuring safe and idempotent behavior. The description adds that the NFS-e is 'already sent,' which is useful context but minimal beyond annotations.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the core purpose. There is no unnecessary content, but it lacks detail about parameter relationships.

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

Completeness3/5

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

The tool has an output schema (not shown) and annotations covering safety. However, the description does not explain how to use the optional parameters, nor does it clarify the mismatch between described inputs and actual schema. Given low complexity, it is minimally adequate but incomplete.

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

Parameters2/5

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

Schema description coverage is 100%, so parameters are documented. However, the tool description introduces terms (number, series, environment) not present in the schema, causing potential confusion about how Rps and codLote map to these concepts. The description does not add meaningful parameter explanation.

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

Purpose3/5

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

The description states it consults status and data of an already sent NFS-e by number, series, and environment, which clearly identifies the tool's purpose. However, the input schema lacks parameters for number, series, and environment, instead using Rps and codLote, creating confusion and reducing clarity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., nfse_emitir, other consult tools). The description does not mention prerequisites, context, or conditions for use.

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

nfse_emitirEmitir NFS-e (serviços)BInspect

Emite NFS-e (Nota Fiscal de Serviços Eletrônica). Cada município brasileiro tem regras e webservices próprios - confira o município emissor antes. Pode usar Portal Nacional NFS-e ou prefeitura específica conforme cadastro da empresa.

ParametersJSON Schema
NameRequiredDescriptionDefault
LoteNo
nFSInfoYesLista de NFS-e a emitir no lote. Mínimo 1 item.
TipoAmbienteYesIdentificação do ambiente da prefeitura/portal nacional. Valores: 1 - Produção (emissão REAL, com valor fiscal); 2 - Homologação (teste)

Output Schema

ParametersJSON Schema
NameRequiredDescription
LoteNoNúmero do lote enviado;
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
NotasNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
CodLoteNoCódigo atrelado ao lote; - Usado para busca de lotes
ProtocoloNoNúmero de protocolo do lote
StatusLoteNo1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote
Base64XmlLoteNoDados xml do lote, bytes em base64
DsTipoAmbienteNoDescrição do ambiente de envio
MunicipioEnvioNoMunicipio onde foi enviado
CodTipoAmbienteNoCódigo do ambiente de envio
DataRecebimentoNoData de recebimento do lote;
TempoRequisicaoPrefeituraNoTempo total da transmissão para prefeitura em milisegundos
Behavior2/5

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

The description adds minimal behavioral context beyond the annotation's openWorldHint. It mentions municipality-specific rules but omits details on authentication, rate limits, error conditions, or effects (e.g., whether the invoice becomes fiscal immediately). For a complex emission tool, this is insufficient.

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?

The description is extremely concise at two sentences, front-loading the core purpose. Every sentence is necessary and adds value.

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

Completeness2/5

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

The tool is complex with nested objects and many parameters, yet the description is too brief. It lacks information on prerequisites, validation, error handling, and expected behavior. The output schema exists, but overall completeness is low for such a critical financial operation.

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?

The input schema has extensive descriptions (coverage 67%), so the parameter semantics are well-covered by the schema. The tool description does not add additional meaning beyond the schema, but the schema itself is sufficient. Baseline score of 3 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?

The description clearly states the tool emits NFS-e (electronic service invoice) and mentions municipality-specific rules, making the purpose clear. However, it does not explicitly distinguish from sibling tools like nfe_emitir (goods) or cte_emitir (freight), relying on the name alone.

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

Usage Guidelines3/5

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

The description advises checking the issuer municipality and notes the option of national portal vs. city-specific, providing some usage context. No explicit when-to-use/when-not-to-use or alternatives are given, leaving gaps for an AI agent.

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

nota_listarListar notas fiscaisA
Read-onlyIdempotent
Inspect

Lista NF-e/NFC-e/NFS-e emitidas ou recebidas pela empresa em um intervalo de datas. Suporta filtros por chave, número, status e tipo.

ParametersJSON Schema
NameRequiredDescriptionDefault
DtFimNoData final da busca
DtInicioNoData inicial da busca
TipoDocumentoFiscalNoTipo do documento fiscal (Padrão 0 - Entrada) Valores: 0 - Entradas; 1 - Saídas
IndentificadorInternoNoBusca notas que possui o código interno informado (somente saídas)

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
NotasNo
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
Behavior3/5

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

Annotations already declare true readOnlyHint and idempotentHint, so the description does not need to repeat those. It adds date range and filter context but no further behavioral details.

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?

The description is extremely concise: two sentences front-loading the purpose and listing supported filters. No redundant words.

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?

Given the output schema exists (not shown but indicated), the description adequately covers purpose, filter types, and date range. Lacks mention of pagination or defaults, but is sufficient for selection and invocation.

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 descriptions cover all four parameters (100% coverage). The description provides a high-level summary of filter types but adds no new semantic detail beyond the schema.

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

Purpose5/5

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

The description clearly states the tool lists NF-e/NFC-e/NFS-e issued or received within a date range, with specific verb and resource. It distinguishes from sibling tools that perform emission, cancellation, or other operations.

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?

Usage is implied by the name and description; it is the only list tool among siblings. No explicit alternatives or when-not-to-use are stated, but the context makes it clear when to select this tool.

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

produto_consultarConsultar produto por codigo, NCM, GTIN ou descricaoA
Read-onlyIdempotent
Inspect

Pesquisa produto no cadastro da empresa logada. Aceita codigo interno, NCM (8 digitos), GTIN/EAN (8/12/13/14 digitos) ou descricao parcial. Use ANTES de criar produtos novos para evitar duplicatas. PAGINACAO: Limite default 20 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.

ParametersJSON Schema
NameRequiredDescriptionDefault
TermoNo
LimiteNo
OffsetNo
TipoBuscaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
AvisosNo
LimiteNo
OffsetNo
MatchesNo
TotalGeralNo
TotalLocalNo
TipoDetectadoNo
TermoNormalizadoNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds valuable behavioral details: pagination behavior (default 20, max 50, offset, TotalGeral), warning against inventing or grouping results. No contradictions.

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?

Description is concise: two sentences explaining purpose and acceptable search terms, one sentence for usage guidance, and two for pagination behavior. Front-loaded with purpose, no redundant information.

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?

Covers purpose, acceptable search terms, pagination, and usage advice. Output schema exists, so return values are documented. Minor omission: no mention of what happens if no results found or error scenarios, but overall fairly complete for a search tool.

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 0%, so description must compensate. Describes acceptable values for Termo (internal code, NCM with digit count, GTIN/EAN with digit ranges, partial description). Mentions Limite and Offset in pagination context. Does not explain TipoBusca or other parameters fully. Adds moderate value beyond schema.

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

Purpose5/5

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

Description clearly states the tool searches products by internal code, NCM, GTIN/EAN, or partial description. Specifies the resource (produto no cadastro da empresa logada) and distinguishes from sibling tools like produto_criar by advising to use before creating products.

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?

Explicitly advises using the tool before creating new products to avoid duplicates. Provides pagination usage guidelines (default limit 20, max 50, use offset, page based on TotalGeral). Does not explicitly exclude alternatives but gives clear context.

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

produto_criarCadastrar novo produtoAInspect

Cadastra um novo Produto na empresa logada. Validacao de duplicata por Codigo. NCM aceito com 7 ou 8 digitos (zero-pad automatico). EAN/GTIN validado por digito verificador.

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
EanNo
NcmNo
CestNo
CodigoYes
DescricaoYes
FatorConversaoNo
QuantidadeEstoqueNo
ValorUnitarioVendaYes
UnidadeMedidaVendaSiglaYes
UnidadeMedidaCompraSiglaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ProdutoNo
Behavior3/5

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

Discloses key behaviors: creation action, duplicate validation, NCM zero-padding, EAN digit verification. However, does not mention authorization requirements, success/failure behavior, or whether it is idempotent. With no annotations (only title), description carries full burden but has gaps.

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

Conciseness4/5

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

Three sentences, front-loaded with main action, no fluff. Could be slightly more concise but remains effective.

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

Completeness2/5

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

With 11 parameters, 4 required, and output schema present, description covers only a fraction of inputs and omits explanations for many fields. Output schema handles return values, but parameter descriptions are incomplete for a complete picture.

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

Parameters2/5

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

Schema description coverage is 0%, so description must compensate. Only three parameters (Codigo, Ncm, Ean) are explained. Required fields like Descricao, UnidadeMedidaVendaSigla, ValorUnitarioVenda and optional ones are left undocumented, providing insufficient help for an AI agent.

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

Purpose5/5

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

Description clearly states 'Cadastra um novo Produto na empresa logada' with specific verb+resource, and adds validation details (duplicate code, NCM format, EAN check digit) that distinguish it from sibling tools like produto_editar and produto_consultar.

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?

Provides actionable guidelines: duplicate validation by code, NCM must be 7 or 8 digits (zero-pad automatic), EAN/GTIN validated by check digit. These rules inform when and how to use the tool, though no explicit contrast with alternatives or when-not-to-use.

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

produto_editarEditar produto cadastradoA
Idempotent
Inspect

Atualiza um Produto existente. Id obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados. Faca produto_consultar antes pra ter os dados atuais, depois envie tudo + o que muda. Valida ownership por UserCreate (produto tem que pertencer ao usuario logado) e por empresa (IdEmpresa tem que ser a logada ou 0 - se for outra empresa sua, troque antes).

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
EanNo
NcmNo
CestNo
CodigoYes
DescricaoYes
FatorConversaoNo
QuantidadeEstoqueNo
ValorUnitarioVendaYes
UnidadeMedidaVendaSiglaYes
UnidadeMedidaCompraSiglaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
ProdutoNo
Behavior5/5

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

Beyond the idempotentHint annotation, the description adds critical behavioral context: the tool overwrites omitted fields to zero, requires prior fetch to avoid data loss, and validates ownership. This fully informs the agent of consequences.

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?

The description is a compact four-sentence paragraph that front-loads the purpose, then delivers critical warnings in order. Every sentence adds essential information without redundancy.

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

Completeness5/5

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

Given the tool's complexity (update with ownership, 11 params, output schema exists), the description covers all necessary context: what it does, prerequisites, payload semantics, and validation. The output schema handles return values, so no further explanation is needed.

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

Parameters2/5

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

With 11 parameters and 0% schema description coverage, the description only highlights that 'Id' is required and emphasizes sending a complete payload. It does not explain individual parameters or their roles, leaving significant gaps for the agent.

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

Purpose5/5

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

The description clearly states 'Atualiza um Produto existente', specifying the verb (atualiza) and resource (Produto). It distinguishes from sibling tools like produto_criar (create) and produto_consultar (query) by focusing on update of existing records.

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

Usage Guidelines5/5

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

Explicit guidance is provided: require Id, send complete payload (fields omitted are zeroed), fetch current data with produto_consultar first, then send all fields plus changes. Ownership validation is described, making usage conditions very clear.

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

sefaz_statusStatus do serviço SEFAZA
Read-onlyIdempotent
Inspect

Consulta o status do serviço de autorização da SEFAZ para uma UF e ambiente. Use antes de uma emissão em lote ou quando suspeitar de instabilidade.

ParametersJSON Schema
NameRequiredDescriptionDefault
TipoAmbienteNo
ModeloDocumentoNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
ErrorNoMensagem de erro da operação. Vazia ("") quando foi bem-sucedida.
AvisosNoAvisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida.
StatusSefazNo
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds behavioral context by specifying it checks authorization status for a specific UF and environment, and recommends use before batch emission. No contradiction.

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, both essential: first states purpose, second provides usage guidance. No wasted words, well front-loaded.

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

Completeness3/5

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

Output schema exists, so return values are covered. However, parameter semantics are missing and the description does not fully compensate for the lack of schema descriptions. Adequate but not fully complete.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not explain the parameters (TipoAmbiente, ModeloDocumento). It mentions 'UF e ambiente' but does not map these to parameters. This is a significant gap.

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

Purpose5/5

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

The description clearly states the verb (Consulta) and resource (status do serviço de autorização da SEFAZ) along with the context (UF e ambiente). It distinguishes this tool from siblings which handle emission, downloading, etc.

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 description explicitly advises using this tool 'antes de uma emissão em lote ou quando suspeitar de instabilidade', providing clear context for when it is appropriate. It does not explicitly exclude other scenarios but the guidance is strong.

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

tributacao_consultarConsultar regras de tributacaoA
Read-onlyIdempotent
Inspect

Lista regras de tributacao da empresa (CFOP, CST, aliquotas ICMS/PIS/COFINS/IPI/IBS/CBS). Filtra por Tipo (1=NFe, 2=NFCe, 3=Energia/Comunicacao), CFOP especifico ou termo na descricao. Use antes de criar nota fiscal pra LLM saber quais tributos aplicar. PAGINACAO: Limite default 20 (max 50). Use Offset pra ir alem - o retorno traz TotalGeral. Se TotalGeral > matches retornados, peça mais paginas em vez de inventar/agrupar.

ParametersJSON Schema
NameRequiredDescriptionDefault
CfopNo
TipoNo
TermoNo
LimiteNo
OffsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
TotalNo
AvisosNo
LimiteNo
OffsetNo
MatchesNo
TotalGeralNo
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds pagination details (default limit 20, max 50, offset, total results) and warns against inventing data. No contradictions.

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?

Concise, front-loaded with core function, then filters, use case, and pagination. Every sentence adds value without redundancy.

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

Completeness5/5

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

With output schema present, description still mentions returned fields and TotalGeral. Covers purpose, usage, filters, and pagination completely. No gaps.

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

Parameters5/5

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

Despite 0% schema coverage, the description fully explains parameter meanings: Tipo (1=NFe, etc.), Cfop, Termo, and pagination parameters Limite/Offset. Adds significant value over schema.

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

Purpose5/5

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

The description clearly states the tool lists tax rules (CFOP, CST, aliquotas) for the company, with specific filters. It distinguishes from siblings like tributacao_criar/editar, which are write operations.

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?

Explicitly instructs to use before creating a nota fiscal so the LLM knows which taxes to apply. Does not specify when not to use, but context is sufficient.

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

tributacao_criarCadastrar nova regra de tributacaoBInspect

Cadastra uma nova regra de tributacao (CFOP + CSTs + aliquotas). Tipo 1=NFe, 2=NFCe, 3=Energia/Comunicacao. CstIbsCbs e obrigatorio (Reforma Tributaria).

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
CfopYes
TipoNo
CstIpiNo
CstPisNo
AliqCbsNo
AliqIpiNo
AliqPisNo
ApiCodeNo
CstIcmsNo
AliqIcmsNo
AutoAliqNo
AliqIbsUfNo
CstCofinsNo
CstIbsCbsNo
DescricaoYes
AliqCofinsNo
AliqIbsMunNo
ObservacaoNo
AliqReducaoNo
AliqDiferimentoNo
EnquadramentoIpiNo
CodBeneficioFiscalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
TributacaoNo
Behavior2/5

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

Annotations lack readOnlyHint or destructiveHint, so the description must bear the burden. It states 'Cadastra' (creates), revealing a write operation, but does not disclose side effects, preconditions, or limitations. For a mutation tool with zero annotation hints, more behavioral details are needed.

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

Conciseness4/5

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

The description is very concise (two sentences) and front-loaded with the main action. While efficient, it could incorporate more structure or bullet points for parameter details without becoming verbose. Still, it avoids unnecessary fluff.

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

Completeness2/5

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

Despite the complexity (23 parameters) and existence of an output schema, the description provides minimal guidance on which parameters are relevant for different scenarios. It does not explain the relationships between CFOP, CSTs, and aliquotas, leaving a gap in completeness for a tool with high parameter count.

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

Parameters1/5

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

Schema description coverage is 0%, meaning no parameters are documented in the schema. The description only clarifies the meaning of 'Tipo' (1=NFe, etc.) and marks 'CstIbsCbs' as mandatory. The other 21 parameters are left unexplained, failing to compensate for the lack of schema documentation.

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

Purpose5/5

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

The description clearly states 'Cadastra uma nova regra de tributacao (CFOP + CSTs + aliquotas)', specifying the verb (cadastrar), resource (regra de tributacao), and key components. It further clarifies the Tipo field domain (1=NFe, 2=NFCe, 3=Energia/Comunicacao) and notes the mandatory nature of CstIbsCbs, which distinguishes it from sibling tools like tributacao_consultar and tributacao_editar.

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

Usage Guidelines3/5

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

The description provides some context on when to use this tool by explaining the Tipo field and highlighting that CstIbsCbs is mandatory. However, it does not explicitly contrast with sibling tools (e.g., when to create vs. edit) or provide guidance on prerequisites or alternative approaches.

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

tributacao_editarEditar regra de tributacaoA
Idempotent
Inspect

Atualiza uma regra de tributacao existente. Id obrigatorio. ATENCAO: envie o payload COMPLETO - campos omitidos sao zerados. Faca tributacao_consultar antes pra ter os dados atuais, depois envie tudo + o que muda. Valida ownership por IdEmpresa.

ParametersJSON Schema
NameRequiredDescriptionDefault
IdNo
CfopYes
TipoNo
CstIpiNo
CstPisNo
AliqCbsNo
AliqIpiNo
AliqPisNo
ApiCodeNo
CstIcmsNo
AliqIcmsNo
AutoAliqNo
AliqIbsUfNo
CstCofinsNo
CstIbsCbsNo
DescricaoYes
AliqCofinsNo
AliqIbsMunNo
ObservacaoNo
AliqReducaoNo
AliqDiferimentoNo
EnquadramentoIpiNo
CodBeneficioFiscalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
IdNo
OkNo
ErroNo
TributacaoNo
Behavior5/5

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

Discloses critical behaviors: Id is mandatory, omitted fields are zeroed, and ownership validation by IdEmpresa. These go beyond annotations which only note idempotentHint.

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

Conciseness4/5

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

Description is a single paragraph but effectively communicates warnings and prerequisites. Could be slightly more structured with bullet points.

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

Completeness3/5

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

Given 23 parameters with no schema descriptions and output schema not shown, the description adequately warns about payload completeness and the need to consult first, but lacks parameter-level details for a tool of this complexity.

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

Parameters2/5

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

Schema coverage is 0% and description does not explain any parameter beyond Id. Despite 23 parameters, no guidance on their meanings or allowed values. Relies on prior call to consultar.

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

Purpose5/5

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

Description clearly states the tool updates an existing tax rule ("Atualiza uma regra de tributacao existente") and distinguishes from sibling tools like tributacao_consultar and tributacao_criar by referencing them.

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

Usage Guidelines5/5

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

Explicitly instructs when to use: after calling tributacao_consultar to get current data, and to send the complete payload. Implicitly warns against creating by not mentioning that.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.