Skip to main content
Glama
gustavossouza

MCP Mercado Livre

MCP Mercado Livre

Servidor MCP (Model Context Protocol) em TypeScript para a API do Mercado Livre, focado em vendedores. Permite que LLMs (Claude Desktop, Kimi Code, Cursor etc.) pesquisem o marketplace, publiquem e gerenciem anúncios, respondam perguntas, acompanhem pedidos, envios, reclamações, reputação, catálogo, promoções e muito mais — tudo por linguagem natural.

Projeto open source (MIT) — contribuições são bem-vindas! Veja Contribuindo.

Destaques

  • 42 ferramentas cobrindo o ciclo completo do vendedor (busca, publicação, gestão, pós-venda, reputação, catálogo, promoções, Ads, Full, Shops)

  • OAuth 2.0 com refresh automático — tokens de 6h renovados 5 min antes de expirar, com persistência da rotação do refresh token

  • Suporte a Docker Compose — rode o servidor e a autenticação em containers, com tokens em volume persistente

  • Erros graciosos — falhas da API (validação, escopo, permissão) retornam a mensagem do Mercado Livre de forma clara, sem derrubar o servidor

  • Zero dependências além do essencial — apenas @modelcontextprotocol/sdk e zod; HTTP via fetch nativo do Node 18+

Related MCP server: BopMarket MCP Server

Início rápido

🔰 Nunca usou MCP ou a API do Mercado Livre? Siga o guia de instalação detalhado para iniciantes — passo a passo com prints do que esperar em cada etapa.

Via npm (recomendado — sem clonar o repositório)

  1. Crie o aplicativo no portal de desenvolvedores do Mercado Livre (detalhes no guia de instalação) e anote o Client ID e o Client Secret.

  2. Escolha uma pasta fixa para os tokens (ex. ~/mcp-meli), entre nela e autentique:

    mkdir -p ~/mcp-meli && cd ~/mcp-meli
    npx -y -p @gustavohssouza/mcp-mercadolivre mcp-mercadolivre-auth

    O navegador abre, você autoriza, e o tokens.json é salvo nessa pasta. Como clientes MCP podem iniciar o servidor com outro diretório de trabalho, o passo seguinte aponta ML_TOKENS_FILE para esse arquivo.

  3. Configure o cliente MCP (Claude Desktop, Cursor, Kimi Code):

    {
      "mcpServers": {
        "mercadolivre": {
          "command": "npx",
          "args": ["-y", "@gustavohssouza/mcp-mercadolivre"],
          "env": {
            "ML_CLIENT_ID": "seu_client_id",
            "ML_CLIENT_SECRET": "seu_client_secret",
            "ML_SITE_ID": "MLB",
            "ML_TOKENS_FILE": "/caminho/absoluto/para/mcp-meli/tokens.json"
          }
        }
      }
    }

Alternativa: instalação a partir do código-fonte

Para contribuir ou modificar o código:

git clone https://github.com/SEU_USUARIO/mcp_mercadolivre
cd mcp_mercadolivre

Pré-requisitos

Configuração

  1. Instale as dependências:

    npm install
  2. Crie o arquivo de ambiente:

    cp .env.example .env
  3. Preencha .env com ML_CLIENT_ID e ML_CLIENT_SECRET do seu aplicativo.

  4. Compile:

    npm run build
  5. Autentique (abre o navegador, captura o código e salva os tokens em tokens.json):

    npm run auth
  6. Configure seu cliente MCP (veja Configuração nos clientes MCP) e comece a conversar.

Os tokens são renovados automaticamente (vida útil de 6h, com refresh 5 min antes de expirar). O refresh token é rotacionado pelo Mercado Livre e sempre persistido junto.

Ferramentas disponíveis (42)

Legenda: 📖 leitura · ✏️ escrita (operação real na conta)

Busca & Leitura

Ferramenta

Tipo

Descrição

search_products

📖

Busca produtos em todo o marketplace (filtros de categoria e faixa de preço)

get_item

📖

Detalhes de um anúncio pelo ID (preço, estoque, vendidos, fotos, atributos)

get_my_items

📖

Lista os anúncios do vendedor autenticado (filtro por status: active/paused/closed)

get_questions

📖

Perguntas recebidas (filtro por status, ex. UNANSWERED, e por anúncio)

get_orders

📖

Pedidos/vendas do vendedor, mais recentes primeiro

Publicação

Ferramenta

Tipo

Descrição

predict_category

📖

Prevê a categoria ideal a partir do título do produto

get_category_attributes

📖

Lista os atributos (e quais são obrigatórios) de uma categoria

get_listing_types

📖

Lista os tipos de anúncio disponíveis (Clássica, Premium etc.)

get_listing_prices

📖

Estima as taxas de venda por tipo de anúncio para um dado preço

create_item

✏️

Cria e publica um novo anúncio

upload_picture

✏️

Faz upload de imagem (URL pública ou arquivo local) e retorna o ID da foto

upload_video

✏️

Faz upload de vídeo (arquivo local) e retorna o video_id para anexar ao anúncio

Gestão de anúncios

Ferramenta

Tipo

Descrição

update_item

✏️

Atualiza preço, estoque, título ou vídeo de um anúncio existente

update_item_status

✏️

Pausa, ativa ou fecha um anúncio (fechar com vendas é irreversível)

Perguntas

Ferramenta

Tipo

Descrição

answer_question

✏️

Responde uma pergunta de comprador (pública e não editável)

manage_question_blacklist

📖/✏️

Gerencia a blacklist de perguntas (listar, bloquear, desbloquear usuários)

Envios

Ferramenta

Tipo

Descrição

get_shipment

📖

Detalhes do envio de uma venda (status, rastreio, endereço, itens)

get_shipment_label

📖

Baixa a etiqueta de envio (PDF ou ZPL2) em labels/

Mensagens

Ferramenta

Tipo

Descrição

get_order_messages

📖

Lê a conversa de pós-venda com o comprador de um pedido

send_message

✏️

Envia mensagem ao comprador (moderada; máx. 350 caracteres)

Reclamações & Devoluções

Ferramenta

Tipo

Descrição

get_claims

📖

Busca reclamações do vendedor (filtros de status e período)

get_claim_detail

📖

Detalhes de uma reclamação, incluindo as mensagens do thread

send_claim_message

✏️

Responde dentro do thread de uma reclamação (visível à mediação)

get_returns

📖

Lista devoluções de produtos, geralmente ligadas a reclamações

Reputação & Métricas

Ferramenta

Tipo

Descrição

get_seller_reputation

📖

Termômetro de reputação e métricas (claims, atrasos, cancelamentos)

get_item_visits

📖

Visitas por anúncio em um período (padrão: últimos 30 dias)

Ferramenta

Tipo

Descrição

search_catalog

📖

Busca produtos do catálogo (listings compartilhados com buy box)

get_catalog_product

📖

Detalhes do produto de catálogo, incluindo quem vence o buy box

create_catalog_listing

✏️

Vincula um anúncio existente a um produto de catálogo

Preço & Mercado

Ferramenta

Tipo

Descrição

get_price_suggestion

📖

Sugestão de preço competitivo do Mercado Livre para um anúncio

get_trends

📖

Termos de busca em alta no marketplace (site ou por categoria)

convert_currency

📖

Taxa de câmbio atual entre moedas

Categorias

Ferramenta

Tipo

Descrição

get_site_categories

📖

Categorias de primeiro nível do site

get_category

📖

Detalhes, filhos e restrições de uma categoria (máx. fotos etc.)

Promoções

Ferramenta

Tipo

Descrição

get_promotions

📖

Lista campanhas/promoções oferecidas ao vendedor (candidatas e ativas)

get_promotion_items

📖

Itens participando de uma promoção, com preço promocional

add_item_to_promotion

✏️

Inscreve um anúncio em uma campanha com o preço oferecido

Mercado Ads

Ferramenta

Tipo

Descrição

get_ads_campaigns

📖

Lista campanhas de Product Ads (status, orçamento, estratégia)

get_ads_campaign_metrics

📖

Métricas de uma campanha (impressões, cliques, CTR, custo, ACOS)

Fulfillment (Full)

Ferramenta

Tipo

Descrição

get_fulfillment_stock

📖

Estoque armazenado nos centros de fulfillment do Mercado Livre

Mercado Shops & Depósitos

Ferramenta

Tipo

Descrição

get_mercado_shop

📖

Informações da Mercado Shop do vendedor (se a conta tiver uma)

get_warehouses

📖

Depósitos/origens de estoque cadastrados pelo vendedor

Nota: as ferramentas de Mercado Ads, Fulfillment (Full) e Mercado Shops exigem que a conta/aplicativo tenha esses recursos habilitados (escopo de advertising, conta Full, loja criada). Caso contrário, o erro retornado pelo Mercado Livre é exibido claramente pela ferramenta.

Fluxos recomendados

Criar um anúncio

  1. predict_category com o título do produto → obtém o category_id ideal.

  2. get_category_attributes com a categoria escolhida → descobre os atributos obrigatórios.

  3. (opcional) get_listing_types e get_listing_prices → escolhe o tipo de anúncio e estima as taxas.

  4. (opcional) upload_picture e/ou upload_video → envia as mídias locais antes, caso não estejam em URLs públicas, e guarda os IDs retornados.

  5. create_item com todos os atributos obrigatórios preenchidos (e video_id se houver vídeo) → publica o anúncio.

Se o Mercado Livre rejeitar a criação com erro de validação, o corpo completo do erro é retornado — basta corrigir os campos indicados e tentar novamente.

Operação diária do vendedor

  1. get_questions com status=UNANSWERED → responde com answer_question (conversão depende disso).

  2. get_orders → novos pedidos; get_shipment + get_shipment_label para despachar.

  3. get_claims com status=opened → entende com get_claim_detail e responde com send_claim_message (prazos contam para a reputação).

  4. get_item_visits + get_my_items → detecta anúncios com visitas e sem vendas; ajusta preço com get_price_suggestion e update_item.

  5. get_seller_reputation → acompanha o termômetro e as métricas de claims/atrasos/cancelamentos.

Uso com Docker Compose

# build da imagem
docker compose build

# autenticação (publica a porta 3333 e imprime a URL para abrir no navegador)
docker compose --profile auth run --rm --service-ports auth

