MCP Server para API do Mercado Livre com suporte a stdio, REST e WebSocket
npm install mercadolivre-mcp-serverbash
npm install
npm run build
`
⚙️ Configuração
$3
Crie um arquivo .env na raiz do projeto:
`env
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
`
$3
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
$3
`bash
npm start
`
Ou adicione ao seu mcp.json:
`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"
}
}
}
}
`
$3
`bash
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
`
$3
`bash
MCP_MODE=websocket npm start
`
Exemplo de cliente:
`javascript
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)
$3
#### search_products
Buscar produtos no Mercado Livre
`json
{
"query": "notebook",
"limit": 50
}
`
#### get_product
Obter detalhes de um produto
`json
{
"itemId": "MLB123456789"
}
`
#### update_stock
Atualizar estoque
`json
{
"itemId": "MLB123456789",
"quantity": 10
}
`
#### update_price
Atualizar preço
`json
{
"itemId": "MLB123456789",
"price": 1999.90
}
`
$3
#### get_seller_orders
Listar pedidos do vendedor
`json
{
"sellerId": "123456789",
"status": "paid",
"limit": 50
}
`
$3
#### get_received_questions
Listar perguntas recebidas
`json
{
"status": "UNANSWERED",
"limit": 50
}
`
#### answer_question
Responder uma pergunta
`json
{
"questionId": "123456789",
"text": "Olá! Sim, temos em estoque."
}
`
$3
#### get_shipment
Obter detalhes de envio
`json
{
"shipmentId": "123456789"
}
`
#### print_shipment_label
Gerar etiqueta
`json
{
"shipmentIds": ["123456789", "987654321"],
"format": "pdf"
}
`
$3
#### get_user_visits
Obter visitas de produtos
`json
{
"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
$3
1. Obtenha a URL de autorização:
`javascript
const authUrl = client.getAuthUrl('random_state');
// Redirecione o usuário para authUrl
`
2. Após autorização, troque o código por tokens:
`javascript
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
`bash
Modo desenvolvimento com hot reload
npm run dev
Build
npm run build
Testes
npm test
``