---
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-10-07
tags: ["mcp", "autenticacao", "referencia"]
---

# 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 | Nome no dashboard |
|---|---|---|
| Operações fiscais (emissão, notas, empresas) | `X-NFE-API-Key` ou `Authorization: Bearer` | **Chave de Dados** |
| Lookups (CNPJ, CEP) | `X-NFE-Lookup-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, definida pelo header `X-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. anônimo (só as ferramentas gratuitas respondem)

:::info Onde a chave vive
A credencial nunca é lida de arquivo compartilhado: ela chega **por header a cada requisição** ao endpoint hosted. No Claude Desktop, o header é montado pela ponte `mcp-remote` (rodada localmente via `npx`) e encaminhado ao `mcp.nfe.io` - o mecanismo é o mesmo, só muda quem monta o header. Veja **[Segurança](/mcp/referencia/seguranca)**.
:::