# executar o servidor MCP manualmente (stdio)
docker compose run --rm mcp-mercadolivre

Os tokens ficam no volume nomeado meli-data (/app/data/tokens.json dentro do container), compartilhado entre os serviços auth e mcp-mercadolivre.

Configuração nos clientes MCP

Execução local (Node)

Claude Desktop (claude_desktop_config.json), Kimi Code ou Cursor — trecho mcpServers:

{
  "mcpServers": {
    "mercadolivre": {
      "command": "node",
      "args": ["/caminho/absoluto/para/mcp_mercadolivre/dist/index.js"],
      "env": {
        "ML_CLIENT_ID": "seu_app_id",
        "ML_CLIENT_SECRET": "seu_client_secret",
        "ML_SITE_ID": "MLB"
      }
    }
  }
}

O caminho exato do arquivo de configuração de cada cliente (macOS/Windows/Linux) está no guia de instalação.

Execução via Docker

{
  "mcpServers": {
    "mercadolivre": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--env-file", "/caminho/absoluto/para/mcp_mercadolivre/.env",
        "-e", "ML_TOKENS_FILE=/app/data/tokens.json",
        "-v", "mcp_mercadolivre_meli-data:/app/data",
        "mcp-mercadolivre"
      ]
    }
  }
}

Importante: rode a autenticação (docker compose --profile auth run --rm --service-ports auth) antes de usar o servidor via Docker, para que os tokens existam no volume.

Segurança

O servidor inclui um pacote de proteções para operar sua conta com segurança, especialmente enquanto você experimenta.

Modo somente leitura (ML_READ_ONLY)

Defina ML_READ_ONLY=true no .env e nenhuma ferramenta de escrita é registrada — o tools/list expõe apenas 32 ferramentas de leitura (incluindo manage_question_blacklist, que nesse modo aceita somente a ação list; block/unblock retornam erro explicando o modo). Recomendado: use ML_READ_ONLY=true nos primeiros experimentos e só desligue quando estiver confortável.

Perfis de ferramentas (ML_TOOL_PROFILE)

Limita quais ferramentas o servidor expõe:

Perfil

Ferramentas

Total

all (padrão)

Todas

42

leitura

Apenas leitura

31

vendas

Leitura + responder perguntas, mensagens ao comprador, mensagens em reclamações, blacklist de perguntas

35

publicacao

Leitura + criar/atualizar anúncios, upload de mídia, opt-in de catálogo

37

Confirmação de ação irreversível

update_item_status com action="close" exige o parâmetro confirm: true — sem ele, a chamada é recusada com uma mensagem pedindo a confirmação explícita (fechar um anúncio com vendas é irreversível).

Guarda de conteúdo em mensagens

send_message e send_claim_message varrem o texto antes de chamar a API e bloqueiam mensagens contendo e-mails, telefones (formatos BR) ou links/domínios — conteúdo proibido pela moderação do Mercado Livre, que pode sancionar a conta. A mensagem de bloqueio explica o motivo para o texto ser reformulado.

Log de auditoria

Toda invocação de ferramenta de escrita é registrada em audit.log (raiz do projeto, append-only, gitignored) com timestamp, ferramenta, parâmetros (truncados em 500 caracteres) e resultado (ok/error). Ferramentas de leitura não são logadas.

Permissões do arquivo de tokens

Na inicialização e após salvar tokens, o servidor verifica tokens.json: se as permissões forem mais abertas que 0600 (legível por grupo/outros), um aviso é impresso e o modo é corrigido automaticamente para 0600.

Solução de problemas

  • O cadastro do app rejeita a Redirect URI http://localhost:3333/callback: o Mercado Livre exige HTTPS para apps em produção, mas aceita http://localhost durante a autenticação. Se o formulário de cadastro recusar, cadastre temporariamente uma URL HTTPS qualquer (ex. https://localhost/callback) e, na hora de autenticar, mantenha ML_REDIRECT_URI=http://localhost:3333/callback no .env — ou use uma URL HTTPS válida e ajuste ML_REDIRECT_URI e o auth-cli de acordo.

  • Redirect URI mismatch na autenticação: o ML_REDIRECT_URI do .env precisa ser idêntico ao cadastrado no aplicativo (incluindo porta e path). Qualquer diferença faz o Meli recusar o callback.

  • No tokens stored: rode npm run auth (ou o serviço auth do compose) novamente.

  • Erros 401 persistentes / refresh token expirado: o refresh token tem validade máxima (~6 meses) e é rotacionado a cada refresh — se a conta ficou muito tempo sem uso ou o arquivo de tokens foi perdido, refaça a autenticação.

  • Erros de escopo/permissão nas ferramentas de Ads, Full ou Shops (403/404): essas APIs exigem recursos extras — escopo de advertising concedido ao app, conta Full habilitada, ou uma Mercado Shop criada. O servidor retorna a mensagem do Meli como está; habilite o recurso na conta/app e tente novamente.

  • Erros de validação no create_item: o corpo completo do erro do Meli é retornado — normalmente indica atributos obrigatórios faltando (rode get_category_attributes na categoria) ou valores fora do permitido. Corrija os campos indicados e reenvie.

  • Etiqueta de envio não encontrada: a etiqueta só existe quando o envio está ready_to_ship, e tipos logísticos como flex/self_service não têm etiqueta para impressão.

Estrutura do projeto

mcp_mercadolivre/
├── src/
│   ├── index.ts        # Servidor MCP: registro das 42 ferramentas
│   ├── meli-client.ts  # Cliente HTTP da API Meli (Bearer, retry 401, multipart, binário)
│   ├── auth.ts         # OAuth 2.0: URL de autorização, troca/refresh de tokens
│   ├── auth-cli.ts     # CLI de autenticação (servidor local :3333 + browser)
│   ├── token-store.ts  # Persistência dos tokens em tokens.json (0600)
│   ├── safety.ts       # Perfis, read-only, guarda de conteúdo, audit log
│   └── config.ts       # Variáveis de ambiente + parser de .env sem dependências
├── docs/
│   ├── instalacao.md   # Guia de instalação passo a passo para iniciantes
│   ├── arquitetura.md  # Arquitetura, fluxo OAuth e decisões de design
│   ├── tools.md        # Referência completa das 42 ferramentas
│   └── api-map.md      # Mapa de endpoints da API Meli utilizados e cobertura
├── dist/               # Build (tsc)
├── Dockerfile
├── docker-compose.yml
├── LICENSE             # Licença MIT
├── CONTRIBUTING.md     # Guia de contribuição
├── .env.example
└── package.json

Documentação

  • docs/instalacao.md — guia de instalação passo a passo (para quem nunca usou MCP)

  • docs/arquitetura.md — arquitetura interna, fluxo OAuth e estratégia de erros

  • docs/tools.md — referência detalhada de cada ferramenta (parâmetros, endpoints, notas)

  • docs/api-map.md — endpoints da API do Mercado Livre utilizados e áreas não cobertas

Contribuindo

Contribuições são muito bem-vindas — issues, sugestões de novas ferramentas e pull requests. Leia o CONTRIBUTING.md para os padrões do código e o checklist de como adicionar uma nova ferramenta.

Licença

Distribuído sob a licença MIT. Veja o arquivo LICENSE para o texto completo.

Autor & Contato

Available Tools

42 tools
add_item_to_promotionA

Submit one of your items to a promotion campaign with the offered deal price — this is a REAL write operation: if Meli approves, the item starts being sold at the promotional price for the campaign duration. Confirm the price with the user before calling. Flow: get_promotions (find a 'candidate' campaign) → add_item_to_promotion with the deal_price within the campaign's allowed range. Returns the submission result with item id and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesYour item id (with site prefix), e.g. 'MLB123456789'
deal_priceYesPromotional price offered for the item during the campaign
promotion_idYesPromotion id from get_promotions
top_deal_priceNoOptional lower price for extra exposure within the campaign (top deal)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden well: it discloses that this is a REAL write operation, that Meli approval is required, and that approval causes the item to sell at the promotional price for the campaign duration. It stops short of covering permissions/auth scopes, rate limits, or whether a submission can be withdrawn.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded — the write-operation warning appears in the first clause, then the flow, then the return info. Dense but each sentence carries distinct information; the tool's resource name is partly restated in the opening.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without annotations or an output schema, the description supplies the side-effect model, the sequencing with get_promotions, and a brief note on the return value (item id and status). It could say more about rejection/error handling, but nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by stating that deal_price must fall within the campaign's allowed range. It does not explain the optional top_deal_price, which the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Submit one of your items to a promotion campaign') and clarifies it is a real write operation rather than a lookup. An agent can distinguish it from get_promotions and get_promotion_items without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes the workflow and prerequisites: call get_promotions to find a 'candidate' campaign first, then pass a deal_price within the campaign's allowed range, and confirm the price with the user before calling. Nothing about when to use it is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

answer_questionA

Post a public answer to a buyer's pre-sale question. The answer is visible to everyone viewing the listing and CANNOT be edited or deleted afterwards — confirm the exact text with the user before sending. Get the question_id from get_questions (typically with status='UNANSWERED'). Returns the answer id, text, status and creation date.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesAnswer text; public and irreversible once posted
question_idYesNumeric question id from get_questions

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: it discloses that the answer is public and irreversible ('CANNOT be edited or deleted afterwards') and instructs confirmation of exact text. It also describes the return payload, so the agent knows what to expect in the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the action and its irreversible nature before the sourcing hint and return description. No filler, though the return-value sentence could be trimmed given it is not strictly needed for invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation tool with no output schema and no annotations, the description covers the side effects (public, permanent), the prerequisite (question_id source) and the response shape. Nothing an agent needs to call this safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters including the irreversibility of 'text'. The description reinforces their meaning but adds no format or syntax detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource+audience ('Post a public answer to a buyer's pre-sale question'), which cleanly distinguishes it from the read-only sibling get_questions. An agent immediately knows this is a write operation on a listing question.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent where the required question_id comes from ('Get the question_id from get_questions, typically with status=UNANSWERED'), routing it to the correct sibling and condition. It also prescribes a confirmation step before sending, which is actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_currencyA

Get the current Mercado Livre exchange rate between two currencies (e.g. USD → BRL). Useful for cross-border pricing or comparing prices across Meli sites. Returns the conversion ratio and both currency codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency ISO code, e.g. 'BRL'
fromYesSource currency ISO code, e.g. 'USD'

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Get' and 'current' imply a read-only lookup, and the description usefully discloses the return shape (ratio plus both currency codes), but it says nothing about rate source, freshness/update frequency, or whether it covers only a single pair. Adequate but thin for an annotation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the core action, then usage context, then return value. Every sentence carries information with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming what is returned (conversion ratio and both currency codes), and both required params are schema-documented. Only minor gaps remain, such as rate provenance and freshness guarantees.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters ('from'/'to' ISO codes) are fully documented in the schema. The description adds the directional example (USD → BRL) and confirms both currency codes come back, but contributes no syntax or constraint detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get the current Mercado Livre exchange rate between two currencies') with a concrete example (USD → BRL). No sibling tool performs currency conversion, so an agent can route to it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use ('cross-border pricing or comparing prices across Meli sites'), which tells the agent when this tool is relevant. It stops short of explicit when-not conditions or named alternatives, but no sibling offers overlapping functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_catalog_listingA

