Skip to main content
Glama
Shopee Affiliate MCP

Shopee Affiliate MCP

Shopee Affiliate MCP — 0.5.0

Servidor MCP em Python para a Open API de Afiliados Shopee Brasil. Expõe 17 ferramentas por stdio ou Streamable HTTP com OAuth e usa consultas GraphQL assinadas com App ID e Secret da conta configurada.

O modo padrão é fixture: produtos sintéticos e nenhuma chamada externa. O modo live exige credenciais e o perfil administrativo oficial. Os contratos foram conferidos no portal brasileiro em 2026-10-01. As novas operações foram testadas com respostas simuladas; a aceitação real depende das permissões da conta.

Uso público e privacidade

Projeto independente, sem vínculo, endosso ou suporte oficial da Shopee. Licença MIT. Cada instalação precisa das próprias credenciais e do acesso à Open API de afiliados; o repositório não fornece uma conta nem um serviço compartilhado. A licença do código não concede direitos sobre dados, marcas ou serviços da Shopee.

O modo live pode devolver links com atribuição, identificadores de pedidos, subIDs e valores de comissão. Esses resultados e os exports devem ser tratados como dados privados da conta. Revise conversas, logs e arquivos antes de compartilhá-los. O histórico opcional fica no SQLite local. Publicar o código não publica esses dados, mas o cliente MCP pode guardar as respostas. Veja orientações de segurança.

Esta versão é inicial: as novas ferramentas passaram em testes simulados e ainda precisam de validação com a API real. HTTP permanece experimental e local; não exponha esse transporte na internet.

Related MCP server: shopee-mcp

Ferramentas

Ferramenta

Função

affiliate_status

Modo, referência local da conta, ferramentas e histórico habilitado; não autentica sozinho

search_offers

Produtos por palavra-chave, loja, categoria, AMS/key seller e ordenação; imagens, desconto, categorias e componentes de comissão

get_offer

Consulta atual do produto por item/shop IDs

search_shop_offers

Ofertas de lojas, tipo de loja, comissão e faixa de orçamento restante

search_campaign_offers

Campanhas Shopee, categoria/coleção, comissão e período

list_product_feeds

Catálogos oficiais FULL/DELTA

get_product_feed

Página de catálogo por datafeed ID e offset; colunas JSON preservadas

generate_affiliate_link

Link oficial com até cinco subIDs ordenados e conta esperada

generate_affiliate_links_batch

Até 20 links; valida tudo antes de enviar e para no primeiro erro

parse_product_url

Extrai IDs de URLs de produto e gera URL canônica; sem acesso à rede

resolve_product_url

Resolve link curto, validando cada destino antes de acessá-lo

get_conversion_report

Conversões e comissões reportadas ainda não validadas

get_validated_report

Relatório validado por validation ID obtido no faturamento

summarize_report

Resumo por subID bruto, campanha, dia UTC, produto ou loja

export_data

CSV/JSON dos registros fornecidos; CSV neutraliza fórmulas

observe_offer

Coleta e grava uma observação de produto no histórico opcional

get_offer_history

Histórico local separado por conta, modo, item e loja

Conectar pelo ChatGPT ou Hermes

Para uso pessoal em Codex, Hermes e Claude Code, siga PRIVATE.md. O formulário exige uma chave privada antes de autorizar as credenciais Shopee.

Para subir no Coolify, siga o guia de configuração.

O transporte oauth-http oferece uma única tela com App ID e App Secret. Não exige cadastro ou senha adicional. Valida o acesso à Shopee antes de autorizar o cliente. As credenciais e sessões ficam criptografadas em SQLite num volume persistente e sobrevivem a reinícios; o servidor entrega tokens próprios ao cliente MCP.

Hospede atrás de HTTPS na VPS e configure MCP_PUBLIC_URL e SHOPEE_VERIFIED_PROFILE. Cada conexão usa sua própria conta. Conexões com as mesmas credenciais compartilham o cliente e os controles locais. Histórico SQLite fica desabilitado neste transporte.

Veja o guia de conexão remota, o Compose e o exemplo Hermes com OAuth. Esta integração é experimental e passou em testes simulados; a conexão real pelo ChatGPT/Hermes e a VPS ainda precisam de aceitação.

Instalação

Python 3.11+:

python3 -m venv .venv
.venv/bin/python -m pip install -c requirements.lock -e .

requirements.lock fixa o conjunto de dependências testado. Nenhum segredo deve estar no código, no Git ou nos argumentos de ferramentas.

Testar localmente

.venv/bin/python local_test.py --fixture --extended
.venv/bin/python local_test.py --extended

