NotaMCP
Issue Brazilian service invoices (NFS-e Nacional) from your AI, with preview and confirmation.
我該用這個嗎
品質與安全性
發現項目(4)
- LOW在 consultar_nota 中
- LOW在 listar_notas 中
- LOW在 salvar_tomador 中
- LOW在 saldo 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"notamcp": {
"url": "https://notamcp.com.br/mcp"
}
}
}遠端端點
https://notamcp.com.br/mcpstreamable-http它能做什麼
工具清單
工具(10)
⚪emitir_nota(tomador_id, configuracao_id, tomador_doc, tomador_razao, tomador_tipo, ...)
Prepara uma NFS-e e devolve a PRÉVIA + confirmacao_token. NÃO emite nada. Mostre a prévia ao usuário e chame confirmar_emissao só depois do OK explícito dele. Tomador: informe tomador_id (salvo) OU tomador_doc + tomador_razao.
輸入結構描述
{
"type": "object",
"properties": {
"tomador_id": {
"type": "string",
"description": "Id de um tomador salvo (listar_tomadores)."
},
"configuracao_id": {
"type": "string",
"description": "Id de uma combinação devolvida por listar_configuracoes."
},
"tomador_doc": {
"type": "string",
"description": "CNPJ (14 dígitos) ou CPF (11) do tomador."
},
"tomador_razao": {
"type": "string",
"description": "Razão social ou nome do tomador."
},
"tomador_tipo": {
"type": "string",
"enum": [
"",
"exterior"
],
"description": "Use \"exterior\" para tomador estrangeiro."
},
"tomador_pais": {
"type": "string",
"description": "País ISO2 do tomador estrangeiro (ex.: \"SG\")."
},
"valor": {
"type": "string",
"description": "Valor do serviço em reais, ex.: \"1250,00\"."
},
"competencia": {
"type": "string",
"description": "Mês de referência YYYY-MM. Vazio = mês atual."
},
"discriminacao": {
"type": "string",
"description": "Descrição do serviço, como sai impressa na nota."
},
"configuracao": {
"type": "object",
"description": "Configuração fiscal só desta nota. Campos omitidos herdam o cadastro/configuracao_id. Nunca invente códigos fiscais.",
"properties": {
"codigo_servico": {
"type": "string",
"description": "Item da LC 116, ex.: 17.06 ou 17.06.01. Não é CNAE."
},
"codigo_cnae": {
"type": "string",
"description": "CNAE do serviço, com 7 dígitos."
},
"codigo_nbs": {
"type": "string",
"description": "NBS, se aplicável."
},
"ctrib_mun": {
"type": "string",
"description": "Código de tributação definido pela prefeitura; vazio quando não houver."
},
"aliquota_simples": {
"type": "string",
"description": "Percentual efetivo do Simples."
},
"calcular_iss": {
"type": "boolean"
},
"aliquota_iss": {
"type": "string",
"description": "Percentual do ISS quando destacado."
},
"trib_federal": {
"type": "string",
"description": "Tributos federais aproximados (%)."
},
"trib_municipal": {
"type": "string",
"description": "Tributos municipais aproximados (%)."
}
}
}
},
"required": [
"valor",
"discriminacao"
]
}🟢listar_configuracoes(limite)
Últimas combinações realmente usadas de serviço, CNAE, NBS e tributação. Use configuracao_id em emitir_nota. Se houver ambiguidade, pergunte ao usuário — não escolha nem invente código fiscal.
輸入結構描述
{
"type": "object",
"properties": {
"limite": {
"type": "integer",
"description": "Máximo de combinações (1–20, padrão 8)."
}
}
}🔴confirmar_emissao(confirmacao_token)
Emite DE VERDADE a nota da prévia. Chame apenas depois que o usuário aprovou a prévia nesta conversa. Idempotente: o mesmo token nunca emite duas vezes. Autorizada, devolve danfse_url (PDF) e xml_url — links para o usuário abrir, que você não consegue baixar.
輸入結構描述
{
"type": "object",
"properties": {
"confirmacao_token": {
"type": "string",
"description": "Token devolvido por emitir_nota."
}
},
"required": [
"confirmacao_token"
]
}🟢consultar_nota(nota_id)
Situação de uma nota desta conta (status, número, chave de acesso, erro).
輸入結構描述
{
"type": "object",
"properties": {
"nota_id": {
"type": "integer",
"description": "Id da nota (veio da emissão ou de listar_notas)."
}
},
"required": [
"nota_id"
]
}🟢listar_notas(status, competencia, limite)
Histórico de notas da conta, com filtros opcionais.
輸入結構描述
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"emitida",
"rejeitada",
"pendente",
"cancelada",
"erro"
],
"description": "Filtro por status."
},
"competencia": {
"type": "string",
"description": "Filtro YYYY-MM."
},
"limite": {
"type": "integer",
"description": "Máx. de notas (1–100, padrão 20)."
}
}
}🔴cancelar_nota(nota_id, motivo, codigo_motivo, confirmar)
Cancela uma NFS-e autorizada na SEFIN. Exige confirmar=true — peça confirmação explícita ao usuário antes. O crédito da emissão NÃO volta (a nota existiu); o cancelamento é grátis.
輸入結構描述
{
"type": "object",
"properties": {
"nota_id": {
"type": "integer"
},
"motivo": {
"type": "string",
"description": "Motivo em texto (vai para a SEFIN)."
},
"codigo_motivo": {
"type": "integer",
"enum": [
1,
2,
4
],
"description": "1=erro na emissão · 2=serviço não prestado · 4=duplicidade."
},
"confirmar": {
"type": "boolean",
"description": "Precisa ser true — confirmação do usuário nesta conversa."
}
},
"required": [
"nota_id",
"motivo",
"confirmar"
]
}🟢listar_tomadores(busca)
Tomadores salvos desta conta (use o id em emitir_nota). Passe `busca` com o NOME que o usuário falou para achar o tomador sem precisar do CNPJ — ignora acento, caixa e pontuação. Se voltar mais de um, pergunte qual antes de emitir.
輸入結構描述
{
"type": "object",
"properties": {
"busca": {
"type": "string",
"description": "Nome (ou parte) da empresa, ou o documento. Ex.: \"acai\" acha \"Açaí & Cia Ltda\"."
}
}
}🔴salvar_tomador(doc, razao, tipo, pais)
Salva/atualiza um tomador frequente (ex.: "salva a Shopee como tomador").
輸入結構描述
{
"type": "object",
"properties": {
"doc": {
"type": "string",
"description": "CNPJ ou CPF (só números ou formatado)."
},
"razao": {
"type": "string",
"description": "Razão social ou nome."
},
"tipo": {
"type": "string",
"enum": [
"",
"exterior"
]
},
"pais": {
"type": "string",
"description": "ISO2, só para exterior."
}
},
"required": [
"razao"
]
}🟢saldo
Quantidade de notas disponíveis, preço por nota, ambiente e teto diário. O nome técnico saldo é mantido por compatibilidade.
輸入結構描述
{
"type": "object",
"properties": {}
}⚪comprar_creditos(valor_centavos)
Gera um link de pagamento (Pix/cartão) para adicionar créditos de notas. Entregue o link ao usuário — o pagamento acontece no navegador dele e as notas entram após a confirmação.
輸入結構描述
{
"type": "object",
"properties": {
"valor_centavos": {
"type": "integer",
"enum": [
1000,
2500,
5000,
10000
],
"description": "Valor da recarga em centavos: 1000 (R$10), 2500 (R$25), 5000 (R$50) ou 10000 (R$100)."
}
},
"required": [
"valor_centavos"
]
}社群
證據