NotaMCP
Issue Brazilian service invoices (NFS-e Nacional) from your AI, with preview and confirmation.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (4)
- LOWen consultar_nota
- LOWen listar_notas
- LOWen salvar_tomador
- LOWen saldo
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"notamcp": {
"url": "https://notamcp.com.br/mcp"
}
}
}Puntos de conexión remotos
https://notamcp.com.br/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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).
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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").
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
]
}Comunidad
Evidencia