O segundo comando pede App ID e App Secret com entrada oculta no Terminal e mantém os valores somente em memória. Verifica initialize/list/status, pesquisa/detalhe de produto, ofertas de lojas, campanhas e lista de feeds. Não gera links nem consulta relatórios financeiros automaticamente. Veja teste local.

Para iniciar um servidor stdio, o cliente MCP deve executar:

.venv/bin/python run.py --mode live

O processo espera mensagens MCP e não mostra um menu. Ele recebe:

Variável

Uso

SHOPEE_APP_ID

App ID da Open API de afiliados

SHOPEE_APP_SECRET

Secret da mesma aplicação

SHOPEE_ACCOUNT_REFERENCE

Rótulo local, ASCII alfanumérico/underscore/hífen, até 64 caracteres

SHOPEE_VERIFIED_PROFILE

Caminho absoluto de examples/profile.official.json

SHOPEE_HISTORY_DB

Opcional: caminho absoluto do SQLite de observações

O servidor não carrega .env automaticamente. O arquivo .env.example contém somente nomes e caminhos de exemplo. Injete segredos pelo ambiente protegido do processo. Confirme no painel que a aplicação está associada à conta correta; o rótulo local não comprova titularidade.

Modelos: cliente MCP, Hermes. Substitua os caminhos pelo diretório de instalação e disponibilize as credenciais ao processo.

Relatórios e precisão

Use timestamps Unix em segundos para purchase_time_start e purchase_time_end. get_validated_report recebe validation_id do painel. max_pages controla a paginação automática (1 por padrão, até 10); limit aceita até 500 registros. complete=false significa que o retorno cobre apenas parte do relatório. next_cursor deve ser usado em até 30 segundos e uma única vez. Consultas de relatórios não recebem retry automático; consultas iniciais sem cursor exigem intervalo maior que 30 segundos por tipo de relatório/processo.

Exemplo de argumentos para summarize_report:

{
  "purchase_time_start": 1790812800,
  "purchase_time_end": 1790899199,
  "group_by": "utm_content",
  "limit": 100,
  "max_pages": 5
}

SubID é preservado como utm_content bruto, sem presumir o separador entre slots. Resumos por produto/loja usam comissão dos itens, sem distribuir arbitrariamente a comissão líquida da conversão. Valores ausentes têm contadores explícitos. Comissão validada não comprova depósito recebido. clickTime representa o clique associado a uma conversão; não fornece todos os cliques da campanha.

IDs são strings e valores monetários são strings decimais. O feed preserva números JSON como strings para não perder precisão. Nos relatórios, ajustes monetários negativos são preservados. BRL é inferido do mercado brasileiro.

Histórico e exportação

Configure SHOPEE_HISTORY_DB para habilitar as ferramentas de histórico. Somente observe_offer grava uma nova observação. Esse histórico começa quando você inicia a coleta; não recupera preços antigos anteriores a ela.

export_data recebe uma lista rows com até 500 objetos e format: "csv" ou "json". Retorna o conteúdo ao cliente sem aceitar caminhos de arquivo. O cliente pode salvar esse conteúdo como um artefato. Dados exportados têm origem caller_supplied_data.

VPS

Veja instalação na VPS. Para Hermes na mesma VPS, stdio dispensa porta pública. O Dockerfile roda como usuário sem privilégios e inicia em fixture por padrão. A CI valida o build Docker e initialize/list/status MCP dentro do container em fixture. A configuração HTTPS e o fluxo live ainda precisam de teste no destino.

O transporte private-http permanece experimental, restrito ao loopback e protegido por um token separado. Para conexão remota, use oauth-http atrás de HTTPS conforme o guia.

Verificação

PYTHONPATH=src:tests .venv/bin/python -m unittest discover -s tests -v

CI no GitHub testa Python 3.11 e 3.12. A verificação local passou em 77 testes, incluindo MCP stdio real, assinaturas, precisão, relatórios paginados, batch com resultado incerto, redirecionamentos e isolamento do histórico. O teste HTTP em memória ainda registra avisos de encerramento do SDK; detalhes em VERIFICATION.md.

Limites atuais: sem estoque/frete/cupons/avaliações textuais, publicação em redes sociais, compras, administração de vendedor ou métricas de todos os cliques. O escopo é a API de afiliados disponível à conta.

Fontes

Implementação própria baseada na documentação oficial brasileira: produtos, lojas, campanhas, feeds, conversões, relatórios validados. Veja contratos e políticas locais.

Available Tools

17 tools
affiliate_statusA
Read-onlyIdempotent

Mostra modo e referência LOCAL da conta. Não autentica nem comprova titularidade na Shopee.