Opt one of your EXISTING listings into catalog competition by linking it to a catalog product — this is a real write operation. The listing keeps its identity but starts competing for the buy box under catalog rules: display and sales conditions change (e.g. free-shipping and price rules may differ from a standalone listing). Confirm with the user before calling. Flow: search_catalog → get_catalog_product (check the winner's price) → create_catalog_listing. The item must belong to the authenticated seller and match the catalog product. Returns the linked item id, status and permalink.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesYour existing item id (with site prefix), e.g. 'MLB123456789'
catalog_product_idYesCatalog product id from search_catalog, e.g. 'MLB15171222'

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it declares 'this is a real write operation' and spells out side effects (display and sales conditions change, free-shipping and price rules may differ). It also states return values. It omits whether the link can be reversed/unlinked, which is the main gap for a mutation of this kind.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the operation and its consequence in the first sentence, then compresses prerequisites and flow into tight follow-ups. Slightly dense with three separate concerns, but every sentence adds information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, it enumerates the return payload (linked item id, status, permalink) and covers prerequisites, side effects, and the recommended flow. An agent has everything needed to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already provides formats and examples, so the baseline is 3. The description adds business semantics beyond the schema: item_id must belong to the authenticated seller, and catalog_product_id must match the item's catalog product.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: linking an EXISTING listing to a catalog product to opt it into catalog competition. It distinguishes itself from siblings like create_item (new listing) and search_catalog/get_catalog_product (read-only catalog lookups) by emphasizing 'EXISTING'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit call flow (search_catalog → get_catalog_product → create_catalog_listing), prerequisites (item must belong to the authenticated seller and match the catalog product), and a human-in-the-loop requirement ('Confirm with the user before calling'). Nothing about when to use it is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_itemA

Create and PUBLISH a new listing on Mercado Livre — this is a real write operation: the item becomes public (immediately or per account settings) and selling fees apply once it sells. Confirm the details with the user before calling. Recommended flow: (1) predict_category with the title to get category_id; (2) get_category_attributes on that category and fill every attribute marked required via the attributes parameter; (3) optionally get_listing_types/get_listing_prices to choose the listing type and estimate fees; (4) call create_item. The title is limited to 60 characters. If Meli rejects the payload with a validation error, the full error body is returned — read it, fix the offending fields (usually missing required attributes) and retry. Returns the created item id, status and permalink.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesSale price in currency_id
titleYesListing title, max 60 characters
picturesNoImage URLs; Meli downloads them (pictures[].source). For local files, upload first with upload_picture
shippingNoShipping options object, e.g. {free_shipping: true, mode: 'me2'}
video_idNoId of a video previously uploaded to the seller's account
conditionNoItem condition: 'new' or 'used' (default 'new')new
attributesNoItem attributes; MUST include all attributes marked required by get_category_attributes
buying_modeNoBuying mode; keep 'buy_it_now' unless the user explicitly wants auctionbuy_it_now
category_idYesCategory id from predict_category, e.g. 'MLB1055'
currency_idNoISO currency of the price. Defaults to the site currency (BRL for MLB)
descriptionNoPlain-text listing description
listing_type_idNoExposure plan id from get_listing_types, e.g. 'gold_special' (Clássica, default) or 'gold_pro' (Premium)gold_special
available_quantityYesStock quantity available for sale

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral burden and does so: it discloses that the item becomes public, that selling fees apply, that user confirmation is required, how errors surface (full error body returned), and common remediation (missing required attributes). It also states return values (item id, status, permalink).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the critical fact (real write/public/fees) before the workflow, and the numbered steps are scannable. It is dense and slightly long, but nearly every clause carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter mutation tool with nested objects, no annotations, and no output schema, the description supplies prerequisites, execution workflow, error semantics, and return values — everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 13 parameters, including the 60-char title limit, attributes requirements, and listing_type_id origin. The description reinforces the workflow origins for category_id/attributes but adds little syntax beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create and publish) on a specific resource (a listing on Mercado Livre), and immediately sets scope with 'this is a real write operation'. It is clearly distinguishable from siblings like update_item, update_item_status, and create_catalog_listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit numbered recommended flow naming alternatives (predict_category, get_category_attributes, get_listing_types/get_listing_prices) with the conditions that select each. Also states the confirm-with-user prerequisite and a retry procedure on validation failure.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ads_campaign_metricsA

Get performance metrics of a Mercado Ads campaign over a date range (defaults to the last 30 days): impressions, clicks, CTR, cost, attributed sales and ACOS when present. Use this to evaluate ad spend efficiency — a high ACOS means advertising costs eat a large share of the revenue it generates. Get campaign ids from get_ads_campaigns. Requires the advertising scope; scope errors are surfaced clearly. Date format: YYYY-MM-DD.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNoEnd of the range, YYYY-MM-DD. Defaults to today
date_fromNoStart of the range, YYYY-MM-DD. Defaults to 30 days ago
campaign_idYesCampaign id from get_ads_campaigns

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden and does well: it discloses the 30-day default window, that some metrics (ACOS) may be absent ('when present'), and that scope errors surface clearly, which prepares the agent for auth failures. It omits pagination, rate limits, and whether it is strictly read-only, but the behavioral coverage is strong for a metrics getter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and metric list, with prerequisites layered after. The ACOS explanation sentence is useful sense-making but slightly expandable; overall it is dense and earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description compensates by naming the returned metrics (impressions, clicks, CTR, cost, attributed sales, ACOS). Combined with the default range and scope note, an agent has enough to invoke and interpret results, with only residual gaps around formatting and pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents campaign_id, date_from, date_to with their defaults. The description repeats the date format and 30-day default rather than adding new parameter semantics, making this the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('Get performance metrics of a Mercado Ads campaign') with the exact metric list enumerated, which distinguishes it cleanly from the sibling get_ads_campaigns that only supplies ids. An agent can tell what it returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the intent ('evaluate ad spend efficiency') and routes to get_ads_campaigns as the source for campaign ids, plus flags the required advertising scope. It stops short of stating when not to use it or naming a competing metrics tool, so it is a clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ads_campaignsA

List the seller's Mercado Ads (Product Ads) campaigns. Use this for advertising questions: which campaigns exist, their status, daily budget and bidding strategy. Gotcha: this requires the advertising scope granted to the app and an active ads account — if either is missing, Meli answers with a scope/permission error, which is surfaced clearly so you know the feature isn't available. Get campaign ids here, then check performance with get_ads_campaign_metrics. Returns a compact list with campaign id, name, status, budget and strategy.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax campaigns to return, 1-50 (default 20)
offsetNoPagination offset
statusNoCampaign status filter, e.g. 'active', 'paused'. Omit to list all

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does so: it discloses the required advertising scope and active ads account, and explains that a scope/permission error is surfaced to signal the feature is unavailable. It also states the shape of the return value ('compact list with campaign id, name, status, budget and strategy'), which is essential given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then usage, then the prerequisite gotcha, then the sibling hand-off, then return contents – a sensible priority order. Every sentence adds distinct information with no restatement of the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with three fully documented parameters and no output schema, the description supplies everything essential: what it returns, the auth prerequisites, the failure mode, and the next tool to call. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so limit, offset and status are already fully documented in the schema. The description only gestures at 'which campaigns exist, their status', adding no format, default, or range detail beyond what the schema states. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the seller's Mercado Ads (Product Ads) campaigns') and immediately scopes the content it covers (status, daily budget, bidding strategy). It is clearly distinguishable from the sibling get_ads_campaign_metrics, which is explicitly named as the performance tool rather than the listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit use case ('Use this for advertising questions: which campaigns exist...'), states the follow-up workflow ('Get campaign ids here, then check performance with get_ads_campaign_metrics'), and flags the exclusion condition (advertising scope or ads account missing). An agent can route to this tool versus its sibling without inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_catalog_productA

Get full details of a catalog product, including who is currently winning the buy box (buy_box_winner: price and seller id). Use this after search_catalog to study the competition before linking your listing with create_catalog_listing — the winner's price is the reference your listing must beat (along with reputation and shipping) to take the buy box. Returns name, attributes, picture URLs, main features and the buy box winner when present.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesCatalog product id from search_catalog, e.g. 'MLB15171222'

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden; it discloses the returned fields (name, attributes, pictures, main features, buy box winner), a 'when present' caveat, and the business semantics of buy_box_winner as the price reference. It stops short of permissions, rate limits, or error behavior, which is the only gap keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose, then usage, then return contents. Every sentence earns its place, though the buy-box explanation is slightly verbose for a single-parameter read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description correctly compensates by enumerating return fields, and it explains when the tool is used in the workflow. Given no annotations, it could disclose a bit more about permissions/failure modes, but it is complete enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself documents product_id with an example ID format. The description adds no syntax or format detail beyond what the schema already provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource ('Get full details of a catalog product') and immediately distinguishes itself by calling out the buy box winner payload, which no sibling provides. An agent can differentiate it from search_catalog (search) and create_catalog_listing (link) without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit sequencing: 'Use this after search_catalog' and 'before linking your listing with create_catalog_listing.' It names the alternatives and the condition that routes to each, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_categoryA

