fiscal
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.
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.
Tool Definition Quality
Average 3.8/5 across 34 of 34 tools scored. Lowest: 2.8/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.
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.
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.
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 toolsarquivo_baixarBaixar XML ou PDF do documentoBRead-onlyIdempotentInspect
Baixa o arquivo (XML ou PDF/DANFE) de uma NF-e/NFC-e/NFS-e por chave de acesso. Retorna conteúdo em base64.
| Name | Required | Description | Default |
|---|---|---|---|
| Chaves | No | ||
| ChaveNF | No | ||
| FileType | No | Tipo do documento fiscal (Padrão 1 - XML) Valores: 1 - XML; 2 - DANFE | |
| Base64Logo | No | ||
| TipoDocumentoFiscal | No | Tipo do documento fiscal (Padrão 1 - Saída) Valores: 0 - Entrada; 1 - Saída |
Tool Definition Quality
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.
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.
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.
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.
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.
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 eventoARead-onlyIdempotentInspect
Baixa o arquivo de um evento (CC-e, cancelamento, manifestação, encerramento) por chave de acesso + número sequencial. Retorna conteúdo em base64.
| Name | Required | Description | Default |
|---|---|---|---|
| ChaveNF | No | Chave de acesso da Nota Fiscal (44 dígitos) à qual o evento está vinculado. | |
| NuProtocolo | No | Número do protocolo do evento (somente dígitos). Identifica o evento específico (ex.: Carta de Correção, Cancelamento) registrado para a nota fiscal. | |
| TipoArquivo | No | Tipo do arquivo do evento a ser retornado. Valores: 1 - XML do evento; 2 - PDF da Carta de Correção (CC-e) |
Tool Definition Quality
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.
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.
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.
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.
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.
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íodoARead-onlyInspect
Exporta múltiplos arquivos (XML/PDF) de um período em um único ZIP base64. Útil para backup, contabilidade ou auditoria.
| Name | Required | Description | Default |
|---|---|---|---|
| Type | No | Tipo do documento fiscal (Padrão 1 - XML) Valores: 0 - PDF; 1 - XML; 2 - EXCEL | |
| DtFim | No | ||
| Chaves | No | Chaves pagar pegar notas fiscal especificas | |
| DtInicio | No | ||
| TipoNota | No | Tipo de ambiente (Padrão 1 - Saída) Valores: 1 - Saídas; 2 - Entradas; 3 - Saídas e Entradas | |
| cpfCnpjs | No | CPFs ou CNPJs dos clientes das notas | |
| Situacoes | No | Filtra por situação. Vazio = todas (comportamento padrão). Combinável. | |
| incluirCCe | No | Incluir carta de correção emitidas no periodo | |
| TipoAmbiente | No | Tipo de ambiente (Padrão 1 - Produção) Valores: 1 - Produção; 2 - Homologação | |
| JuntarArquivosPDF | No | Anexar todas as notas fiscais retornadas em um unico arquivo PDF | |
| aplicarPlanoAjustes | No | Aplicar plano de ajustes de impostos |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Quantidade | No | |
| Base64FilesCompacted | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 SEFAZARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | UF do CPF, CNPJ, IE | |
| cpfCnpjIe | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ie | No | |
| fonte | No | Fonte 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". |
| status | No | Status Consulta Valores: 0 - Não Encontrada;; 1 - Encontrada; |
| Contato | No | |
| cpfCnpj | No | |
| ieAtual | No | |
| ieUnica | No | |
| Endereco | No | |
| mensagem | No | Mensagem 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. |
| situacao | No | Situação do contribuinte: 0 - não habilitado; 1 - habilitado. |
| razaoSocial | No | |
| nomeFantasia | No | |
| ufConsultada | No | |
| cnaePrincipal | No | |
| regimeApuracao | No | |
| dataInicioAtividade | No | |
| dataOcorrenciaBaixa | No | |
| indicadorCredenciamentoCTe | No | Indicador 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. |
| indicadorCredenciamentoNFe | No | Indicador 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. |
| dataUltimaAlteracaoCadastral | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 nomeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Uf | No | ||
| Termo | No | ||
| Fontes | No | ||
| Limite | No | ||
| Offset | No | ||
| TipoBusca | No | ||
| IncluirInativas | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Avisos | No | |
| Limite | No | |
| Offset | No | |
| Matches | No | |
| TotalGeral | No | |
| TotalLocal | No | |
| TipoDetectado | No | |
| TermoNormalizado | No | |
| ConsultouBrasilApi | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ie | No | ||
| Im | No | ||
| Nome | Yes | ||
| No | |||
| CpfCnpj | Yes | ||
| Endereco | No | ||
| Telefone | No | ||
| IndicadorIe | No | ||
| ConsumidorFinal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Cliente | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 cadastradoBIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ie | No | ||
| Im | No | ||
| Nome | Yes | ||
| No | |||
| CpfCnpj | Yes | ||
| Endereco | No | ||
| Telefone | No | ||
| IndicadorIe | No | ||
| ConsumidorFinal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Cliente | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Chave | No | ||
| Observacao | No | ||
| TipoAmbiente | No | Tipo do Documento Fiscal: Valores: 1 - Produção; 2 - Homologação | |
| NumeroSequencial | No | Número sequencial do evento |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Cfop | Yes | CFOP de 4 dígitos. Primeiro dígito: 1/2/3 = entrada, 5/6/7 = saída. | |
| Lote | No | ||
| Carga | Yes | Dados 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. | |
| Modal | Yes | Modal 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. | |
| Serie | No | ||
| Codigo | No | ||
| Numero | No | ||
| Retira | No | ||
| Imposto | No | ||
| Servico | Yes | Dados 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. | |
| TipoCte | Yes | Tipo 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 | |
| Tomador | No | ||
| DtEmissao | No | ||
| Expedidor | No | ||
| Remetente | No | ||
| Observacao | No | ||
| Destinatario | No | ||
| TipoAmbiente | Yes | Identificação do ambiente da SEFAZ. Valores: 1 - Produção (emissão real, irreversível); 2 - Homologação (teste, sem valor fiscal) | |
| ModeloDocumento | Yes | Modelo do Conhecimento de Transporte Eletrônico. Valores: 57 - CT-e (Conhecimento de Transporte Eletrônico); 67 - CT-e OS (Outros Serviços de transporte) | |
| NaturezaOperacao | Yes | Descrição da natureza da operação (ex: "Prestação de serviço de transporte"). | |
| IdentificadorInterno | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| chave | No | |
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| serie | No | |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| numero | No | |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
| base64Xml | No | |
| base64DACTe | No | |
| tipoAmbiente | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Lote | No | ||
| Itens | Yes | Itens/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). | |
| Serie | No | ||
| Codigo | No | ||
| Numero | No | ||
| UfFisco | No | Sigla da UF do órgão fiscalizador (obrigatório quando TipoEmitente=0). Se não preenchido, usa a UF da empresa emissora. | |
| Remetente | Yes | Pessoa física/jurídica que está enviando o pacote. OBRIGATÓRIO. Exige Endereco completo (validado por ValidaPessoaDCe). | |
| ValorTotal | No | Valor total declarado da DC-e. Se omitido, soma dos ValorTotal dos itens. Deve ser > 0. | |
| XOrgaoFisco | No | Nome do órgão fiscalizador (obrigatório quando TipoEmitente=0) | |
| Destinatario | Yes | Destinatário do pacote. OBRIGATÓRIO. Exige Endereco completo. | |
| TipoAmbiente | Yes | Tipo de ambiente. Valores: 1 - Produção (emissão real); 2 - Homologação (teste) | |
| TipoEmitente | No | Tipo do emitente: Valores: 0 - App Fisco; 1 - Marketplace; 2 - Emissor próprio; 3 - Transportadora; 4 - ECT (Correios) | |
| SiteMarketplace | No | URL do site do marketplace (obrigatório quando TipoEmitente=1) | |
| CnpjTransportadora | No | CNPJ da transportadora que leva a carga. Opcional. Quando informado, é usado no XML; quando vazio, mantém o CNPJ da empresa emissora. | |
| IdentificadorInterno | No | ||
| ModalidadeTransporte | No | Modalidade de transporte: Valores: 0 - Correios; 1 - Conta própria; 2 - Transportadora | |
| DeclaracaoCrimeTributario | Yes | Texto 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." | |
| InformacoesComplementares | No | Informações complementares (opcional, até 5000 caracteres). | |
| DeclaracaoContribuinteICMS | Yes | Texto 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." | |
| InformacoesAdicionaisFisco | No | Informações adicionais de interesse do fisco (opcional, até 2000 caracteres). |
Output Schema
| Name | Required | Description |
|---|---|---|
| chave | No | |
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| serie | No | |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| numero | No | |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
| base64Xml | No | |
| protocolo | No | |
| base64DACE | No | |
| tipoAmbiente | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 fiscalADestructiveInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| ChaveNF | Yes | Chave 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. | |
| DataEvento | No | Data do evento de cancelamento do documento (Caso não for enviado é considerada a data e hora atual) | |
| NumeroNFSe | No | Número da NFS-e a ser cancelada | |
| TipoAmbiente | Yes | Ambiente 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 | |
| Justificativa | Yes | Motivo 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). | |
| TipoDocumento | Yes | Tipo 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) | |
| NumeroProtocolo | No | Nú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. | |
| NumeroSequencial | No | Número sequencial do evento | |
| CodCancelamentoNFSe | No | Có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 | |
| CpfCnpjRemetenteDCe | No | CPF 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
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ChaveNF | Yes | Chave de acesso de 44 dígitos da NF-e ou CT-e a corrigir. | |
| Correcao | No | Texto 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. | |
| Correcoes | No | Lista de correções estruturadas (campo, grupo, valor). Usado SOMENTE para CT-e (modelo 57). Para NF-e/NFC-e use o campo Correcao acima. | |
| TipoAmbiente | Yes | Ambiente 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 | |
| NumeroSequencial | No | Número sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível. |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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çãoADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Serie | Yes | Série referente ao modelo do documento. Deve ser > 0. | |
| TipoAmbiente | Yes | Identificaçã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) | |
| Justificativa | Yes | Justificativa 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"). | |
| NumeracaoFinal | Yes | Final da faixa numérica a inutilizar. Deve ser >= NumeracaoInicial. | |
| ModeloDocumento | Yes | Código do modelo do Documento Fiscal a inutilizar. Valores: 55 - NF-e; 65 - NFC-e; 57 - CT-e | |
| NumeracaoInicial | Yes | Início da faixa numérica a inutilizar. Deve ser > 0 e <= NumeracaoFinal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Chave | Yes | Chave de acesso de 44 dígitos da NF-e a manifestar. | |
| TipoAmbiente | Yes | Ambiente 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 | |
| Justificativa | No | Justificativa. OBRIGATÓRIA quando TipoManifestacao = 4 (mínimo 15 caracteres). Para outros tipos pode omitir. | |
| NumeroSequencial | No | Número sequencial do evento (1 a 20). Se omitido, o sistema usa o próximo disponível. | |
| TipoManifestacao | Yes | Tipo 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
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Produtos | No | Produtos para gerar os registros do arquivo FCI | |
| Transmitir | No | Quando verdadeiro, além de gerar o arquivo, assina e transmite a mídia via programa TED. Requer certificado e-CNPJ configurado na empresa. | |
| ValidarCodigos | No | Quando verdadeiro retorna erro caso envie produtos com código repetido |
Tool Definition Quality
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.
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.
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.
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.
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.
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-checkARead-onlyIdempotentInspect
Verifica a saúde da API BrasilNFe (status, timestamp, versão). Não recebe parâmetros.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
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.
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.
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.
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.
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.
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 impostosARead-onlyIdempotentInspect
Simula o cálculo de impostos (ICMS, PIS, COFINS, IPI, ST) sobre uma lista de produtos sem emitir nota. Útil para precificação.
| Name | Required | Description | Default |
|---|---|---|---|
| Count | No | ||
| Capacity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Total | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Impostos | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lote | No | ||
| peso | Yes | Peso bruto total das mercadorias em KG. DEVE ser > 0. | |
| Aereo | No | ||
| serie | No | ||
| valor | Yes | Valor total das mercadorias transportadas. DEVE ser > 0. | |
| codigo | No | ||
| numero | No | ||
| seguros | No | ||
| Aquaviario | No | ||
| Rodoviario | No | Dados do transporte rodoviário (placa 7 caracteres, condutores com CPF/nome, UF do veículo). OBRIGATÓRIO quando modalidade = 1. | |
| modalidade | Yes | Modalidade 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) | |
| observacao | No | ||
| DataEmissao | No | ||
| Ferroviario | No | ||
| percursoUfs | No | ||
| tipoAmbiente | Yes | Tipo de ambiente. IMPORTANTE: passe explicitamente. Para testes use 2. Valores: 1 - Produção; 2 - Homologação | |
| tipoEmitente | Yes | Tipo 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) | |
| carregamentos | No | ||
| ufCarregamento | Yes | UF de carregamento (origem). Sigla de 2 letras (SP, RJ, MG...). | |
| observacaoFisco | No | ||
| descarregamentos | No | ||
| ufDescarregamento | Yes | UF de descarregamento (destino). Sigla de 2 letras (SP, RJ, MG...). | |
| produtoPredominante | No | Produto predominante transportado. Opcional. | |
| identificadorInterno | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| chave | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| numero | No | |
| status | No | 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote |
| base64Xml | No | |
| base64DAMDFe | No | |
| tipoAmbiente | No | |
| codRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chave | Yes | Chave de acesso de 44 dígitos do MDF-e a encerrar. | |
| protocolo | No | Protocolo de autorização do MDF-e original. Opcional - se omitido, o sistema localiza pela chave. | |
| tipoAmbiente | Yes | Ambiente 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 | |
| numeroSequencial | No | Número sequencial do evento. Se omitido, o sistema usa o próximo disponível. |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | 1 - Evento Processado; 2 - Aguardando processamento do evento; 3 - Ocorreu um erro ao processar o evento |
| DsEvento | No | |
| DsMotivo | No | |
| DsAmbiente | No | |
| NuProtocolo | No | |
| NumeroSequencial | No | |
| CodStatusRespostaSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Lote | No | Lote da Nota Fiscal | |
| Serie | No | Série da nota Fiscal | |
| Codigo | No | B03 - Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e. | |
| Numero | No | Número da nota fiscal | |
| Cliente | No | Destinatá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). | |
| Entrega | No | ||
| Exporta | No | ||
| Cobranca | No | ||
| Produtos | Yes | Itens da nota fiscal. Mínimo 1 item. | |
| Retencoes | No | Retenções federais totais da nota (IRRF, PIS/COFINS/CSLL retidos, Previdência). Gera a tag retTrib no XML. | |
| Finalidade | Yes | Finalidade da emissão da NF. Valores: 1 - Normal (caso mais comum); 2 - Complementar (referenciando NF anterior em NFReferencia); 3 - Ajuste; 4 - Devolução | |
| Observacao | No | ||
| Pagamentos | No | Formas 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). | |
| Transporte | No | ||
| DataEmissao | No | Data e Hora da saída ou de entrada da produto/serviço (Envia a data atual caso não informada) | |
| EnviarEmail | No | ||
| CalcularIBPT | No | Indica operação com Consumidor final (NFCe de ser 1 Validar!) | |
| NFReferencia | No | Notas fiscal de Referência | |
| TipoAmbiente | Yes | Identificaçã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) | |
| Justificativa | No | Utilizar quando o tipo de emissão for diferente normal | |
| ConsumidorFinal | No | Indica operação com Consumidor final (NFCe de ser 1 Validar!) | |
| ModeloDocumento | Yes | Código do modelo do Documento Fiscal. Valores: 55 - NF-e (B2B / com destinatário CPF/CNPJ identificado); 65 - NFC-e (consumidor final / varejo) | |
| ObservacaoFisco | No | ||
| DataEntradaSaida | No | Data e Hora da saída ou de entrada da produto/serviço | |
| NaturezaOperacao | Yes | Descrição da natureza da operação (máx 60 caracteres). Exemplos: "Venda de mercadoria", "Remessa para industrialização", "Devolução de venda". | |
| IndicadorPresenca | Yes | Indicador 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. | |
| IdentificadorInterno | No | ||
| IndicadorIntermediador | No | Indicador de intermediador/marketplace |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| ReturnNF | No | |
| Base64Xml | No | |
| Base64File | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| CFOP | No | CFOP | |
| Lote | No | Lote da Nota Fiscal | |
| Serie | No | Série da nota Fiscal | |
| Codigo | No | Código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e. | |
| Numero | No | Número da nota fiscal | |
| Cliente | No | ||
| Cobranca | No | ||
| Produtos | No | ||
| Observacao | No | ||
| Transporte | No | ||
| NFReferencia | No | Notas fiscal de Referência | |
| TipoAmbiente | No | Identificação do Ambiente Valores: 1 - Produção; 2 - Homologação | |
| ObservacaoFisco | No | ||
| TipoComplemento | No | Tipo de complemento Valores: 0 - Complementar quantidade ou valor; 1 - Complementar impostos | |
| NaturezaOperacao | No | Descrição da Natureza da Operação | |
| ImpostoComplementar | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| ReturnNF | No | |
| Base64Xml | No | |
| Base64File | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| serie | No | Série da nota fiscal. Quando não informado é controlado pelo Painel | |
| numero | No | Número da nota fiscal. Quando não informado é controlado pelo Painel | |
| energia | No | Informações referente a nota de Energia | |
| produtos | Yes | Itens da nota (mínimo 1). Cada item exige codigo, descricao, unidadeMedida, quantidade, valor, CFOP. | |
| situacao | No | Situaçã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 | |
| comunicao | No | Informações referente a nota de comunicação e Telecomunicação | |
| dataEmissao | Yes | Data de emissão do documento. Obrigatória. | |
| destinatario | Yes | Informações do destinatário (cliente). OBRIGATÓRIO. | |
| tipoAmbiente | Yes | Tipo de ambiente. Valores: 1 - Produção; 2 - Homologação | |
| modeloDocumento | Yes | Modelo do documento. Valores: 6 - Energia elétrica; 21 - Comunicação; 22 - Telecomunicação | |
| valorTotalFatura | Yes | Valor total da fatura comercial. Deve ser > 0. | |
| identificadorInterno | No | Código de controle interno unico da venda. Evita duplicidades, caso configurado. |
Output Schema
| Name | Required | Description |
|---|---|---|
| erros | No | Lista de erros quando a operação falha. Vazia em caso de sucesso. Cada item traz codigo, descricao e correcao. |
| avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em sucesso. |
| status | No | Status do resultado da operação: 1 = sucesso; 2 = erro (a lista erros é preenchida). |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ano | No | Ano de emissão das notas (4 dígitos). Obrigatório quando tipoGeracao = 1. | |
| mes | No | Mês de emissão das notas (1-12). Obrigatório quando tipoGeracao = 1. | |
| notas | No | Notas Fiscais de Energia/Comunicação/Telecomunicação a incluir no arquivo. Obrigatório quando tipoGeracao = 2. | |
| tipoGeracao | Yes | Tipo 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" | |
| tipoAmbiente | Yes | Tipo de ambiente. Valores: 1 - Produção; 2 - Homologação |
Tool Definition Quality
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.
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.
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.
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.
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.
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 DANFEARead-onlyIdempotentInspect
Gera o DANFE em PDF como pré-visualização, sem enviar para a SEFAZ. Útil para conferência visual antes de emitir.
| Name | Required | Description | Default |
|---|---|---|---|
| Base64Xml | No | ||
| TipoEnvio | No | Tipo 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 | |
| notaFiscal | No | ||
| TipoArquivo | No | Tipo do arquivo que deseja pré-visualizar (Padrão - 0) Valores: 0 - XML; 1 - PDF | |
| mostrarTarjaPreVisualizacao | No | Mostrar tarja "SEM VALOR FISCAL - PRÉ-VISUALIZAÇÃO" (Padrão - Verdadeiro) Somente para o tipo de arquivo 1 - PDF |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| Status | No | |
| Base64File | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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-eCRead-onlyIdempotentInspect
Consulta status e dados de uma NFS-e já enviada por número, série e ambiente.
| Name | Required | Description | Default |
|---|---|---|---|
| Rps | No | Rps para retornar (Se não enviar retorna todos) | |
| codLote | No | Código do lote |
Output Schema
| Name | Required | Description |
|---|---|---|
| Lote | No | Número do lote enviado; |
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Notas | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| CodLote | No | Código atrelado ao lote; - Usado para busca de lotes |
| Protocolo | No | Número de protocolo do lote |
| StatusLote | No | 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote |
| Base64XmlLote | No | Dados xml do lote, bytes em base64 |
| DsTipoAmbiente | No | Descrição do ambiente de envio |
| MunicipioEnvio | No | Municipio onde foi enviado |
| CodTipoAmbiente | No | Código do ambiente de envio |
| DataRecebimento | No | Data de recebimento do lote; |
| TempoRequisicaoPrefeitura | No | Tempo total da transmissão para prefeitura em milisegundos |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Lote | No | ||
| nFSInfo | Yes | Lista de NFS-e a emitir no lote. Mínimo 1 item. | |
| TipoAmbiente | Yes | Identificação do ambiente da prefeitura/portal nacional. Valores: 1 - Produção (emissão REAL, com valor fiscal); 2 - Homologação (teste) |
Output Schema
| Name | Required | Description |
|---|---|---|
| Lote | No | Número do lote enviado; |
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Notas | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| CodLote | No | Código atrelado ao lote; - Usado para busca de lotes |
| Protocolo | No | Número de protocolo do lote |
| StatusLote | No | 1 - Lote processado; 2 - Aguardando processamento; 3 - Ocorreu um erro ao processar o lote; 4 - Ocorreu um erro ao analisar as informações do lote |
| Base64XmlLote | No | Dados xml do lote, bytes em base64 |
| DsTipoAmbiente | No | Descrição do ambiente de envio |
| MunicipioEnvio | No | Municipio onde foi enviado |
| CodTipoAmbiente | No | Código do ambiente de envio |
| DataRecebimento | No | Data de recebimento do lote; |
| TempoRequisicaoPrefeitura | No | Tempo total da transmissão para prefeitura em milisegundos |
Tool Definition Quality
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.
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.
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.
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.
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.
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 fiscaisARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| DtFim | No | Data final da busca | |
| DtInicio | No | Data inicial da busca | |
| TipoDocumentoFiscal | No | Tipo do documento fiscal (Padrão 0 - Entrada) Valores: 0 - Entradas; 1 - Saídas | |
| IndentificadorInterno | No | Busca notas que possui o código interno informado (somente saídas) |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Notas | No | |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 descricaoARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Termo | No | ||
| Limite | No | ||
| Offset | No | ||
| TipoBusca | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Avisos | No | |
| Limite | No | |
| Offset | No | |
| Matches | No | |
| TotalGeral | No | |
| TotalLocal | No | |
| TipoDetectado | No | |
| TermoNormalizado | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ean | No | ||
| Ncm | No | ||
| Cest | No | ||
| Codigo | Yes | ||
| Descricao | Yes | ||
| FatorConversao | No | ||
| QuantidadeEstoque | No | ||
| ValorUnitarioVenda | Yes | ||
| UnidadeMedidaVendaSigla | Yes | ||
| UnidadeMedidaCompraSigla | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Produto | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 cadastradoAIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Ean | No | ||
| Ncm | No | ||
| Cest | No | ||
| Codigo | Yes | ||
| Descricao | Yes | ||
| FatorConversao | No | ||
| QuantidadeEstoque | No | ||
| ValorUnitarioVenda | Yes | ||
| UnidadeMedidaVendaSigla | Yes | ||
| UnidadeMedidaCompraSigla | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Produto | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 SEFAZARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| TipoAmbiente | No | ||
| ModeloDocumento | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Error | No | Mensagem de erro da operação. Vazia ("") quando foi bem-sucedida. |
| Avisos | No | Avisos não bloqueantes. Pode vir preenchida mesmo em emissão bem-sucedida. |
| StatusSefaz | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 tributacaoARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Cfop | No | ||
| Tipo | No | ||
| Termo | No | ||
| Limite | No | ||
| Offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Total | No | |
| Avisos | No | |
| Limite | No | |
| Offset | No | |
| Matches | No | |
| TotalGeral | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Cfop | Yes | ||
| Tipo | No | ||
| CstIpi | No | ||
| CstPis | No | ||
| AliqCbs | No | ||
| AliqIpi | No | ||
| AliqPis | No | ||
| ApiCode | No | ||
| CstIcms | No | ||
| AliqIcms | No | ||
| AutoAliq | No | ||
| AliqIbsUf | No | ||
| CstCofins | No | ||
| CstIbsCbs | No | ||
| Descricao | Yes | ||
| AliqCofins | No | ||
| AliqIbsMun | No | ||
| Observacao | No | ||
| AliqReducao | No | ||
| AliqDiferimento | No | ||
| EnquadramentoIpi | No | ||
| CodBeneficioFiscal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Tributacao | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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 tributacaoAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Id | No | ||
| Cfop | Yes | ||
| Tipo | No | ||
| CstIpi | No | ||
| CstPis | No | ||
| AliqCbs | No | ||
| AliqIpi | No | ||
| AliqPis | No | ||
| ApiCode | No | ||
| CstIcms | No | ||
| AliqIcms | No | ||
| AutoAliq | No | ||
| AliqIbsUf | No | ||
| CstCofins | No | ||
| CstIbsCbs | No | ||
| Descricao | Yes | ||
| AliqCofins | No | ||
| AliqIbsMun | No | ||
| Observacao | No | ||
| AliqReducao | No | ||
| AliqDiferimento | No | ||
| EnquadramentoIpi | No | ||
| CodBeneficioFiscal | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| Id | No | |
| Ok | No | |
| Erro | No | |
| Tributacao | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!