Inputs: no named parameters. Returns: data, mode, synthetic, account_reference

export_dataA
Read-onlyIdempotent

Retorna CSV ou JSON dos registros fornecidos, sem escrever arquivos; neutraliza fórmulas em CSV.

Inputs: rows (required), format (required). Returns: data, mode, synthetic, account_reference

get_conversion_reportB
Read-only

Consulta conversões e comissões ainda não validadas; paginação automática limitada e cursor de uso único/30s.

Inputs: purchase_time_end (required), purchase_time_start (required), limit, cursor, +5 more. Returns: data, mode, synthetic, account_reference

get_offerA
Read-onlyIdempotent

Reconsulta oferta por item_id e shop_id. Retorna nova observação; não garante estoque, frete ou comissão aprovada.

Inputs: item_id (required), shop_id (required). Returns: data, mode, synthetic, account_reference

get_offer_historyC
Read-onlyIdempotent

Consulta observações coletadas neste servidor, separadas por conta e modo.

Inputs: item_id (required), shop_id (required), limit. Returns: data, mode, synthetic, account_reference

get_product_feedC
Read-onlyIdempotent

Obtém uma página do feed oficial; preserva IDs e decimais como strings.

Inputs: datafeed_id (required), limit, offset. Returns: data, mode, synthetic, account_reference

get_validated_reportB
Read-only

Consulta comissões validadas por validationId do painel de faturamento; não comprova pagamento.

Inputs: validation_id (required), limit, cursor, max_pages. Returns: data, mode, synthetic, account_reference

list_product_feedsB
Read-onlyIdempotent

Lista catálogos oficiais FULL ou DELTA disponíveis para a conta.

Inputs: feed_mode. Returns: data, mode, synthetic, account_reference

observe_offerC

Registra uma nova observação do produto em SQLite local habilitado pelo administrador.

Inputs: item_id (required), shop_id (required). Returns: data, mode, synthetic, account_reference

parse_product_urlC
Read-onlyIdempotent

Extrai IDs de URL Shopee.

Inputs: url (required). Returns: data, mode, synthetic, account_reference

resolve_product_urlB
Read-onlyIdempotent

Resolve link curto Shopee, validando cada redirecionamento antes de consultar IDs.

Inputs: url (required). Returns: data, mode, synthetic, account_reference

search_campaign_offersC
Read-onlyIdempotent

Pesquisa campanhas e ofertas Shopee com categoria/coleção e período.

Inputs: page, limit, keyword, sort_type. Returns: data, mode, synthetic, account_reference

search_offersC
Read-onlyIdempotent

Pesquisa uma página; preço/comissão são observações estimadas. Modo fixture contém somente dados sintéticos.

Inputs: keyword (required), page, limit, cursor, +5 more. Returns: data, mode, synthetic, account_reference

search_shop_offersC
Read-onlyIdempotent

Pesquisa ofertas de lojas, comissão, classificação e orçamento disponível.

Inputs: page, limit, keyword, shop_id, +3 more. Returns: data, mode, synthetic, account_reference

summarize_reportC
Read-only

Agrupa conversões por subID bruto, campanha ou dia UTC; informa quando o total cobre apenas parte do relatório.

Inputs: purchase_time_end (required), purchase_time_start (required), limit, cursor, +6 more. Returns: data, mode, synthetic, account_reference

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 17 tools

    Disambiguation4/5

    Tools mostly target distinct resources: search_offers/search_shop_offers/search_campaign_offers differ by scope, and get_offer/observe_offer/get_offer_history differ by action. The two generate_affiliate_link variants and the report trio could be momentarily confused, but descriptions clarify their boundaries.

    Naming Consistency4/5

    Almost all tools follow a verb_noun snake_case pattern (search_offers, get_offer, generate_affiliate_link, get_conversion_report). The lone deviation is the noun-only affiliate_status, which is a minor inconsistency.

    Tool Count4/5

    17 tools is slightly heavy but each maps to a real affiliate workflow step (search, offer lookup, link generation, feeds, reports, URL parsing, observation history). Nothing appears redundant enough to trim.

    Completeness4/5

    The surface covers the affiliate lifecycle well: discovery (offers/shops/campaigns), link generation, feed access, reporting, and local observation history. Missing update/delete style operations and explicit account auth, but those are out of scope per descriptions.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Connects AI agents to the Shopee platform for real-time product searches and category mapping via the Affiliate and Seller Center APIs. It enables users to filter products by keyword, category, and commission rates directly through natural language.
      1
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables searching Taobao/Tmall products with commission links, retrieving item details, generating Taobao passwords, shortening URLs, and creating activity links through the official affiliate API.
      46
      -