Get details of a category: its name, full path from the root, child categories (to keep drilling down the tree) and the listing settings that apply to it — including constraints relevant BEFORE create_item such as max pictures per item and max description length. A category with no children is a leaf and can be used as category_id in create_item; then call get_category_attributes for its mandatory attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idYesCategory id, e.g. 'MLB1055' (from get_site_categories or predict_category)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses the shape of the response (name, path, children, listing settings), the leaf/non-leaf semantic, and its place in the create_item workflow. It stops short of noting auth requirements, errors, or rate limits, but covers the behaviorally important parts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense passage, front-loaded with what is returned and then the actionable workflow note. Every clause carries information, though it is slightly long and could be split into a return-value sentence and a usage sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description must explain returns and next steps; it does both (fields returned, leaf semantics, follow-up with get_category_attributes). Only minor gaps remain around pagination/limits or error cases, which are unlikely to matter for this lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single category_id param is documented with an example format and its source tools (get_site_categories, predict_category). The description adds no parameter detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (category) and enumerates what details are returned: name, full path, child categories, and listing settings. It also clearly separates itself from siblings like get_site_categories (which lists) and get_category_attributes (which handles mandatory attributes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: a childless category is a leaf and can be used as category_id in create_item, then get_category_attributes should be called for mandatory attributes. It also flags that constraints must be read BEFORE create_item, giving concrete when-to-use and sequencing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_category_attributesA

Get the attributes defined for a Mercado Livre category. Call this AFTER picking a category with predict_category and BEFORE create_item, to learn which attributes are mandatory (required=true) and what values are allowed. Every attribute flagged as required MUST be included in create_item's attributes parameter or the publication will be rejected with a validation error. Returns id, name, value_type (string/number/boolean/list/...), required flag, and allowed values (id + name) when the attribute is a closed list.

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idYesCategory id returned by predict_category, e.g. 'MLB1055'

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the returned fields (id, name, value_type, required flag, allowed values for closed lists) and the concrete validation behavior that required attributes must be supplied to create_item. It does not mention permissions, rate limits, or read-only safety, but the workflow and return-shape disclosures are substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose and workflow position, followed by the consequence of omission and the return shape. Every sentence adds actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the key return fields and explaining how they feed into create_item. The single-parameter input is fully covered by the schema, so nothing needed for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and category_id is already documented as the id returned by predict_category. The description adds no syntax, format, or constraint beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: get the attributes defined for a Mercado Livre category. It distinguishes the tool from siblings like predict_category and get_category by scoping it to attribute definitions and allowed values, so an agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly prescribes workflow order: call AFTER predict_category and BEFORE create_item. It also explains why — to discover mandatory attributes and allowed values — and names the alternative consequence (publication rejected if required attributes are omitted).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_claim_detailA

Get the full details of a single claim (reclamação), including its type, status, stage, reason, related order id, the parties involved (complainant = buyer, respondent = seller), the resolution when the claim is closed, and the recent messages in the claim thread. Use this after get_claims to understand a specific claim before replying with send_claim_message. If the messages endpoint is unavailable, messages are simply omitted — the rest of the detail is still returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
claim_idYesNumeric claim id from get_claims

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses a genuine behavioral trait — graceful degradation where messages are omitted if that endpoint is unavailable — which is real context beyond structured fields. It stops short of stating permissions, rate limits, or how many messages count as 'recent', keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and returned fields are front-loaded in the first sentence, usage guidance second, and the degradation caveat last. It is somewhat dense, but every sentence carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description compensates by enumerating the returned fields (type, status, stage, reason, order id, parties, resolution, messages) and clarifying buyer/seller party roles. Nothing needed to invoke or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single claim_id parameter is already documented as 'Numeric claim id from get_claims'. The description references get_claims but adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get the full details of a single claim') and enumerates the returned facets, making it clearly distinct from the sibling get_claims (list) and send_claim_message (write). An agent can route without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the workflow position: 'Use this after get_claims to understand a specific claim before replying with send_claim_message.' It names both the prerequisite tool and the follow-up tool, leaving no inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_claimsA

Search the authenticated seller's claims (reclamações) — buyer complaints opened against sales. Open claims hurt seller reputation and have response deadlines, so use this to find claims needing attention (e.g. status 'opened'). Optional status filter and date range (ISO 8601); results are paginated with limit/offset. Returns a compact list with claim id, type (e.g. 'claim', 'return'), status, stage (e.g. 'claim', 'mediation'), resource_id (the related order id), reason id and creation date. Call get_claim_detail on a claim id for the full picture.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax claims to return, 1-50 (default 10)
offsetNoPagination offset
statusNoClaim status filter, e.g. 'opened', 'closed'. Omit to list all
date_toNoOnly claims created on/before this date (ISO 8601)
date_fromNoOnly claims created on/after this date (ISO 8601, e.g. '2026-01-01T00:00:00.000-03:00')

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the burden. It adds useful context that claims have response deadlines and that results are paginated, but it does not disclose whether this requires specific auth scopes beyond 'authenticated seller', nor what the compact list omits relative to get_claim_detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what a claim is and why it matters, then covers filters, pagination, and return shape. It is a bit dense but every sentence earns its place; the parenthetical Portuguese gloss is a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, urgency, filters, pagination, and the compact return fields, and points to the sibling for full detail. With no output schema, it adequately enumerates the returned fields, though it could state auth requirements and whether status values are constrained to an enum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so descriptions already document all five parameters with defaults, ranges, and formats. The description reinforces the optional status filter and ISO 8601 date range but adds no format or syntax detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (authenticated seller's claims), then parenthetically defines claims as buyer complaints opened against sales. It clearly distinguishes itself from the sibling get_claim_detail, which it explicitly routes to.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear reason to use it ('Open claims hurt seller reputation and have response deadlines, so use this to find claims needing attention') and points to get_claim_detail for full details. It does not mention when NOT to use it or other alternatives like get_returns, keeping it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fulfillment_stockA

List the seller's stock stored at Mercado Livre fulfillment centers (Full), with available and non-sellable (e.g. damaged) quantities. Use this for inventory questions about Full — for regular (seller-shipped) stock use get_my_items/get_item instead. Gotcha: this only works for accounts enrolled in Full; otherwise Meli answers with an error, which is surfaced clearly.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax stock entries to return, 1-100 (default 50)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the read nature, a significant precondition (Full enrollment), and the error behavior when unenrolled ('Meli answers with an error, which is surfaced clearly'). It omits pagination/rate-limit behavior and any permission/auth detail, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then routing, then a clearly flagged 'Gotcha' precondition. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with no output schema and one optional param, the description supplies purpose, sibling routing, return content (available and non-sellable quantities), and the enrollment precondition with error behavior. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'limit' parameter is fully documented in the schema (range 1-100, default 50). The description adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) plus resource (seller's stock at Mercado Livre fulfillment centers) and scope (available and non-sellable quantities). It also explicitly names the sibling tools (get_my_items/get_item) it should not be confused with, so an agent can route correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('inventory questions about Full'), explicit when-not/alternative ('for regular seller-shipped stock use get_my_items/get_item'), and a precondition ('only works for accounts enrolled in Full'). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_itemA

Get full details of a single Mercado Livre listing by its item id. The id must be the complete id including the site prefix, e.g. 'MLB123456789' — bare numbers do not work. Use this to inspect a specific listing (yours or a competitor's) in depth: stock, sales count, pictures and attributes. For bulk listing of the seller's own items use get_my_items instead. Returns title, price, currency, available_quantity, sold_quantity, condition, status (active/paused/closed/...), permalink, picture URLs and attributes (id/name/value).

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesFull item id with site prefix, e.g. 'MLB123456789'

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does meaningful work: it discloses the ID-format constraint ('bare numbers do not work') and enumerates the returned fields. It still omits auth/permission requirements and error behavior for unknown or inaccessible ids, which is a gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and the id constraint before routing and return details. The return-field list is long but earns its place because there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, enumerating the returned fields (title, price, quantity, status, pictures, attributes) is exactly the right compensation, and sibling routing is covered. Only permission/error context is missing, which keeps it short of a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, so the baseline is 3; the description goes slightly beyond by warning that bare numeric ids fail, which the schema only implies via the example. That extra constraint is genuinely actionable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get full details of a single Mercado Livre listing by its item id') and explicitly contrasts itself with the sibling get_my_items. An agent can distinguish it from bulk/seller-scoped siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit when ('inspect a specific listing (yours or a competitor's) in depth') and names the alternative with the condition that selects it ('For bulk listing of the seller's own items use get_my_items instead'). Both the positive and negative routing cases are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_item_visitsA

Get the number of page visits per listing in a date range (defaults to the last 30 days when no dates are given). Use this to measure listing traffic — a powerful combo is get_my_items + get_item_visits to find listings with many views but few or no sales (a sign the price, pictures or listing type may need work). Accepts up to 50 item ids at once; returns one entry per item id with the total visits in the range.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toNoEnd of the range, YYYY-MM-DD. Defaults to today
item_idsYesItem ids (with site prefix, e.g. 'MLB123456789'), max 50
date_fromNoStart of the range, YYYY-MM-DD. Defaults to 30 days ago

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the default date window (last 30 days), the 50-item cap, and the return shape (one entry per item id with total visits). It stops short of stating read-only safety or auth requirements, but fully covers the behavioral traits an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then defaults, then the analytic use case. The 'powerful combo' sentence is longer than strictly necessary but earns its place by routing the agent to a real workflow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by explaining the return format (one entry per item id with total visits). For a read-only, 3-parameter tool with full schema coverage, nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the 30-day default and the 50-id limit, which the schema already documents, without adding format or edge-case semantics beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the number of page visits per listing') plus scope (date range). An agent can distinguish it cleanly from siblings like get_listing_prices or get_my_items without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the use case ('measure listing traffic') and a concrete combination workflow (get_my_items + get_item_visits to spot high-traffic, low-sales listings). This is direct when-to-use guidance, not inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_listing_pricesA

Estimate the selling fees for publishing an item at a given price, optionally for a specific category and listing type. Use this BEFORE create_item so the seller knows the commission cost of each exposure plan (Clássica vs Premium) before committing. Returns one entry per listing type with the sale fee percentage, fee amount and related flags for the given price.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesIntended sale price in the site currency (e.g. BRL for MLB)
category_idNoCategory id (from predict_category) for a category-accurate fee
listing_type_idNoListing type id (from get_listing_types), e.g. 'gold_special'. Omit to get fees for all types

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations and no output schema, the description carries the full burden and does so well: it discloses the return shape (one entry per listing type with sale fee percentage, fee amount and flags) and that omitted listing_type_id yields all types. It omits any note on permissions, idempotency, or currency/price-error behavior, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core action, then timing guidance, then return shape — nothing redundant except a mild restatement between "BEFORE create_item" and "before committing." Well sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, three-parameter estimate with no output schema or annotations, the description covers what the tool does, when to call it, and what comes back. It is nearly complete; only permission/error context (e.g. invalid price or category handling) is absent, which is minor for a low-risk estimation call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains price, category_id and listing_type_id, including the omit-to-get-all-types behavior. The description restates the same semantics ("optionally for a specific category and listing type") without adding syntax, valid values, or edge cases beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise action and object ("Estimate the selling fees for publishing an item at a given price") and even corrects the misleading tool name, which sounds like it returns listing prices rather than a fee estimate. It clearly separates itself from siblings like create_item and get_listing_types by naming the fee-estimation scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit sequencing guidance: "Use this BEFORE create_item," so the seller knows the commission cost per exposure plan before committing. It does not state when not to use it or name a direct alternative with comparable output, so it falls just short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_listing_typesA

List the listing types (exposure plans) available on the configured site, e.g. 'gold_special' (Clássica) and 'gold_pro' (Premium). Each type has different fees and exposure; higher tiers usually charge more commission but boost visibility. Call this (optionally together with get_listing_prices) before create_item to choose the listing_type_id. Returns ids and names.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It discloses the return shape ('Returns ids and names') and explains the domain tradeoff (fees vs. exposure, higher tiers cost more but boost visibility). It does not mention authentication or rate limits, but for a simple read-only lookup this is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose and examples, followed by useful domain context and then usage/return info. No wasted words; every sentence adds value for an agent deciding whether and how to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the zero-parameter schema, no annotations, and no output schema, the description is nearly complete: it explains what the tool does, why the output matters, when to call it, and what it returns. It could add a note on authentication or caching, but such details are not essential for this simple lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the scoring rules the baseline is 4. The description correctly does not attempt to document nonexistent inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a clear resource ('listing types (exposure plans)'), and scope ('available on the configured site'). It gives concrete examples and distinguishes itself by referencing the downstream tools get_listing_prices and create_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to call this before create_item to choose the listing_type_id and names get_listing_prices as an optional companion. However, it does not state when not to use this tool or any exclusions, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mercado_shopA

Get the seller's Mercado Shop info (id, name, URL, status) if the account has one. Mercado Shops is an optional storefront feature — accounts without a shop get a graceful 'no shop' response instead of a hard error. Use this when the user asks about their store page or wants the shop URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does disclose a real trait: the account may lack a shop and the call returns a graceful 'no shop' response rather than an error. It also reveals the shape of the payload. It does not mention auth requirements or rate limits, but the optional-feature behavior is the salient one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: identity/return shape first, the optional-feature caveat second, the usage trigger last. Every sentence earns its place with no repetition of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by naming the returned fields and the empty-state behavior, which is the main thing an agent needs. Remaining omissions (response format, pagination) are immaterial for a zero-argument lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly does not invent parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (Mercado Shop info) and enumerates exactly what is returned (id, name, URL, status). No sibling tool in the list overlaps with a storefront-info read, so the agent can identify it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it 'when the user asks about their store page or wants the shop URL', which gives a clear triggering condition. It doesn't name an alternative tool or a when-not-to-use case, but no plausible sibling alternative exists here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_itemsA

List the authenticated seller's own listings, with optional status filter. Use this whenever the user asks about 'my listings/ads/products' — for marketplace-wide search use search_products instead. Status filter values: 'active' (published and visible), 'paused' (temporarily hidden), 'closed' (finished; items with sales usually end here). Results are paginated via limit/offset; each entry is hydrated with id, title, status, price, currency and permalink. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return, 1-100 (default 20)
offsetNoPagination offset
statusNoFilter by listing status: active, paused or closed. Omit to list all statuses

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the authentication requirement, that results are paginated via limit/offset, and what fields hydrate each entry, but says nothing about permissions beyond auth, rate limits, or error/edge behavior. Solid context, though a few gaps remain for a no-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then routing, then filter semantics, then pagination/return shape in a compact block with no filler. Slightly dense in the middle clause, but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description fills both gaps: it covers auth, pagination controls, and the return shape (id, title, status, price, currency, permalink). An agent has everything needed to call and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, and the description exceeds it by explaining the semantics of each status value ('active' published and visible, 'paused' temporarily hidden, 'closed' finished; items with sales usually end here)—meaning the enum labels alone don't convey. It also confirms limit/offset drive pagination, adding a small amount beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the authenticated seller's own listings') with scope ('own listings') that immediately separates it from marketplace-wide siblings. It also names search_products as the contrasting tool, so the agent can pick correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('whenever the user asks about my listings/ads/products') and when not to ('for marketplace-wide search use search_products instead'). The alternative is named along with the condition that selects it, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_order_messagesA

Read the post-sale message conversation with the buyer of a specific order. Use this to see what the buyer asked after the purchase (delivery questions, invoice requests, etc.). The pack id in the messaging API equals the order id. Returns each message with sender/recipient (user id + role, e.g. 'buyer'/'seller'), text, date (ISO 8601) and whether it was read. To reply, use send_message with the same order id.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax messages to return, 1-50 (default 20)
order_idYesNumeric order id from get_orders

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the return shape (sender/recipient with ids and roles, ISO 8601 date, read status) and the domain quirk that the messaging 'pack id' equals the order id. It omits pagination behavior (the limit cap) and any auth/permission notes, so it stops short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, followed by usage, return format, and the alternative action, with zero filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description's explicit enumeration of returned fields and its id-mapping note make the tool fully callable and interpretable. Purpose, usage, return values, and the sibling alternative are all covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it explains the messaging-API pack-id-to-order-id equivalence and reinforces the reply flow using the same id, which the schema's terse 'Numeric order id from get_orders' does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Read) and resource (the post-sale message conversation with the buyer of a specific order), scoping it to one order. This clearly separates it from send_message and from get_questions, which handle other communication channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('to see what the buyer asked after the purchase') with concrete examples, and names the alternative for the opposite action ('To reply, use send_message with the same order id'). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ordersA

List the authenticated seller's orders (sales), newest first (sort=date_desc). Use this for questions about recent sales, revenue, or what a specific buyer purchased. The optional status filter accepts Mercado Livre order statuses such as 'confirmed', 'payment_required', 'payment_in_process', 'paid', 'shipped', 'delivered' and 'cancelled'. Each order includes id, creation date (ISO 8601), status, total amount, currency, buyer nickname, and line items with item id, title, quantity and unit price. Paginated via limit/offset. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax orders to return, 1-50 (default 10)
offsetNoPagination offset
statusNoOrder status filter, e.g. 'paid', 'confirmed', 'shipped', 'delivered', 'cancelled'. Omit to list all

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden, and it delivers: it discloses the 'Requires authentication' prerequisite, the default sort order, pagination via limit/offset, and the shape of each returned order. It does not mention rate limits or explicitly characterise the operation as read-only (only implied by 'List'), so it falls short of exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, then usage, then parameter detail, then return shape and auth. Every sentence carries information the schema does not, and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, yet the description covers return fields (id, date, status, total, currency, buyer, line items), pagination, sort order and auth. An agent has everything needed to call and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value by enumerating two status values absent from the schema ('payment_required', 'payment_in_process') and by restating pagination semantics. The role of status as an optional filter is also made explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the authenticated seller's orders (sales)'), plus the ordering (newest first). The '(sales)' gloss and the authenticated-seller scope separate it cleanly from siblings like get_shipment, get_order_messages and get_returns without needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this for questions about recent sales, revenue, or what a specific buyer purchased' gives concrete invocation contexts. It does not name an alternative tool or state when NOT to use it, so it stops short of the top band, but the positive guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_suggestionA

Get Mercado Livre's competitive price suggestion for one of your listings — the price Meli estimates would make the listing more competitive, based on comparable sales. Use it when the user asks whether a listing is priced right or wants to undercut the competition. Gotcha: not every listing has a suggestion (insufficient data); in that case the endpoint returns partial data and whatever comes back is surfaced as-is. Returns current price, suggested price and the basis of the suggestion when present.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesItem id with site prefix, e.g. 'MLB123456789'

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the real gotcha that not every listing has a suggestion due to insufficient data, that partial data is returned as-is, and it enumerates the returned fields. It omits auth/permission requirements and any rate-limit behavior, keeping it out of 5 territory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, followed by usage and a clearly labeled 'Gotcha'. Every sentence carries information the agent needs; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description is complete: it covers purpose, triggering scenarios, the failure mode (partial/absent suggestion), and the shape of the return. Nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with 100% schema coverage, so the schema already documents item_id and its site-prefix format. The description adds no format or syntax detail beyond that, matching the baseline-3 rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource ('Get Mercado Livre's competitive price suggestion') and pins the scope to 'one of your listings' with the basis (comparable sales). An agent can distinguish this from get_listing_prices, the raw-price sibling, because the description frames it as a recommendation rather than a price read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the triggering user intents — 'whether a listing is priced right' or 'wants to undercut the competition' — which is clear usage context. It does not name an alternative tool or a when-not-to-use condition, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_promotion_itemsA

List the items already participating in a specific promotion campaign, with their promotional price, original price and status. Use this to check which of your items are in a campaign (and at what price) after adding them with add_item_to_promotion, or to audit active discounts. Get the promotion_id from get_promotions. Paginated with limit/offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax items to return, 1-50 (default 20)
offsetNoPagination offset
promotion_idYesPromotion id from get_promotions

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses pagination behavior and the shape of returned values, and the verb 'List' implies a read-only operation, but it never explicitly states that this is non-mutating nor mentions permission or rate-limit considerations. Adequate but with a real gap for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and outcome, followed by usage and prerequisite hints. Slightly redundant in that pagination via limit/offset and the price fields are each mentioned in both the description and the schema, but the text stays short and earns most of its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description correctly compensates by describing what comes back (promotional price, original price, status) and how results are paged. Auth/permission expectations are the only notable omission for a 3-parameter, single-required tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with limit, offset, and promotion_id all documented inline including ranges and defaults. The description only restates pagination and the provenance of promotion_id, adding no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('List the items already participating in a specific promotion campaign') and enumerates the returned fields (promotional price, original price, status). It is clearly distinguishable from add_item_to_promotion (which enrolls items) and get_promotions (which returns campaigns).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit use cases ('check which of your items are in a campaign after adding them with add_item_to_promotion, or to audit active discounts') and names the prerequisite source for the required id ('Get the promotion_id from get_promotions'). The agent knows both when to call it and where its input comes from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_promotionsA

List the promotions/campaigns Mercado Livre offers to the authenticated seller (daily deals, lightning deals, etc.) — both campaigns you can join (status 'candidate') and ones already running ('started'). Use this to discover discount opportunities, then inspect participants with get_promotion_items or join with add_item_to_promotion. May legitimately return an empty list when there are no active campaigns for the account. Returns a compact list with id, type, status, title and start/finish dates, paginated with limit/offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax promotions to return, 1-50 (default 10)
offsetNoPagination offset
statusNoPromotion status filter, e.g. 'candidate' (can join) or 'started' (running). Omit to list all
promotion_typeNoPromotion type filter, e.g. 'DEAL', 'LIGHTNING'. Omit to list all types

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does well: it frames the scope as the authenticated seller, warns that an empty list is legitimate (a common false-negative trap), and describes the return shape and pagination. It does not mention rate limits, permission nuances, or whether the listing is cached, so it falls short of fully rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and resource, then routing, then behavioral caveat, then return shape — a logical order with no filler. It runs slightly long by restating return fields the caller could not otherwise know, but every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter read tool with no annotations and no output schema, the description covers purpose, routing, empty-result caveat, and the return shape well enough to call it correctly. Remaining gaps (permissions, rate limits) are minor for a listing endpoint; it stops just short of fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents limit, offset, status, and promotion_type in detail. The description restates the candidate/started semantics and the limit/offset pagination but adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource (promotions/campaigns offered to the authenticated seller) and scopes it to what the seller can join vs. what is running. It distinguishes itself from the sibling tools by naming get_promotion_items and add_item_to_promotion as the follow-up actions, so an agent can tell the three apart without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('Use this to discover discount opportunities') and routes to the correct alternatives with their distinct purposes: inspect participants via get_promotion_items, join via add_item_to_promotion. The when/when-not distinction is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_questionsA

List pre-sale questions buyers asked on the authenticated seller's listings, newest first. Use status='UNANSWERED' to find questions still waiting for a reply — that is the most common use case, since unanswered questions hurt conversion. Other status values: 'ANSWERED', 'DELETED', 'BANNED', 'DISABLED'. Use item_id to restrict to one listing. Each question comes back with its id (needed by answer_question), text, item id, status, creation date (ISO 8601), and the answer (text + date) when one exists. Requires authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax questions to return, 1-50 (default 20)
statusNoFilter by question status: 'UNANSWERED', 'ANSWERED', 'DELETED', 'BANNED' or 'DISABLED'. Omit to list all; use UNANSWERED to find pending questions
item_idNoRestrict to a single item id, e.g. 'MLB123456789'

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden: it discloses the auth requirement, the default sort order (newest first), the enumerated status values, and the shape of each returned record. It does not discuss pagination or rate limits, but covers the core behavioral facts a caller needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then the primary-use-case tip, then status values, then the item_id filter, and finishes with the return shape and auth note. The return-field enumeration is somewhat long but earns its place given there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with no annotations and no output schema, the description supplies the missing pieces: auth requirement, ordering, return fields, and status semantics. Nothing an agent needs to invoke it correctly is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it explains why UNANSWERED is the recommended status and frames item_id as a narrowing filter. This goes beyond the schema's terse field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (pre-sale questions), plus scope (authenticated seller's listings, newest first). An agent can immediately distinguish this from the sibling answer_question, which the description explicitly links as the consumer of the returned ids.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the primary use case (status='UNANSWERED' to find pending questions) and explains why it matters for conversion, and notes item_id restricts to one listing. It stops short of naming when not to use it or explicit alternatives beyond the implicit answer_question link.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_returnsA

List the authenticated seller's product returns (devoluções) — items buyers sent back, usually linked to a claim. Use this to track return requests and their statuses; call get_claim_detail on the linked claim id for the full context and message thread. Returns a compact list with return id, claim id, order id, status and creation date, paginated with limit/offset. Accounts without returns may yield an API error — it is surfaced gracefully instead of crashing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax returns to return, 1-50 (default 10)
offsetNoPagination offset
statusNoReturn status filter, e.g. 'opened', 'closed'. Omit to list all

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full burden and does disclose real behavior: the authenticated-seller scope, the linked-claim relationship, and notably that accounts without returns may raise an API error that is surfaced gracefully. It stops short of covering auth/permission requirements or rate limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then usage, return contents, and edge cases in tight succession. Every sentence carries distinct information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the returned fields (return id, claim id, order id, status, creation date), documents pagination, and flags an error edge case. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents limit, offset, and status in detail. The description's mention of 'paginated with limit/offset' largely restates the schema and adds no syntax or format detail beyond it, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the authenticated seller's product returns'), including the Portuguese term devoluções and the claim linkage, which separates it from sibling tools like get_claims and get_orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use guidance ('Use this to track return requests and their statuses') and routes to the complementary get_claim_detail for full context. No explicit when-not-to-use condition, but the sibling routing is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_seller_reputationA

Get a seller's reputation profile on Mercado Livre — the authenticated account by default, or any seller by user_id (public data). Use this to check the seller's reputation thermometer and service metrics. The level_id is Meli's color scale: red (1_red) is worst, then orange/yellow/light_green, up to green (5_green) — plus Mercado Líder tiers in power_seller_status (e.g. 'silver', 'gold', 'platinum') for top sellers. Metrics include the rates of claims, delayed handling time and cancellations over the last period; keeping these low is what maintains a green reputation. Returns nickname, registration date, transaction totals (total/completed/canceled) and each metric with its rate and value.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoSeller user id; omit to check the authenticated account

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose behavior beyond the schema: it explains that omitting user_id yields the authenticated account, that other sellers return public data, and that metrics cover 'the last period'. It does not mention auth requirements, rate limits, or error behavior for invalid user_ids, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and default/override behavior are front-loaded, and the following sentences earn their place by decoding fields the schema cannot (level_id color scale, power_seller_status tiers, metric list). It is dense but not padded; only the level_id explanation is slightly more verbose than strictly needed to invoke the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the returned payload (nickname, registration date, transaction totals, metric rates/values) and interpreting the enum-like fields (1_red through 5_green, silver/gold/platinum). An agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter's schema text already says 'omit to check the authenticated account', so the description largely restates it. It adds only the 'public data' nuance. Per the rubric, the baseline is 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Get a seller's reputation profile on Mercado Livre') and immediately disambiguates the two operating modes: the authenticated account by default vs. any seller via user_id. No sibling tool in the list covers seller reputation, so the agent can place it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the purpose ('Use this to check the seller's reputation thermometer and service metrics') and the condition that selects the parameterized mode (user_id for public data on any seller). It does not name a when-not case or a sibling alternative, but no sibling overlaps this capability, so the gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_shipmentA

