Skip to main content
Glama

amazon-mcp

License: MIT Runtime: Bun TypeScript: strict CI

CLI + servidor MCP para o histórico de compras da sua conta na Amazon.com.br: pedidos, produtos, preço pago, frete, promoções, pontos de recompensa, parcelamento, notas fiscais e resumos de gastos, com cache local em SQLite para você perguntar quanto gastou sem bater na Amazon a cada pergunta.

A Amazon não tem API de comprador. A SP-API é para vendedores e a Product Advertising API é para afiliados; nenhuma dá acesso ao histórico da sua própria conta. Este projeto lê as mesmas páginas de pedidos que o seu navegador lê, autenticado pelos cookies da sua sessão. E precisa de um Chrome de verdade para isso: a Amazon.com.br entrega cada pedido cifrado dentro do HTML, e só o JavaScript da própria página o decifra (ADR-0009). Somente leitura: nenhuma operação de escrita na conta é implementada, e o escape hatch recusa qualquer caminho fora das páginas de pedidos.

$ amazon spending --by year
key   orders  items  total
----  ------  -----  ----------
2026  2       4      BRL 114.06
2025  1       1      BRL 210.99

Sumário

Related MCP server: Amazon.in MCP Server

Instalação

Requer Bun 1.3 ou mais novo (o cache usa bun:sqlite) e o Google Chrome instalado.

Tudo de uma vez (Claude Code)

git clone https://github.com/maxwellmezadre/amazon-mcp.git
cd amazon-mcp
bun install
bun run setup

setup compila o binário para ~/.local/bin/amazon, registra o servidor MCP amazon no seu ~/.claude.json e instala a skill em ~/.claude/skills/. Rode de novo para atualizar.

npm

npm i -g @maxwellmezadre/amazon-mcp   # instala `amazon` e `amazon-mcp` no PATH
amazon --version

O pacote roda com o Bun (por causa do bun:sqlite), então o Bun precisa estar instalado.

Binário único

bun run build:binary   # gera ./amazon, sem precisar de runtime instalado
./amazon --version

O binário faz tudo, inclusive o login: o playwright-core vai embutido, e o Chrome vem do sistema.

Login

A senha nunca passa por aqui. Dois caminhos:

amazon login                        # abre o Chrome para você entrar
amazon login --from-browser chrome  # importa a sessão de um navegador já logado (macOS)

O segundo é o mais rápido se você já usa a Amazon no Chrome, no Arc, no Brave ou no Edge: ele lê os cookies pelo Keychain (o macOS pede permissão uma vez) e não abre janela nenhuma. A sessão é gravada cifrada com AES-256-GCM em ~/.config/amazon-mcp/session.enc (0600). Detalhes em docs/LOGIN.md.

Uso — CLI

amazon status --verify              # a Amazon ainda aceita a sessão?
amazon sync --full                  # primeira carga (em blocos, 2 a 4 s por página)
amazon orders                       # pedidos do cache, do mais novo para o mais antigo
amazon order 702-1234567-1234567    # um pedido inteiro, com todos os subtotais
amazon search "amaciante"           # entre os produtos que você já comprou
amazon spending --by breakdown      # quanto foi produto, frete, promoção, pontos, imposto
amazon installments                 # parcelas projetadas, mês a mês
amazon invoice 702-1234567-1234567  # links de nota fiscal
amazon download-invoice 702-1234567-1234567   # salva o PDF da NF-e
amazon export --format csv --scope items      # para planilha
amazon doctor                       # qual camada quebrou

--json funciona em qualquer comando e imprime exatamente o que o cliente MCP receberia. Referência completa em docs/CLI.md.

Uso — MCP

claude mcp add -s user amazon -- ~/.local/bin/amazon mcp

Ou, à mão, em ~/.claude.json:

{
  "mcpServers": {
    "amazon": { "type": "stdio", "command": "/Users/voce/.local/bin/amazon", "args": ["mcp"] }
  }
}

Use o caminho absoluto: clientes MCP não herdam o PATH do seu shell. Depois é só perguntar: "quanto gastei na Amazon este ano?", "em quantas vezes parcelei o último pedido?", "me manda a nota fiscal daquele livro".

Variáveis de ambiente

Todas opcionais. A tabela completa está em docs/CONFIGURATION.md.

Variável

Default

Para quê

AMAZON_CONFIG_DIR

~/.config/amazon-mcp

