---
title: "Autenticação"
description: "Chave de Dados vs Chave de Consulta, headers HTTP, variáveis de ambiente, precedência e empresa padrão no servidor MCP da NFE.io."
source_url: https://nfe.io/docs/mcp/referencia/autenticacao
last_updated: 2026-08-24
---

# Autenticação

O servidor **sempre inicia e sempre responde `tools/list`, mesmo sem chave** (modo gratuito). A chave só é exigida quando você chama uma ferramenta que consome a API da NFE.io - nesse caso, sem chave, a ferramenta retorna um erro instrutivo pedindo a credencial (não é um 401 de transporte).

## As duas chaves

| Função | Header HTTP | Variável (local) | Nome no dashboard |
|---|---|---|---|
| Operações fiscais (emissão, notas, empresas) | `X-NFE-API-Key` ou `Authorization: Bearer` | `NFE_API_KEY` | **Chave de Dados** |
| Lookups (CNPJ, CEP) | `X-NFE-Lookup-Key` | `NFE_LOOKUP_API_KEY` | **Chave de Consulta** |

Se a Chave de Consulta não for informada, os lookups usam a Chave de Dados como fallback.

:::note Nomenclatura
O dashboard chama de "Chave de Dados" (fiscal) e "Chave de Consulta" (lookups). A variável `NFE_LOOKUP_API_KEY` recebe o nome pela **função** para não confundir com o rótulo do dashboard.
:::

## Empresa padrão

Ferramentas que operam sobre uma empresa (`issue_service_invoice`, `list_service_invoices`, `get_invoice_status`, `get_company`) aceitam um `companyId` opcional. Se você omitir, o servidor usa a empresa padrão:

| Header HTTP | Variável (local) |
|---|---|
| `X-NFE-Company-Id` | `NFE_COMPANY_ID` |

## Precedência da chave fiscal

Da maior para a menor prioridade:

1. `X-NFE-API-Key` (header)
2. `Authorization: Bearer` (header)
3. `NFE_API_KEY` (variável de ambiente - só no modo local/stdio)
4. anônimo (só as ferramentas gratuitas respondem)

:::info Onde a chave vive
No **hosted** e no **local via npx** a credencial nunca é lida de arquivo compartilhado: no hosted ela chega **por header a cada requisição**; no local, por **variável de ambiente**. Veja **[Segurança](/mcp/referencia/seguranca)**.
:::