Get the shipping details of a sale: status, substatus, tracking number, dates (ISO 8601), receiver address, shipped items and logistic type (e.g. 'me2', 'flex', 'self_service'). Shipment ids come from orders: each order returned by get_orders has a shipping id (order.shipping.id) — if you only have an order id, call get_orders first to find the shipment id. Status values include 'pending', 'ready_to_ship', 'shipped', 'delivered' and 'cancelled'. Use get_shipment_label to download the printable label for the shipment.

ParametersJSON Schema
NameRequiredDescriptionDefault
shipment_idYesNumeric shipment id, taken from an order's shipping.id

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it discloses the returned data shape (status, substatus, tracking, dates, address, items, logistic type) and the enumerated status values, which is strong for a read tool. It does not state read-only semantics explicitly or any auth/permission requirements, but 'Get' and the read-oriented field list make the behavior clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the returned fields, then id provenance, status values, and the sibling pointer. Every clause carries information, though the status enumeration and provenance note make it slightly long relative to a single-parameter getter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description appropriately enumerates return fields and status values to compensate. It stops short of describing error or not-found behavior, but is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents that shipment_id is a numeric id from order.shipping.id. The description's statement about id provenance largely duplicates that schema text, adding little beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get the shipping details of a sale') and enumerates the returned fields, so the agent knows exactly what it produces. It distinguishes itself from siblings by routing to get_orders for id discovery and get_shipment_label for labels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the prerequisite for obtaining shipment_id ('call get_orders first to find the shipment id') and names the alternative tool for a different task ('Use get_shipment_label to download the printable label'). When-to-use and alternative routing are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_shipment_labelA