Onde ficam sessão, chave, cache e o perfil do Chrome

AMAZON_EXPORT_DIR

~/Downloads/amazon-export

O único diretório onde export e download_invoice escrevem

AMAZON_SESSION_KEY

gerada em session.key

Chave AES em base64 de 32 bytes

AMAZON_READ_ONLY

0

Não registra as tools que escrevem em disco

AMAZON_HEADLESS

1

0 mostra a janela do Chrome nas leituras

AMAZON_BROWSER_CHANNEL

chrome

chrome, chromium ou msedge

AMAZON_IMPORT_BROWSER

unset

arc, chrome, chromium, brave ou edge

AMAZON_MIN_INTERVAL_MS

2000

Intervalo mínimo entre páginas

AMAZON_JITTER_MS

2000

Variação aleatória somada ao intervalo

Tools

São 13, iguais no MCP e no CLI. Referência gerada: docs/TOOLS.md.

Tool

Comando

Rede

auth_status

amazon status [--verify]

0 (1 página com --verify)

login

amazon login [--from-browser]

abre o navegador

doctor

amazon doctor

≤ 2 páginas

sync

amazon sync [--full|--reparse]

em blocos, 1 página por ano mais 1 por pedido

list_orders

amazon orders

0

get_order

amazon order <id>

0 (1 com --refresh)

search_products

amazon search <termo>

0

spending_summary

amazon spending --by …

0

installments_schedule

amazon installments

0

get_invoice

amazon invoice <id>

1

download_invoice

amazon download-invoice <id>

1 a 2

export

amazon export

0

raw_get

amazon raw <path>

1

Como funciona

  1. login guarda os cookies da sessão cifrados com AES-256-GCM, inclusive os HttpOnly e o csd-key, a chave que a página usa para decifrar os pedidos.

  2. sync abre um Chrome headless, percorre a lista de pedidos ano a ano e depois a página de detalhe de cada pedido, em blocos retomáveis. O transporte espera a descriptografia terminar e guarda o HTML já legível.

  3. Tudo é normalizado para um modelo com dinheiro em centavos inteiros e gravado em SQLite. As perguntas depois disso são SQL local, sem rede.

  4. Como o HTML descriptografado fica guardado, uma correção de parser reprocessa o passado com amazon sync --reparse, sem novas requisições.

Três regras vieram da conta real e são a espinha do projeto:

  • O número do pedido só é lido de dentro do card. O cookie session-id tem a mesma forma e aparece em dezenas de URLs da página (ADR-0010).

  • Zero pedidos só vale quando a página diz que o período está vazio. O filtro de período existe mesmo numa página que ainda não carregou.

  • As parcelas são projeção: a Amazon informa quantas e de quanto, nunca as datas. installments_schedule marca isso em toda resposta.

Troubleshooting

Sintoma

O que fazer

Nenhuma sessão salva

amazon login ou amazon login --from-browser chrome

A sessão expirou

amazon login de novo; o servidor MCP recarrega sozinho

status: unknown num pedido

Normal em compras antigas: a Amazon remove o texto de status delas

Verificação anti-bot

Pare. Abra a Amazon no seu navegador, resolva o desafio e espere o bloqueio de 30 minutos passar

Chrome não abre

Instale o Google Chrome, ou bunx playwright install chromium e AMAZON_BROWSER_CHANNEL=chromium

O cache está vazio

amazon sync --full

Alguma coisa mudou no site

amazon doctor diz qual camada quebrou; docs/REDISCOVERY.md diz como remapear

Documentação

Arquivo

Conteúdo

docs/ARCHITECTURE.md

Camadas, fluxo e as regras que as separam

docs/CONFIGURATION.md

Todas as variáveis e os arquivos em disco

docs/USAGE.md

Do zero à primeira resposta

docs/CLI.md

Todos os comandos

docs/TOOLS.md

Referência das tools (gerada)

docs/LOGIN.md

Como o login funciona, o que grava, como revogar

docs/DATA-MODEL.md

O modelo, as regras de dinheiro e o que não existe

docs/INTERNAL-API.md

A superfície interna: páginas, cifragem, armadilhas

docs/REDISCOVERY.md

O que fazer quando a Amazon mudar

docs/adr/

As decisões de projeto e por quê

Licença

MIT. Uso pessoal, somente leitura, sobre a sua própria conta. Não redistribua os dados nem use isto como serviço multiusuário.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/maxwellmezadre/amazon-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server