# emissaoja · NFS-e (remote · emissaoja.com.br)

Issue Brazilian service invoices (NFS-e) via Emissor Nacional, no digital certificate

- Trust score: 71/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `emissaoja.com.br`: 71/100 (this document), [markdown](https://verifymcp.io/servers/br-com-emissaoja-nfse/emissaoja.md), [page](https://verifymcp.io/servers/br-com-emissaoja-nfse/emissaoja)

## Channel facts

- Endpoint: `https://emissaoja.com.br/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancelar_nota).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 71/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1706 tokens (~106/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 71% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the emissaoja · NFS-e MCP server?

emissaoja · NFS-e is a hosted endpoint at https://emissaoja.com.br/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http br-com-emissaoja-nfse 'https://emissaoja.com.br/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "br-com-emissaoja-nfse": {
      "url": "https://emissaoja.com.br/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "br-com-emissaoja-nfse": {
      "type": "http",
      "url": "https://emissaoja.com.br/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.br-com-emissaoja-nfse]
url = "https://emissaoja.com.br/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "br-com-emissaoja-nfse": {
      "type": "remote",
      "url": "https://emissaoja.com.br/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add br-com-emissaoja-nfse --url 'https://emissaoja.com.br/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  br-com-emissaoja-nfse:
    url: "https://emissaoja.com.br/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "br-com-emissaoja-nfse": {
      "Transport": "http",
      "Url": "https://emissaoja.com.br/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add br-com-emissaoja-nfse -t streamable-http -u 'https://emissaoja.com.br/mcp'
```

### Other

```json
{
  "mcpServers": {
    "br-com-emissaoja-nfse": {
      "type": "http",
      "url": "https://emissaoja.com.br/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 67, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-27 (score 66)

First indexed and scored.

## MCP tools (16)

### `status` (~26 tokens)

Status do serviço

Diz se o emissaoja está no ar e como está o motor fiscal. Sem chave.

### `validar_cnpj` (~45 tokens)

Validar CNPJ

Confere formato e dígitos verificadores de um CNPJ, sem consultar nada. Sem chave.

Input parameters:

- `cnpj` (string, required): CNPJ com ou sem pontuação

### `consultar_cnpj` (~77 tokens)

Consultar CNPJ na Receita

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.

Input parameters:

- `cnpj` (string, required): CNPJ com ou sem pontuação

### `minha_empresa` (~98 tokens)

Minha empresa

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.

### `configurar_credencial` (~204 tokens)

Conectar a empresa (CNPJ e senha do Emissor Nacional)

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

Input parameters:

- `ciente_ultima_tentativa` (boolean): true quando a pessoa confirma que é a última tentativa do dia (situacao_credencial avisa)
- `cnpj` (string, required): CNPJ da empresa
- `senha` (string, required): Senha do Emissor Nacional (nfse.gov.br), informada pela pessoa

### `situacao_credencial` (~87 tokens)

Situação da credencial

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

### `perguntas_fiscais` (~53 tokens)

Perguntas fiscais pendentes

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.

### `responder_perguntas_fiscais` (~106 tokens)

Responder as perguntas fiscais

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.

Input parameters:

- `aliquota_simples` (number): Percentual, ex.: 6 ou 4.5
- `reg_ap_trib_sn` (integer)

### `listar_tomadores` (~75 tokens)

Listar tomadores (clientes)

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.

Input parameters:

- `busca` (string): Parte do nome ou do documento
- `pagina` (integer)

### `criar_tomador` (~89 tokens)

Criar tomador (cliente)

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.

Input parameters:

- `documento` (string, required): CNPJ ou CPF, com ou sem pontuação
- `nome` (string): Nome completo (obrigatório para CPF)

### `listar_servicos` (~49 tokens)

Listar serviços

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.

Input parameters:

- `ativos` (string)

### `emitir_nota` (~342 tokens)

Emitir NFS-e

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.

Input parameters:

- `competencia` (string): AAAA-MM-DD (omitida: hoje)
- `confirmo_repeticao` (boolean): Quando a resposta anterior foi emissao_repetida_recente e a pessoa confirmou
- `descricao` (string): Discriminação do serviço na nota (omitida: a do serviço)
- `permitir_repetida_de` (string): Quando a resposta anterior foi possivel_duplicada e a pessoa confirmou que é outra nota: o pedido_id informado
- `referencia` (string): Identificador único desta nota no seu lado (Idempotency-Key)
- `servico_id` (string): UUID do serviço (omitido: o principal)
- `tomador_id` (string, required): UUID
- `tomador_tipo` (string, required): pj (CNPJ) ou pf (CPF)
- `valor` (number, required): Valor do serviço em reais, até 2 casas

### `acompanhar_pedido` (~70 tokens)

Acompanhar pedido de emissão

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.

Input parameters:

- `pedido_id` (string, required): UUID

### `listar_notas` (~121 tokens)

Listar notas emitidas

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.

Input parameters:

- `busca` (string): Número da nota ou nome/documento do tomador
- `limite` (integer)
- `periodo` (string)
- `situacao` (string)

### `cancelar_nota` (~116 tokens)

Cancelar NFS-e

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

Input parameters:

- `justificativa` (string)
- `motivo` (string, required): 1 = erro na emissão, 2 = serviço não prestado
- `nota_id` (string, required): UUID
- `origem` (string, required)

### `acompanhar_operacao` (~39 tokens)

Acompanhar operação

Estado de uma operação (cancelamento): processando, concluida ou falhou (com o erro).

Input parameters:

- `operacao_id` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/br-com-emissaoja-nfse/emissaoja#diagnostics

## Score history

- 2026-11-05: 71
- 2026-11-04: 70
- 2026-11-03: 70
- 2026-11-02: 69
- 2026-11-01: 69
- 2026-10-31: 68
- 2026-10-30: 68
- 2026-10-29: 67
- 2026-10-28: 67
- 2026-10-27: 66

## Common questions

### What is the emissaoja · NFS-e MCP server?

emissaoja · NFS-e is an MCP server listed in the public MCP registry as br.com.emissaoja/nfse. Issue Brazilian service invoices (NFS-e) via Emissor Nacional, no digital certificate. This page covers its hosted endpoint (https://emissaoja.com.br/mcp).

### Is the emissaoja · NFS-e MCP server safe to use?

emissaoja · NFS-e scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the emissaoja · NFS-e MCP server expose?

emissaoja · NFS-e exposes 16 tools: status, validar_cnpj, consultar_cnpj, minha_empresa, configurar_credencial, and 11 more. Their descriptions and schemas cost roughly 1,597 tokens of context every time the server is loaded.

### Does the emissaoja · NFS-e MCP server require authentication?

No. We connected to emissaoja · NFS-e without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the emissaoja · NFS-e MCP server still maintained?

emissaoja · NFS-e is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://emissaoja.com.br/mcp
- Website: https://emissaoja.com.br/emitir-nota-fiscal-por-ia
- Changelog RSS feed: https://verifymcp.io/servers/br-com-emissaoja-nfse/emissaoja.xml
- Changelog JSON feed: https://verifymcp.io/servers/br-com-emissaoja-nfse/emissaoja.json
- HTML version of this page: https://verifymcp.io/servers/br-com-emissaoja-nfse/emissaoja
