Skip to main content
Glama

Emitir MDF-e

mdfe_emitir
Destructive

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.

Input Schema

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

Output Schema

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / numeroProtocolo
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / Rodoviario / properties / pagamentos
      Added value: +{
      +  "description": "Informações de pagamento do frete (grupo infANTT/infPag).",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "altoDesempenho": {
      +        "description": "Operação de transporte de alto desempenho (frota dedicada/fidelizada).",
      +        "type": "boolean"
      +      },
      +      "anteciparAdiantamento": {
      +        "description": "Concordância em antecipar o adiantamento.",
      +        "type": "boolean"
      +      },
      +      "componentes": {
      +        "description": "Componentes do pagamento do frete.",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "descricao": {
      +              "description": "Descrição do componente (usar quando tipo = 99).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "tipo": {
      +              "description": "Tipo do componente: 01 - Vale-Pedágio; 02 - Impostos, taxas e contribuições; 03 - Despesas; 99 - Outros.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "valor": {
      +              "description": "Valor do componente.",
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "cpfCnpjResponsavel": {
      +        "description": "CPF, CNPJ ou identificador estrangeiro do responsável pelo pagamento do frete.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "indicadorPagamento": {
      +        "description": "Forma de pagamento: 0 - à vista; 1 - a prazo.",
      +        "type": "integer"
      +      },
      +      "infoBancaria": {
      +        "additionalProperties": false,
      +        "description": "Informações bancárias para recebimento do frete.",
      +        "properties": {
      +          "cnpjInstituicaoPagamento": {
      +            "description": "CNPJ da instituição de pagamento eletrônico do frete (alternativa ao banco/agência).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "codAgencia": {
      +            "description": "Número da agência bancária.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "codBanco": {
      +            "description": "Número do banco. Informar junto com a agência (ou use cnpjInstituicaoPagamento, ou pix).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "pix": {
      +            "description": "Chave PIX para recebimento do frete (alternativa ao banco/agência).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "nomeResponsavel": {
      +        "description": "Razão social ou nome do responsável pelo pagamento.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "parcelas": {
      +        "description": "Parcelas do pagamento (informar somente se a prazo).",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "numero": {
      +              "description": "Número da parcela.",
      +              "type": "integer"
      +            },
      +            "valor": {
      +              "description": "Valor da parcela.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "vencimento": {
      +              "description": "Data de vencimento da parcela.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "tipoAntecipacao": {
      +        "description": "Permissão de antecipação das parcelas: 0 - não permite; 1 - permite; 2 - permite mediante confirmação.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "valorAdiantamento": {
      +        "description": "Valor do adiantamento (usar apenas em pagamento a prazo).",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "valorContrato": {
      +        "description": "Valor total do contrato.",
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / Rodoviario / properties / contratantes
      Added value: +{
      +  "description": "Contratantes do serviço de transporte (grupo infANTT/infContratante).",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cpfCnpj": {
      +        "description": "CPF, CNPJ ou identificador estrangeiro do contratante do transporte.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "nome": {
      +        "description": "Razão social ou nome do contratante.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "nroContrato": {
      +        "description": "Número do contrato do transportador com o contratante, para prestações continuadas.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "vContratoGlobal": {
      +        "description": "Valor global do contrato. Usar somente no pagamento a prazo.",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
    • addedInput schema / properties / Rodoviario / properties / valePedagio
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Vale-pedágio (grupo infANTT/valePed).",
      +  "properties": {
      +    "categoriaCombinacaoVeicular": {
      +      "description": "Categoria de combinação veicular (02 a 14, conforme número de eixos).",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "dispositivos": {
      +      "description": "Dispositivos do vale-pedágio.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "cnpjFornecedor": {
      +            "description": "CNPJ da empresa fornecedora do vale-pedágio.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "cpfCnpjPagador": {
      +            "description": "CPF ou CNPJ do responsável pelo pagamento. Informar quando não for o emitente do MDF-e.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "numeroComprovante": {
      +            "description": "Número do comprovante de compra.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "tipo": {
      +            "description": "Tipo do vale-pedágio: 01 - TAG, 02 - Cupom, 03 - Cartão.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "valor": {
      +            "description": "Valor do vale-pedágio.",
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  4. Changed85 schema fields changed
    • changedInput schema / properties / Aereo / properties / aerodromoDestino / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aereo / properties / aerodromoEmbarque / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / properties / Aereo / properties / dataVoo / description
      Added value: +"Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)"
    • removedInput schema / properties / Aereo / properties / dataVoo / format
      Removed value: -"date-time"
    • changedInput schema / properties / Aereo / properties / matricula / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aereo / properties / nacionalidade / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aereo / properties / numeroVoo / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aereo / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / properties / cnpjAgencia / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / properties / codEmbarcacao / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / properties / codPortoDestino / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / properties / codPortoEmbarque / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / properties / nomeEmbarcacao / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / properties / numeroViagem / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Aquaviario / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • addedInput schema / properties / DataEmissao / description
      Added value: +"Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)"
    • removedInput schema / properties / DataEmissao / format
      Removed value: -"date-time"
    • changedInput schema / properties / DataEmissao / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedInput schema / properties / Ferroviario / properties / DataLiberacao / description
      Added value: +"Data/hora ISO 8601 (ex: 2026-07-22T13:45:00-03:00)"
    • removedInput schema / properties / Ferroviario / properties / DataLiberacao / format
      Removed value: -"date-time"
    • changedInput schema / properties / Ferroviario / properties / Vagoes / items / properties / sequencia / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / Ferroviario / properties / Vagoes / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / Ferroviario / properties / destino / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Ferroviario / properties / origem / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Ferroviario / properties / prefixo / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Ferroviario / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / CIOT / properties / cnpj / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / CIOT / properties / codigo / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / CIOT / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / capKG / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / capM3 / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / condutores / items / properties / cpf / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / condutores / items / properties / nome / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / condutores / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / placa / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / items / properties / capKG / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / items / properties / capM3 / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / items / properties / placa / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / items / properties / renavam / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / items / properties / tara / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / items / properties / uf / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / reboques / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / renavam / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / properties / uf / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / Rodoviario / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / carregamentos / items / properties / municipio / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / carregamentos / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / codigo / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / descarregamentos / items / properties / chaveDfe / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / descarregamentos / items / properties / municipio / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / descarregamentos / items / properties / transportePerigosos / items / properties / codigoONU / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / descarregamentos / items / properties / transportePerigosos / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / descarregamentos / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / identificadorInterno / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / lote / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / numero / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedInput schema / properties / observacao / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / observacaoFisco / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / percursoUfs / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / cEan / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / descricao / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localCarrega / properties / cep / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localCarrega / properties / latitude / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localCarrega / properties / longitude / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localCarrega / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localDescarrega / properties / cep / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localDescarrega / properties / latitude / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localDescarrega / properties / longitude / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / properties / localDescarrega / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / infLotacao / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / properties / ncm / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / produtoPredominante / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / properties / seguros / items / properties / cnpjSegurador / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / seguros / items / properties / cpfCnpjResponsavel / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / seguros / items / properties / nomeSegurador / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / seguros / items / properties / numeroApolice / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / seguros / items / properties / numerosAverbacao / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / seguros / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedInput schema / properties / serie / type
      Previous value: -"integer"New value: +[
      +  "integer",
      +  "null"
      +]
    • changedOutput schema / properties / Avisos / type
      Previous value: -"array"New value: +[
      +  "array",
      +  "null"
      +]
    • changedOutput schema / properties / Error / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / base64DAMDFe / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / base64Xml / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / chave / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / tipoAmbiente / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  5. First observed

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, but the description adds nothing about irreversibility, SEFAZ authorization, rejection handling, or that emission creates a legal fiscal document. For a destructive fiscal write with real-world consequences, this is a meaningful gap.

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

Conciseness4/5

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

Two compact sentences, front-loaded with the verb and purpose, no filler. Slight under-specification rather than verbosity, but the structure is efficient.

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

Completeness2/5

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

An output schema exists so return values needn't be explained, but a 24-param destructive emission tool needs more than one sentence: required-vs-optional group selection, environment choice, and error/failure behavior are all absent.

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

Parameters2/5

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

With 24 parameters and only 42% schema description coverage, the description should compensate — it says nothing about any parameter. Key conditional logic (modalidade selecting Rodoviario/Aereo/Aquaviario/Ferroviario, tipoAmbiente=2 for tests) lives only in the schema.

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

Purpose4/5

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

States a specific verb + resource ('Emite MDF-e') and expands the acronym, plus explains the domain purpose (grouping multiple CT-e/NF-e into a single transport). It doesn't explicitly name sibling tools like cte_emitir or nfe_emitir to distinguish, so it falls short of a 5.

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

Usage Guidelines3/5

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

Adds a usage condition ('Obrigatório para transportadores com vários DFs no mesmo veículo'), which implies when to use it. But there is no when-not guidance, no prerequisite/authorization notes, and no routing to alternatives such as cte_emitir for a single document.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.