npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mercadolivre-mcp-server

v1.0.0

Published

MCP Server para API do Mercado Livre com suporte a stdio, REST e WebSocket

Downloads

21

Readme

MCP Server para API do Mercado Livre

Servidor MCP (Model Context Protocol) completo para integração com a API do Mercado Livre, com suporte a stdio, REST e WebSocket.

🚀 Funcionalidades

Gerenciamento de Produtos

  • Buscar produtos
  • Obter detalhes de produtos
  • Criar novos produtos
  • Atualizar produtos existentes
  • Gerenciar estoque
  • Atualizar preços
  • Pausar/ativar produtos

Gerenciamento de Pedidos

  • Listar pedidos do vendedor
  • Obter detalhes de pedidos
  • Filtrar por status
  • Buscar pedidos por data

Perguntas e Respostas

  • Listar perguntas recebidas
  • Responder perguntas
  • Filtrar por status (respondidas/não respondidas)
  • Bloquear usuários

Envios

  • Obter detalhes de envios
  • Gerar etiquetas (PDF/ZPL2)
  • Rastrear envios
  • Consultar opções de envio

Métricas

  • Visitas de produtos
  • Perguntas recebidas
  • Visualizações de telefone
  • Análise por período

📦 Instalação

npm install
npm run build

⚙️ Configuração

Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto:

# Modo de operação: stdio, rest ou websocket
MCP_MODE=stdio

# Porta (para modos rest e websocket)
MCP_PORT=3000

# Credenciais do Mercado Livre
ML_CLIENT_ID=seu_client_id
ML_CLIENT_SECRET=seu_client_secret
ML_REDIRECT_URI=http://localhost:3000/callback

# Tokens (opcional, serão obtidos via OAuth)
ML_ACCESS_TOKEN=seu_access_token
ML_REFRESH_TOKEN=seu_refresh_token

Obter Credenciais

  1. Acesse https://developers.mercadolivre.com.br/
  2. Crie uma nova aplicação
  3. Copie o Client ID e Client Secret
  4. Configure a Redirect URI

🎯 Uso

Modo STDIO (MCP Padrão)

npm start

Ou adicione ao seu mcp.json:

{
  "mcpServers": {
    "mercadolivre": {
      "command": "node",
      "args": ["/caminho/para/ML/mcp-server/dist/index.js"],
      "env": {
        "ML_CLIENT_ID": "seu_client_id",
        "ML_CLIENT_SECRET": "seu_client_secret",
        "ML_ACCESS_TOKEN": "seu_access_token",
        "ML_REFRESH_TOKEN": "seu_refresh_token"
      }
    }
  }
}

Modo REST

MCP_MODE=rest npm start

Endpoints disponíveis:

GET  /health
GET  /products/search?query=termo&limit=50
GET  /products/:itemId
GET  /users/:userId/products
POST /products
PUT  /products/:itemId
PUT  /products/:itemId/stock
PUT  /products/:itemId/price
POST /products/:itemId/pause
POST /products/:itemId/activate
GET  /sellers/:sellerId/orders
GET  /orders/:orderId
GET  /questions/received
POST /questions/:questionId/answer
GET  /shipments/:shipmentId
POST /shipments/labels
GET  /users/:userId/visits

Modo WebSocket

MCP_MODE=websocket npm start

Exemplo de cliente:

const ws = new WebSocket('ws://localhost:3001');

ws.on('open', () => {
  ws.send(JSON.stringify({
    id: '1',
    method: 'search_products',
    params: { query: 'notebook', limit: 10 }
  }));
});

ws.on('message', (data) => {
  const response = JSON.parse(data);
  console.log(response);
});

🔧 Ferramentas Disponíveis (MCP)

Produtos

search_products

Buscar produtos no Mercado Livre

{
  "query": "notebook",
  "limit": 50
}

get_product

Obter detalhes de um produto

{
  "itemId": "MLB123456789"
}

update_stock

Atualizar estoque

{
  "itemId": "MLB123456789",
  "quantity": 10
}

update_price

Atualizar preço

{
  "itemId": "MLB123456789",
  "price": 1999.90
}

Pedidos

get_seller_orders

Listar pedidos do vendedor

{
  "sellerId": "123456789",
  "status": "paid",
  "limit": 50
}

Perguntas

get_received_questions

Listar perguntas recebidas

{
  "status": "UNANSWERED",
  "limit": 50
}

answer_question

Responder uma pergunta

{
  "questionId": "123456789",
  "text": "Olá! Sim, temos em estoque."
}

Envios

get_shipment

Obter detalhes de envio

{
  "shipmentId": "123456789"
}

print_shipment_label

Gerar etiqueta

{
  "shipmentIds": ["123456789", "987654321"],
  "format": "pdf"
}

Métricas

get_user_visits

Obter visitas de produtos

{
  "userId": "123456789",
  "dateFrom": "2024-01-01T00:00:00.000Z",
  "dateTo": "2024-01-31T23:59:59.999Z"
}

🔐 Autenticação

O servidor gerencia automaticamente:

  • Refresh de tokens expirados
  • Renovação automática de access tokens
  • Armazenamento seguro de credenciais

Fluxo OAuth

  1. Obtenha a URL de autorização:
const authUrl = client.getAuthUrl('random_state');
// Redirecione o usuário para authUrl
  1. Após autorização, troque o código por tokens:
await client.exchangeCodeForToken(code);

📝 Exemplos de Uso com Linguagem Natural

Com o MCP Server, você pode usar linguagem natural para gerenciar sua conta:

  • "Busque produtos de notebook com preço até 3000 reais"
  • "Atualize o estoque do produto MLB123 para 50 unidades"
  • "Liste todos os pedidos pagos dos últimos 7 dias"
  • "Responda a pergunta 456 dizendo que o produto está disponível"
  • "Gere etiquetas de envio para os pedidos 789 e 101"
  • "Mostre as métricas de visitas do mês passado"

🛠️ Desenvolvimento

# Modo desenvolvimento com hot reload
npm run dev

# Build
npm run build

# Testes
npm test

📚 Documentação da API

Consulte a documentação oficial do Mercado Livre:

  • https://developers.mercadolivre.com.br/pt_br/api-docs

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Fork o projeto
  2. Crie uma branch para sua feature
  3. Commit suas mudanças
  4. Push para a branch
  5. Abra um Pull Request

📄 Licença

MIT

🔗 Links Úteis