Skip to content

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.

Tools: 1 delete, 0 irreversible, 14 write, 1 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/mcp
claude mcp add --transport http nfse https://emissaoja.com.br/mcp

Run 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.

.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.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for br.com.emissaoja/nfse
[![anlyon.dev](https://anlyon.dev/badge/br.com.emissaoja/nfse.svg)](https://anlyon.dev/servers/br.com.emissaoja/nfse)

Source: MCP Registry. Synced Oct 27, 2026, 15:17 UTC.