Etsy
Um servidor MCP baseado em TypeScript para interagir com a API do Etsy, com um sistema simples de notas.
Documentação
Etsy MCP Server
Este projeto expõe um subconjunto da API do Etsy através do Model Context Protocol. Ele permite que ferramentas sejam chamadas a partir de um cliente MCP para recuperar dados da loja e gerenciar anúncios.
Configuração OAuth
O servidor requer uma keystring válida da API do Etsy, um segredo compartilhado e um token de atualização OAuth. Você pode fornecer essas credenciais de duas maneiras:
- Variáveis de Ambiente: Defina
ETSY_API_KEY,ETSY_SHARED_SECRETeETSY_REFRESH_TOKEN. - Arquivo de Configurações: Crie um arquivo
etsy_mcp_settings.jsoncopiandoetsy_mcp_settings.example.jsone preenchendo suas credenciais.
Se você ainda não tem um token de atualização, execute o seguinte script auxiliar:
npx tsx src/get-refresh-token --keystring YOUR_KEY --shared-secret YOUR_SECRET
O script abre uma janela do navegador para autenticação e imprime o token de atualização no console.
Desenvolvimento Local
Estas instruções são para executar o servidor diretamente na sua máquina para fins de desenvolvimento.
Primeiro, instale as dependências:
npm install
Em seguida, compile o servidor:
npm run build
Você também pode usar npm run watch para recompilar automaticamente o servidor quando fizer alterações no código.
Localização do Arquivo de Configuração
Para desenvolvimento local, coloque seu arquivo etsy_mcp_settings.json no diretório raiz do projeto (no mesmo nível de package.json). O servidor detectará e carregará automaticamente.
Executando o Servidor
Após a compilação, inicie o servidor com:
npm start
Importante: Este servidor MCP se comunica via stdio e foi projetado para ser conectado por clientes MCP (como Claude Desktop, Cline ou outros aplicativos compatíveis com MCP). Quando executado diretamente, ele iniciará e aguardará mensagens do protocolo MCP. Para testar a funcionalidade, use o MCP Inspector (veja a seção Depuração) ou conecte-o a um cliente MCP.
Integração com Cliente MCP
Para usar este servidor com um cliente MCP, você normalmente precisa:
- Claude Desktop: Adicione a configuração do servidor às configurações do seu Claude Desktop
- Cline: Configure o servidor nas configurações do seu servidor MCP
- Outros Clientes MCP: Consulte a documentação do seu cliente para adicionar servidores MCP
O servidor será iniciado automaticamente pelo cliente MCP quando necessário.
Executando com Docker
Este é o método recomendado para implantação ou para executar o servidor em um ambiente padronizado.
Início Rápido com Docker
Opção 1: Compilar Localmente
docker build -t etsy-mcp-server .
Opção 2: Baixar do Registro (quando disponível)
# Future: docker pull etsy-mcp-server:latest
Localização do Arquivo de Configuração para Docker
Para uso com Docker, seu arquivo etsy_mcp_settings.json deve estar localizado no mesmo diretório onde você executa o comando docker run. O ./ no mount de volume refere-se ao seu diretório de trabalho atual.
Comportamento do Contêiner
Importante: Servidores MCP não são serviços de segundo plano de longa duração. Quando você inicia o contêiner, ele irá:
- Carregar suas credenciais do Etsy (de variáveis de ambiente ou arquivo de configurações)
- Imprimir "Etsy MCP server running on stdio"
- Aguardar mensagens do protocolo MCP na entrada padrão (stdin)
- Sair após um curto período se nenhum cliente MCP se conectar
Este é o comportamento normal. O contêiner foi projetado para ser iniciado por clientes MCP quando necessário, não para ser executado continuamente como um servidor web.
Iniciando o Contêiner
Você pode fornecer suas credenciais do Etsy como variáveis de ambiente ou montando seu arquivo de configurações.
Opção 1: Usando Variáveis de Ambiente
Bash:
docker run --rm \
-e ETSY_API_KEY=YOUR_KEY \
-e ETSY_SHARED_SECRET=YOUR_SECRET \
-e ETSY_REFRESH_TOKEN=YOUR_TOKEN \
etsy-mcp-server
PowerShell:
docker run --rm `
-e ETSY_API_KEY=YOUR_KEY `
-e ETSY_SHARED_SECRET=YOUR_SECRET `
-e ETSY_REFRESH_TOKEN=YOUR_TOKEN `
etsy-mcp-server
Opção 2: Usando um Arquivo de Configurações
Crie um arquivo etsy_mcp_settings.json no seu diretório atual. Em seguida, monte-o no contêiner usando a flag -v:
Bash:
docker run --rm \
-v ./etsy_mcp_settings.json:/usr/src/app/etsy_mcp_settings.json \
etsy-mcp-server
PowerShell:
docker run --rm `
-v ./etsy_mcp_settings.json:/usr/src/app/etsy_mcp_settings.json `
etsy-mcp-server
Integração com Cliente MCP usando Docker
Para usar este contêiner Docker com clientes MCP:
- Claude Desktop: Configure o servidor para usar o comando Docker nas configurações do seu Claude Desktop
- Cline: Configure o comando Docker como comando de inicialização do seu servidor MCP
- Outros Clientes MCP: Use o comando Docker apropriado como executável do servidor
Exemplo de configuração de cliente MCP:
{
"command": "docker",
"args": [
"run",
"--rm",
"-v",
"./etsy_mcp_settings.json:/usr/src/app/etsy_mcp_settings.json",
"etsy-mcp-server"
]
}
O cliente MCP iniciará automaticamente o contêiner quando precisar usar as ferramentas do Etsy e o interromperá quando terminar.
Docker Compose (Recomendado)
Para gerenciamento mais fácil, use Docker Compose:
-
Copie
.env.examplepara.enve preencha suas credenciais:cp .env.example .env # Edit .env with your Etsy API credentials -
Inicie com Docker Compose:
docker-compose --profile production up
Implantação em Produção
Builds Multi-plataforma (para ARM64/Apple Silicon):
# Build for multiple architectures
docker buildx build --platform linux/amd64,linux/arm64 -t etsy-mcp-server:latest .
# Or build specifically for ARM64 (Apple Silicon)
docker buildx build --platform linux/arm64 -t etsy-mcp-server:arm64 .
Implantação no Registro:
# Tag for registry
docker tag etsy-mcp-server:latest your-registry.com/etsy-mcp-server:1.0.0
# Push to registry
docker push your-registry.com/etsy-mcp-server:1.0.0
Solução de Problemas com Docker
Problemas Comuns:
- O contêiner sai imediatamente: Este é o comportamento normal para servidores MCP quando nenhum cliente se conecta
- Permissão negada: Certifique-se de que o Docker tenha acesso adequado ao sistema de arquivos
- Arquivo de configurações não encontrado: Verifique se o caminho do mount de volume corresponde à localização do seu arquivo
- Variáveis de ambiente não carregadas: Verifique a sintaxe do arquivo
.enve os nomes das variáveis
Comandos de Depuração:
# Check container logs
docker logs etsy-mcp-server
# Run container interactively for debugging
docker run -it --rm etsy-mcp-server sh
# Test container with manual input
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | docker run -i --rm etsy-mcp-server
Ferramentas disponíveis
getShop
Busca informações sobre uma loja.
Argumento obrigatório: shop_id.
getMe
Retorna informações básicas sobre o usuário autenticado, incluindo user_id e
shop_id. Este endpoint não aceita argumentos.
getListingsByShop
Lista os anúncios de uma loja. Suporta um parâmetro opcional state (ex.: active, draft). Requer shop_id.
createDraftListing
Cria um novo anúncio físico em rascunho usando POST /v3/application/shops/{shop_id}/listings.
A ferramenta aceita todos os campos suportados pelo endpoint createDraftListing do Etsy.
uploadListingImage
Envia uma imagem para um anúncio. Requer shop_id, listing_id e image_path.
(A implementação é atualmente um placeholder.)
updateListing
Atualiza um anúncio existente. Requer shop_id e listing_id. Campos opcionais incluem title, description e price.
getShopReceipts
Recupera os recibos de uma loja. Requer shop_id.
getShopSections
Recupera a lista de seções de uma loja. Requer shop_id.
getShopSection
Recupera uma única seção de loja por shop_id e shop_section_id.
getSellerTaxonomyNodes
Recupera a hierarquia completa dos nós de taxonomia do vendedor.
getPropertiesByTaxonomyId
Lista as propriedades de produto suportadas para um nó de taxonomia específico. Requer taxonomy_id.
Depuração
Usando o MCP Inspector
Para depurar e testar a funcionalidade do servidor, use o MCP Inspector com a configuração de desenvolvimento local:
npm run inspector
O inspector irá:
- Iniciar um servidor proxy e uma interface web
- Iniciar o servidor MCP compilado localmente
- Fornecer uma URL para visualizar logs de comunicação e testar ferramentas interativamente
Importante: O MCP Inspector só funciona com a configuração de desenvolvimento local, não com Docker. Isso ocorre porque:
- Os contêineres Docker iniciam e saem rapidamente quando nenhum cliente MCP se conecta
- O inspector precisa de acesso direto ao processo do servidor
- O isolamento de rede impede que o inspector se comunique com servidores em contêineres
Fluxo de Trabalho de Depuração Recomendado
-
Para Desenvolvimento e Testes: Use o desenvolvimento local com o MCP Inspector
npm run build npm run inspector -
Para Implantação: Use Docker com clientes MCP
docker build -t etsy-mcp-server . # Then use with your MCP client
Esta abordagem oferece o melhor dos dois mundos: depuração interativa localmente e implantação confiável com Docker.