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"
]
}社区
证据