Download the Mercado Envios shipping label for a shipment and save it to a local file. Returns the absolute file path and size in bytes so the user can open/print it. The label comes back as PDF (default) or ZPL2 for thermal printers. Gotchas: the label only exists after the shipment is 'ready_to_ship', and some logistic types (e.g. flex / self-service) do not have a printable label — in those cases Meli returns an error, which is surfaced as-is. Shipment ids come from orders (order.shipping.id); call get_orders first if you only have an order id.

ParametersJSON Schema
NameRequiredDescriptionDefault
shipment_idYesNumeric shipment id, taken from an order's shipping.id
response_typeNoLabel format: 'pdf' (default) or 'zpl2' for Zebra thermal printerspdf

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses the local-file write side effect, the returned path/size, both output formats, the state precondition, the failure modes for unsupported logistic types, and that Meli errors are surfaced as-is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and return value, then packs preconditions and gotchas into a compact trailing block. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must explain the return, and it does (absolute file path plus size in bytes). Combined with format options and failure behavior, an agent has everything needed to call and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents both parameters, including the order.shipping.id origin and the pdf/zpl2 enum. The description largely restates that, adding no syntax or format detail beyond the structured fields, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (download/save) and resource (Mercado Envios shipping label) plus the concrete side effect (saved to a local file), which clearly separates it from the sibling get_shipment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real preconditions and routing advice: label only exists after 'ready_to_ship', flex/self-service logistics have no printable label, and 'call get_orders first if you only have an order id.' It does not explicitly contrast with get_shipment, but the when-to-use context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_site_categoriesA

