emissaoja · NFS-e
br.com.emissaoja/nfseemissaoja.com.brstreamable-httpv0.1.0Scanned
Issue Brazilian service invoices (NFS-e) via Emissor Nacional, no digital certificate
16 tools: 1 can delete or cancel things, 14 change things and 1 only read.
- Reads private data · 0
- Reads text others write · 5
- Can send data out · 0
- No findings
Anlyon alternative
15 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
16 tools
Deletes or cancels 1Claude Code: deny
cancelar_notaCancela uma nota emitida, dentro do prazo do Emissor Nacional.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Cancela uma nota emitida, dentro do prazo do Emissor Nacional. Irreversível: confirme com a pessoa a nota (número, tomador, valor) e o motivo antes. Responde com a operação; acompanhe com acompanhar_operacao (processando → concluida ou falhou).
Annotations the server declares
- title: Cancelar NFS-e
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
Changes things 14Claude Code: ask
acompanhar_operacaoEstado de uma operação (cancelamento): processando, concluida ou falhou (com o erro).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estado de uma operação (cancelamento): processando, concluida ou falhou (com o erro).
Annotations the server declares
- title: Acompanhar operação
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
acompanhar_pedidoEstado de um pedido de emissão: na_fila, emitindo, confirmando, autorizada (com numero e chave_acesso), recusada (com motivo) ou incerta.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estado de um pedido de emissão: na_fila, emitindo, confirmando, autorizada (com numero e chave_acesso), recusada (com motivo) ou incerta. Consulte de novo depois de proxima_consulta_ms enquanto não for terminal.
Annotations the server declares
- title: Acompanhar pedido
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
configurar_credencialConecta a empresa da conta ao Emissor Nacional com o CNPJ e a senha do portal (não é a conta gov.br).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Conecta a empresa da conta ao Emissor Nacional com o CNPJ e a senha do portal (não é a conta gov.br). A senha é conferida no portal, nunca guardada nem devolvida. Depois o emissaoja lê o cadastro fiscal e traz as notas dos últimos 90 dias. Só use quando a pessoa pedir e informar a senha ela mesma; são no máximo 3 tentativas erradas por dia (regra do portal, para não bloquear a conta da empresa). Responde na hora com a tentativa; acompanhe com situacao_credencial até proximo_passo sair de "aguardar".
Annotations the server declares
- title: Conectar a empresa
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
consultar_cnpjDados cadastrais de um CNPJ na Receita Federal (razão social, situação, CNAEs, endereço, Simples/MEI, sócios com CPF mascarado).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Dados cadastrais de um CNPJ na Receita Federal (razão social, situação, CNAEs, endereço, Simples/MEI, sócios com CPF mascarado). Não cria tomador; para emitir para esse CNPJ use criar_tomador.
Annotations the server declares
- title: Consultar CNPJ
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
criar_tomadorCadastra um cliente pelo CNPJ (nome e endereço vêm da Receita) ou pelo CPF com o nome completo.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Cadastra um cliente pelo CNPJ (nome e endereço vêm da Receita) ou pelo CPF com o nome completo. Se já existir, devolve o existente (ja_existia). Devolve tipo + id para emitir_nota.
Annotations the server declares
- title: Criar tomador
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
emitir_notaEmite uma nota fiscal de serviço no Emissor Nacional para um tomador já cadastrado (use listar_tomadores ou criar_tomador antes).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Emite uma nota fiscal de serviço no Emissor Nacional para um tomador já cadastrado (use listar_tomadores ou criar_tomador antes). Faz a prévia e, sem bloqueio, pede a emissão: responde com o pedido (acompanhe com acompanhar_pedido até autorizada, recusada ou incerta). Com bloqueio, devolve o que falta (bloqueios com code, mensagem e acao) em vez de emitir. Passe sempre uma referencia única por nota que a pessoa quer emitir (ex.: "pedido-123"): repetir a mesma referencia devolve o mesmo pedido e nunca emite duas vezes. Confirme com a pessoa tomador, valor e descrição antes de chamar; a nota tem efeito fiscal real.
Annotations the server declares
- title: Emitir NFS-e
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
listar_notasNotas emitidas (locais e importadas do portal) com número, situação, data, tomador, valor e o par origem + id que cancelar_nota usa.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Notas emitidas (locais e importadas do portal) com número, situação, data, tomador, valor e o par origem + id que cancelar_nota usa. Filtros por período (mes_atual, mes_anterior, ano_atual, 12_meses), situação (todas, emitidas, canceladas) e busca.
Annotations the server declares
- title: Listar notas
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
listar_servicosServiços cadastrados da empresa (descrição, código nacional de tributação, ISS, principal).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Serviços cadastrados da empresa (descrição, código nacional de tributação, ISS, principal). emitir_nota usa o principal quando servico_id não é informado.
Annotations the server declares
- title: Listar serviços
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
listar_tomadoresLista os tomadores (clientes) da empresa, com busca por nome ou documento.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lista os tomadores (clientes) da empresa, com busca por nome ou documento. Cada um tem tipo (pj/pf), id, nome e documento; o par tipo + id é o que emitir_nota usa.
Annotations the server declares
- title: Listar tomadores
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
minha_empresaA empresa da conta: CNPJ, nome, estado da credencial do Emissor Nacional (ausente, verificando, ativa, congelada), estado do onboarding (configurando, perguntas, pronto…), importaç…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it A empresa da conta: CNPJ, nome, estado da credencial do Emissor Nacional (ausente, verificando, ativa, congelada), estado do onboarding (configurando, perguntas, pronto…), importação e avisos. Comece por aqui: se a credencial está ausente, a pessoa precisa conectar a empresa (configurar_credencial); se há perguntas, responda-as com responder_perguntas_fiscais.
Annotations the server declares
- title: Minha empresa
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
perguntas_fiscaisEstágios do onboarding, perguntas que o cadastro fiscal não responde sozinho (alíquota do Simples, regime de apuração) e bloqueios.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estágios do onboarding, perguntas que o cadastro fiscal não responde sozinho (alíquota do Simples, regime de apuração) e bloqueios. Responda com responder_perguntas_fiscais.
Annotations the server declares
- title: Perguntas fiscais
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
responder_perguntas_fiscaisGrava a alíquota do Simples Nacional (percentual da última apuração, 0 < x ≤ 33) e/ou o regime de apuração (1 = competência, 2 = caixa, 3 = outro).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Grava a alíquota do Simples Nacional (percentual da última apuração, 0 < x ≤ 33) e/ou o regime de apuração (1 = competência, 2 = caixa, 3 = outro). Só com valores que a pessoa informou; nunca invente.
Annotations the server declares
- title: Responder perguntas fiscais
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
situacao_credencialEstado da credencial e da última tentativa de conexão: estado (verificando, aceita, senha_recusada, portal_indisponivel, bloqueada…) e proximo_passo (aguardar, configurando, pronto…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estado da credencial e da última tentativa de conexão: estado (verificando, aceita, senha_recusada, portal_indisponivel, bloqueada…) e proximo_passo (aguardar, configurando, pronto, corrigir_senha, tentar_mais_tarde, redefinir_no_portal, suporte). Consulte a cada poucos segundos enquanto for "aguardar".
Annotations the server declares
- title: Situação da credencial
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
validar_cnpjConfere formato e dígitos verificadores de um CNPJ, sem consultar nada.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Confere formato e dígitos verificadores de um CNPJ, sem consultar nada. Sem chave.
Annotations the server declares
- title: Validar CNPJ
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
Only reads 1Show 1 read-only tool
statusDiz se o emissaoja está no ar e como está o motor fiscal.No findings
Why it is in this group
- The name "status" says "status": a word for reading.
Description, as the server wrote it Diz se o emissaoja está no ar e como está o motor fiscal. Sem chave.
Annotations the server declares
- title: Status do serviço
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write5
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http nfse https://emissaoja.com.br/mcpclaude mcp add --transport http nfse https://emissaoja.com.br/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__nfse__status"
],
"ask": [
"mcp__nfse__validar_cnpj",
"mcp__nfse__consultar_cnpj",
"mcp__nfse__minha_empresa",
"mcp__nfse__configurar_credencial",
"mcp__nfse__situacao_credencial",
"mcp__nfse__perguntas_fiscais",
"mcp__nfse__responder_perguntas_fiscais",
"mcp__nfse__listar_tomadores",
"mcp__nfse__criar_tomador",
"mcp__nfse__listar_servicos",
"mcp__nfse__emitir_nota",
"mcp__nfse__acompanhar_pedido",
"mcp__nfse__listar_notas",
"mcp__nfse__acompanhar_operacao"
],
"deny": [
"mcp__nfse__cancelar_nota"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as nfse. Review it before you use it.
Capability tags behind 5 rules
- mcp__nfse__configurar_credencial untrusted-input
- mcp__nfse__responder_perguntas_fiscais untrusted-input
- mcp__nfse__criar_tomador untrusted-input
- mcp__nfse__emitir_nota untrusted-input
- mcp__nfse__cancelar_nota untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/br.com.emissaoja/nfse/verify?hash=33083684bb07da9d7f396c3b58f1943ef7c9d72f245850f6b028a70701e726b5" | jq -e '.changed == false'Pinned hash 33083684bb07, from Oct 27, 2026, 15:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/br.com.emissaoja/nfse/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/br.com.emissaoja/nfse)Source: MCP Registry. Synced Oct 27, 2026, 15:17 UTC.