List the top-level categories of the configured site (MLB by default). This is the entry point for browsing the category tree: pick a category here, then drill down with get_category to reach a leaf category usable in create_item. For a title-driven shortcut to the right leaf category, predict_category is usually faster. Returns a list of {id, name}.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the site is configurable with MLB as the default, that the result is a tree entry point, and that it returns a list of {id, name}. Missing are auth/rate-limit or empty-result notes, but for a 0-param read listing this is solid behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, followed by drill-down guidance, the alternative, and the return shape. Every sentence adds information and none is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly compensates by stating the return shape ('a list of {id, name}'), and it covers the default-site behavior and workflow. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to document beyond the schema's empty object and the baseline default of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the top-level categories of the configured site') and immediately distinguishes itself from siblings by naming get_category for drilling down and predict_category for title-driven shortcuts. An agent can tell exactly what this returns and how it differs from the other category tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames itself as the entry point to the category tree, gives the workflow (pick here, then drill down with get_category to reach a leaf usable in create_item), and names predict_category as a faster alternative for a title-driven case. When-to-use and alternatives are both spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_warehousesA

List the seller's registered warehouses (multi-origin stock locations / depósitos) with their ids, descriptions and addresses. Useful for accounts shipping from multiple addresses and for setting up shipping options per origin. Accounts without registered warehouses get an empty list or a clear API error.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full behavioral burden. It usefully discloses the edge case for accounts with no warehouses ('empty list or a clear API error') and implies a read-only listing via 'List', but says nothing about authentication/scope requirements or pagination. The hedge 'or a clear API error' is also imprecise about actual failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, and each adds something (returned fields, use case, edge case). Mildly padded by the alternative-synonym parenthetical and the vague 'or a clear API error' clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter read-only listing with no output schema, the description adequately covers what is returned and the empty-state behavior. A brief note on auth scope or result ordering would close the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is no parameter semantics to describe; baseline is 4. The schema is empty and consistent with the description's claim that the tool takes no input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('seller's registered warehouses') and enumerates the returned fields (ids, descriptions, addresses). The parenthetical gloss 'multi-origin stock locations / depósitos' disambiguates a domain term, so no sibling (none of which handle warehouses) could be confused with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when-to-use context: accounts shipping from multiple addresses, and setting up per-origin shipping options. It offers no exclusions or named alternatives, but with no overlapping sibling tool there is little routing ambiguity to resolve.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_question_blacklistA

Manage the seller's questions blacklist. 'list' shows the blocked users; 'block' prevents a user from asking questions on your listings; 'unblock' reverses it. Use 'block' only for abusive users — note this ONLY blocks new questions from that user; they can still buy from you, and blocking/unblocking is a real change to the account, so confirm with the user first. Get user ids from buyers' questions (get_questions) or orders.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhat to do: 'list' (read-only), 'block' or 'unblock' a user
user_idNoUser id to block/unblock (required for those actions; ignored for 'list')

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: it discloses that blocking only suppresses new questions, that the user can still buy, and that block/unblock is a real account change requiring user confirmation. These are non-obvious side effects an agent could not infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then action semantics, then cautions, then input sourcing. Every sentence conveys a distinct, actionable constraint with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter action tool with no output schema and no annotations, the description covers purpose, mode semantics, side effects, confirmation needs, and input sourcing. Nothing an agent needs to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum is documented, so the baseline is 3. The description adds value beyond the schema by giving the provenance of user_id (from get_questions or orders) and clarifying the list/block/unblock mapping to each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Manage the seller's questions blacklist') and then enumerates the three action modes, so an agent knows exactly what the tool does. It is clearly distinguishable from read-only siblings like get_questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use 'block' ('only for abusive users'), what it does not do, and where to obtain the required user_id ('buyers' questions (get_questions) or orders'). It also names the confirmation prerequisite before mutating.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

predict_categoryA

Predict the best Mercado Livre category for a product title. ALWAYS call this BEFORE create_item: create_item requires a category_id, and publishing in the wrong category hurts visibility and can be rejected. Pass the product title you intend to publish and pick the top prediction. After choosing a category, call get_category_attributes to discover which attributes are mandatory for that category. Returns a list of predicted categories with id, name and full path (e.g. 'Celulares e Telefones > Celulares e Smartphones').

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesProduct title to classify, e.g. 'iPhone 13 128GB Meia-noite'

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden and does well: it explains the return shape (list of categories with id, name, full path) and the consequence of misfiling. It omits auth/rate-limit behavior, but for a lightweight read-style prediction tool the operational context is largely covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then a workflow directive, then a follow-up tool, then the return format. Every sentence earns its place and none is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description explains the return values, and it embeds the tool in the publish workflow (before create_item, then get_category_attributes). Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'title' param is already documented with an example in the schema, so the description adds only marginal meaning ('pass the title you intend to publish') plus guidance on picking the top prediction. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (predict) and resource (Mercado Livre category) with the exact input (product title). It clearly distinguishes itself from siblings by positioning the tool as the pre-step to create_item, an agent can tell what it does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to ALWAYS call this before create_item and gives the reason (create_item needs category_id, wrong category hurts visibility/is rejected). It also names the follow-up tool get_category_attributes, providing a clear end-to-end workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_catalogA

Search Mercado Livre's product catalog. Catalog products are shared listings where multiple sellers compete for the buy box on price and reputation — opt-ing into catalog can bring much more traffic than a standalone listing. Use this to find the catalog_product_id for a product you sell, then inspect it with get_catalog_product and link your listing with create_catalog_listing. Returns a compact list with product id, name, thumbnail and main attributes, paginated with limit/offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results per page, 1-50 (default 10)
queryYesProduct search text, e.g. 'iPhone 13 128GB'
offsetNoPagination offset

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden; it conveys that this is a read-only search that returns a compact paginated list with named fields. It omits explicit read-only confirmation, auth requirements, and rate-limit behavior, but the operational profile is otherwise clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then workflow, then return shape. The catalog/marketing context earns its place by motivating use, though the buy-box/traffic aside is slightly verbose for a tool definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description steps up by describing the return ('product id, name, thumbnail and main attributes, paginated'), and it names the two follow-on tools an agent needs. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents query, limit, and offset. The description's 'paginated with limit/offset' merely restates the schema and adds no format or constraint detail beyond it; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search Mercado Livre's product catalog') and immediately clarifies what a catalog product is. It distinguishes this catalog-specific search from generic product search and names the downstream tools (get_catalog_product, create_catalog_listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the purpose of use ('find the catalog_product_id for a product you sell') and the sequencing ('then inspect it with get_catalog_product and link your listing with create_catalog_listing'). The agent knows exactly when to reach for this and what follows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_productsA

Search public listings on Mercado Livre for the configured site (ML_SITE_ID, default MLB = Brazil). Use this to research competitors, market prices, or find item/category ids by keyword — it searches the whole marketplace, NOT the seller's own listings (use get_my_items for that). Results are paginated: use limit (max 50) and offset to page through. Returns total count plus a compact list with id, title, price, currency, permalink, thumbnail, condition (new/used) and free-shipping flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results per page, 1-50 (default 10)
queryYesSearch text, e.g. 'iphone 13 128gb'
offsetNoPagination offset; combine with limit to fetch further pages
categoryNoRestrict search to a category id, e.g. 'MLB1055' (get ids from predict_category)
price_maxNoMaximum price filter (inclusive), combined with price_min
price_minNoMinimum price filter (inclusive), combined with price_max

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers: it discloses pagination semantics (limit max 50, offset paging), the return shape (total count plus a compact list with named fields), and the site-scoping behavior. It lacks only non-essential operational details like rate limits or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but zero waste: purpose, use cases, the sibling exclusion, pagination mechanics, and the return shape in three front-loaded sentences. Nothing is buried or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with six fully documented params and no output schema, the description supplies the missing pieces — return fields and pagination behavior — so an agent can call it and interpret results correctly without further reference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented in the schema (limit range, query example, offset, category id source, price bounds). The description largely restates the limit/offset mechanics rather than adding new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search public listings on Mercado Livre') with scope (configured site, default MLB). It explicitly distinguishes itself from the sibling get_my_items by clarifying it searches the whole marketplace, not the seller's own listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (competitor research, market prices, finding item/category ids) and gives an explicit exclusion with the alternative ('NOT the seller's own listings — use get_my_items for that'). Both when-to-use and when-not are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_claim_messageA

Send a message inside a claim (reclamação) thread as the seller. This is a REAL message visible to the buyer AND to Mercado Livre's mediation team — it becomes part of the claim record, so confirm the exact text with the user before sending. The same moderation rules as buyer messaging apply: no contact information, links, phone numbers or e-mails, under risk of sanctions. Use get_claim_detail first to read the thread context. Returns the created message id and date.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text; visible to buyer and Meli mediation, no contact info or links
claim_idYesNumeric claim id from get_claims

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden and does so well: it discloses that the message is REAL and visible to both buyer and Mercado Livre mediation, that it becomes part of the claim record, that text must be user-confirmed, and that the moderation rules (no contacts, links, phone, e-mail) carry sanction risk. It even states the return shape (message id and date).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then prerequisites and risk in descending priority. Slightly redundant — the moderation constraint is repeated in both prose and the 'text' schema description — but every sentence otherwise carries operational weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the prerequisite tool, the visibility/irreversibility risk, the compliance constraint, and the return payload, with no output schema needed. An agent has everything required to invoke this correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (text, claim_id) are already documented, including the moderation constraint and the claim_id source. The description adds no syntax, format, or length semantics beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+actor: 'Send a message inside a claim (reclamação) thread as the seller.' This is clearly distinct in kind from the generic send_message sibling, though the description never explicitly names that sibling to contrast with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit prerequisite and ordering: 'Use get_claim_detail first to read the thread context.' It also gives the when-to-be-careful condition (confirm exact text before sending). It stops short of naming send_message as the non-claim alternative, which would make routing fully unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_messageA

Send a post-sale message to the buyer of a specific order — this is a REAL message delivered to the buyer, so confirm the exact text with the user before sending. Only for post-sale communication tied to an order. Important Mercado Livre moderation rules: messages are moderated and must NOT contain contact information — no links, phone numbers, e-mails or social media handles; violations can lead to sanctions on the seller's account, up to suspension. Text is limited to 350 characters. Use get_order_messages first to read the conversation context. Returns the sent message id, moderation status and date.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text, max 350 characters; no links, phone numbers or e-mails (moderated)
order_idYesNumeric order id from get_orders

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden and does so thoroughly. It discloses that this is a REAL buyer-facing message, requires user confirmation, is subject to Mercado Livre moderation with account suspension risk, forbids contact information, is limited to 350 characters, and returns message id, moderation status, and date.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then layers in critical warnings, prerequisites, and return information. It is somewhat long and repeats the schema's character limit and moderation warning, but every major sentence contributes useful guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is complete: it covers side effects, moderation rules, user confirmation, prerequisite context lookup, and return values. An agent has enough information to call it safely and correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reiterates the text limit and moderation constraint already in the schema, and adds little new syntax or meaning for order_id beyond what is already documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: send a post-sale message to the buyer of a specific order. It distinguishes itself from sibling read tools like get_order_messages by being the send action, and from claim messaging by restricting to post-sale communication tied to an order.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context: only for post-sale communication tied to an order, confirm exact text with the user before sending, and use get_order_messages first for context. It does not explicitly name send_claim_message as the alternative for claim-related messages, but the scoping exclusion is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_itemA

Update mutable fields of an existing listing owned by the authenticated seller: price, stock (available_quantity), title or video. Use this for price changes and stock adjustments; to change visibility (pause/activate/close) use update_item_status instead. Only the provided fields are sent. Gotcha: the title can only be changed while the item has no sales — once units are sold, Meli rejects title updates. Returns the updated item id, price, available_quantity and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceNoNew sale price
titleNoNew title (max 60 chars); only allowed while the item has no sales
item_idYesFull item id with site prefix, e.g. 'MLB123456789'
video_idNoId of a video previously uploaded to the seller's account
available_quantityNoNew stock quantity

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers real behavioral context: partial-update semantics ('Only the provided fields are sent') and a non-obvious business rule (title updates rejected once units are sold). It stops short of stating auth/permission requirements or failure/reversibility behavior, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose, then the sibling routing rule, then the gotcha, then the return shape, in four dense sentences with no filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by naming the returned fields (id, price, available_quantity, status). It covers partial-update semantics and the key business constraint; only permission/error-handling context is absent, which is a minor gap for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, including the title's no-sales constraint and the site-prefixed item_id format. The description adds little beyond restating field names, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) and resource (an existing listing owned by the authenticated seller) and enumerates the mutable fields: price, stock, title, video. It explicitly distinguishes itself from the sibling update_item_status, so an agent can route correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names when to use it ('price changes and stock adjustments') and when to use the alternative instead ('to change visibility (pause/activate/close) use update_item_status'). This is the when/when-not/alternative pattern at full strength.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_item_statusA

Change the visibility status of a listing: 'pause' temporarily hides it (reversible), 'activate' re-publishes a paused item, and 'close' finishes the listing. WARNING: closing is effectively irreversible for items that had sales — a closed item cannot be reactivated; a new listing would have to be created. Because of that, action='close' is refused unless confirm=true is passed explicitly. Always confirm with the user before closing. Paused items keep their history and can be reactivated at any time with 'activate'. Returns the item id and its new status.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to apply: 'pause' (hide, reversible), 'activate' (re-publish a paused item), 'close' (finish; irreversible when the item has sales)
confirmNoRequired for action='close': must be exactly true to confirm the irreversible closing. Ignored for pause/activate
item_idYesFull item id with site prefix, e.g. 'MLB123456789'

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it discloses irreversibility for items with sales, the confirm=true prerequisite, the reversibility of pause, and that a closed item requires a new listing. It even states the return payload (item id + new status), which is uncommon and useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The warning and confirm requirement are front-loaded and the sentences are dense with useful information, but the reversible/pause-and-reactivate point is stated twice (once in the action list, once in the follow-up sentence), a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation tool with no annotations and no output schema, the description covers the destructive path, the confirmation prerequisite, reversibility per action, and the return value. Nothing an agent needs to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 and the schema already documents each enum value and the confirm flag. The description still adds value by framing confirm as an explicit refusal gate and by tying each action to its reversibility consequence, though much of the enum wording is duplicated rather than extended.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('change the visibility status of a listing') and enumerates the three discrete actions with their effects, which no sibling tool (e.g. update_item, create_item) claims. An agent can immediately tell this is the state-transition tool rather than an edit tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives per-action selection guidance ('pause' hides, 'activate' re-publishes, 'close' finishes) plus an explicit gating rule ('close' is refused unless confirm=true) and a workflow instruction to confirm with the user first. There is no ambiguity about which action to pick for which intent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_pictureA

Upload a picture to the seller's Mercado Livre account and get back a picture id. Provide exactly ONE of: url (a public image URL that Meli will download) or file_path (a local image file, uploaded as multipart). Use the returned id in create_item's pictures when the images are local files; for images already hosted at a public URL, passing the URL directly to create_item also works. Returns the picture id, source URL and size variations.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic URL of the image; Meli downloads it
file_pathNoAbsolute path to a local image file (jpg/png); sent as multipart upload

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that url is downloaded by Meli, that file_path is sent as multipart, and what the response contains (picture id, source URL, size variations). It does not mention auth/permission requirements, file size limits, or rate limits, which are relevant for an upload endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then the input constraint, then the create_item integration, then the return shape. Every sentence carries new information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description explains the return value, and with only two fully documented parameters and no annotations there is nothing an agent needs to invoke this tool correctly that is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds the mutual-exclusivity rule ('exactly ONE of') that the schema does not encode via required/oneOf, plus clarifying that url is public and downloaded by Meli and file_path is a local multipart upload.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Upload a picture to the seller's Mercado Livre account') plus the concrete outcome ('get back a picture id'). It is clearly distinguishable from the sibling upload_video and from create_item, which it explicitly references.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: use the returned id in create_item's pictures for local files, but for already-hosted public URLs you can pass the URL straight to create_item. It also states the input constraint ('exactly ONE of url or file_path'), so an agent knows both when to call it and when to skip it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_videoA

Upload a product video from a local file to the seller's Mercado Livre account and get back a video_id. Pass that video_id to create_item or update_item to attach the video to a listing. Only local files are supported (mp4, mov, avi, mkv, webm). Meli enforces size/duration limits on product videos — very large or long files are rejected by the API, and in that case the API error is returned as-is so you can adjust the file and retry. Returns the video_id plus basic response info (id, max size/quality when present).

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesAbsolute path to a local video file (.mp4, .mov, .avi, .mkv or .webm)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does it well: it discloses that only local files are supported, lists accepted formats, warns that Meli enforces size/duration limits, and explains that API errors are surfaced as-is so the caller can adjust and retry. It stops short of stating auth/permission requirements or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four front-loaded sentences that lead with the action and the returned handle, then constraints. Slightly redundant in restating the accepted extensions already present in the schema, but otherwise every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter upload tool with no output schema and no annotations, the description covers purpose, downstream workflow, format constraints, failure behavior, and return contents (video_id plus id/size/quality info). Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single file_path parameter, so the schema already documents the absolute-path requirement and allowed extensions. The description's format list largely repeats the schema's own detail, adding little new meaning beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (upload) plus resource (product video) and target account (seller's Mercado Livre account), and names the concrete artifact produced (video_id). It also distinguishes itself from siblings like upload_picture by specifying video from a local file, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes the workflow: upload here, then pass the returned video_id to create_item or update_item to attach it to a listing. It does not state an explicit when-not-to-use or point to an image alternative, so it stops short of full routing guidance, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 42 tool updatesv1.0.0
    • First observedadd_item_to_promotion
    • First observedanswer_question
    • First observedconvert_currency
    • First observedcreate_catalog_listing
    • First observedcreate_item
    • First observedget_ads_campaign_metrics
    • First observedget_ads_campaigns
    • First observedget_catalog_product
    • First observedget_category
    • First observedget_category_attributes
    • First observedget_claim_detail
    • First observedget_claims
    • First observedget_fulfillment_stock
    • First observedget_item
    • First observedget_item_visits
    • First observedget_listing_prices
    • First observedget_listing_types
    • First observedget_mercado_shop
    • First observedget_my_items
    • First observedget_order_messages
    • First observedget_orders
    • First observedget_price_suggestion
    • First observedget_promotion_items
    • First observedget_promotions
    • First observedget_questions
    • First observedget_returns
    • First observedget_seller_reputation
    • First observedget_shipment
    • First observedget_shipment_label
    • First observedget_site_categories
    • First observedget_trends
    • First observedget_warehouses
    • First observedmanage_question_blacklist
    • First observedpredict_category
    • First observedsearch_catalog
    • First observedsearch_products
    • First observedsend_claim_message
    • First observedsend_message
    • First observedupdate_item
    • First observedupdate_item_status
    • First observedupload_picture
    • First observedupload_video

TDQS

A4.1/5.0

Scored across 42 tools

Disambiguation5/5

Despite the large set, the descriptions draw very clear boundaries between similar-sounding tools (e.g. search_products vs search_catalog, get_my_items vs get_item, send_message vs send_claim_message, get_promotions vs get_promotion_items). Each tool targets a distinct resource or action, and the detailed flow guidance further reduces misselection risk.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (get_*, create_*, update_*, send_*, search_*, upload_*, etc.). Compound names like add_item_to_promotion and manage_question_blacklist still fit the same convention, with no camelCase or mixed verb styles.

Tool Count2/5

42 tools is well beyond the threshold where a tool set starts to feel heavy for an agent, and it spans many subdomains (listings, ads, claims, catalog, fulfillment, etc.). While the breadth mirrors Mercado Livre's seller API, the count increases selection burden and context cost considerably.

Completeness4/5

The surface covers most core seller workflows: listings, orders, questions, messages, shipments, claims, returns, promotions, ads, catalog, reputation and visits. However, there are minor lifecycle gaps such as no single-order retrieval by id, no return-processing actions, no promotion removal, and no ads campaign write operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers