MercadoLibre Sellers MCP
It connects Claude to a MercadoLibre seller account via OAuth so you can monitor sales, listings, ads and competition — and, with confirmation, make write changes to the real store (this schema exposes 32 tools; the README advertises more, like the dashboard, workers, nichos, agenda and cerebro).
Account management: connect one or multiple stores (
ml_conectar,ml_cuentaswith a ⭐ default,ml_desconectar) and check the installed version/updates (ml_version).Sales & orders: list orders by date/status (
ml_ordenes), get a daily panel with revenue, top products, shipping methods and provinces (ml_panel_ventas), and period-over-period metrics consolidated across stores (ml_metricas,cuenta="todas"), plus shipment tracking (ml_envios).Listings: list and inspect publications with price, stock, photos and video (
ml_publicaciones,ml_publicacion), see visit traffic (ml_visitas), and audit them with a 🔴🟡🟢 quality score and concrete fixes (ml_auditar_publicaciones).Write actions (real store): update price/stock/pause (
ml_actualizar_publicacion), create or clone a listing (ml_crear_publicacion), answer buyer questions (ml_responder_pregunta), accept promotions (ml_aceptar_promocion), and upload/delete Clips (ml_subir_clip,ml_borrar_clip).Buyer interaction: read unanswered/answered questions (
ml_preguntas) and reply to them.Profitability: real ML fees for a price (
ml_comisiones), live Product Ads metrics with CTR/CPC/ACOS (ml_publicidad), and a peso-by-peso net margin calculator with max sustainable ACOS (ml_rentabilidad).Catalog & reputation: check buy-box status and the price needed to win it (
ml_precio_catalogo), and see reputation color, claims and delay rates (ml_reputacion).Promotions: list offered campaigns and eligible items (
ml_promociones).Competition & market research: search public listings (
ml_buscar), manage a watchlist of rivals/listings/keywords/trends (ml_vigilar), get only-what-changed reports (ml_novedades_competencia), and browse stored competitor history (ml_historial_competencia).Discovery: find winning products by category highlights or keyword analysis (
ml_descubrir_ganadores) and see site/category search trends (ml_tendencias).Clips: map your store's short videos and moderation status, with rejection reasons (
ml_clips).Safety: read-only tools are annotated
readOnlyHint: true; write tools are flagged and meant to be used only with explicit user confirmation (the README also notesML_SOLO_LECTURA=1disables writes).
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MercadoLibre Sellers MCP¿Cómo vienen las ventas de la semana?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP de MercadoLibre para vendedores — conectá tu tienda a Claude sin servidor
Palabras clave: MCP MercadoLibre · MercadoLibre Claude · conectar MercadoLibre a Claude · API MercadoLibre IA · Model Context Protocol MercadoLibre · vendedores MercadoLibre · automatizar MercadoLibre con IA
Conectá tu cuenta de MercadoLibre a Claude y manejá tu tienda en lenguaje natural:
"¿cómo vienen las ventas hoy?" → tablero con facturación, top productos, envíos y provincias
"¿qué preguntas tengo sin responder?" → te propone todas las respuestas y publica las que apruebes
"auditá mis publicaciones" → semáforo 🔴🟡🟢 con qué arreglar en cada una (fotos, título, video faltante, catálogo)
"armame las imágenes de esta publicación" → el set de 4 infografías profesionales con tus fotos reales
"hacé un video para Reels de este producto" → guion por escenas y video con tus datos verdaderos
"¿qué cambió en la competencia?" → solo las novedades: precios movidos, publicaciones nuevas, ventas estimadas del rival
30 herramientas · 18 skills · multicuenta con consolidado · sin servidor propio · tokens solo en tu computadora — hecho por Algoritmo Digital, consultora especializada en MercadoLibre.
Claude ──MCP──► este conector ──OAuth 2.0 + PKCE──► API oficial de MercadoLibre⭐ ¿Te sirve el conector? Dejanos una estrella — es gratis para vos y hace que más vendedores lo encuentren en GitHub y Google.
Por qué este y no otro
Este conector | Alternativas típicas | |
Onboarding | Guiado desde cero: decile "setup" a Claude y te deja operativo | Asumen que ya tenés los tokens de ML (conseguirlos es la parte difícil) o exigen una base Supabase |
Infraestructura | Ninguna: tokens en un archivo local (0600), refresh automático serializado | Backend propio, Supabase o VPS |
Idioma | Castellano, pensado para vendedores | Inglés técnico, pensado para developers |
Seguridad | PKCE, escrituras opcionales ( | Varía |
Pruebas | Suite E2E de 42 casos contra un MercadoLibre simulado, corriendo en CI en cada cambio | Rara vez |
Skills | 18 skills incluidas, del reporte diario al video del producto | No |
¿Tenés varias tiendas, querés rentabilidad real con tus costos, caja de MercadoPago y vigilancia de competidores gestionada? Eso es nuestro conector premium con CRM — este conector directo es gratis y para cualquier vendedor.
Related MCP server: Amazon Seller MCP
Guía de instalación (10 minutos, sin servidor, paso a paso)
No hace falta saber programar. Necesitás: una cuenta de vendedor de MercadoLibre, Claude Desktop y Node.js LTS instalados (ambos gratis, se instalan con "siguiente, siguiente").
⚡ Vía rápida A — Instalador automático (1 solo comando)
Abrí una terminal (Windows: Win + R → escribí cmd → Enter · Mac: app Terminal) y pegá:
npx -y github:kokesaurio/mercadolibre-sellers-mcp-algoritmo-Digital instalarEl instalador te guía para crear tu app gratis de MercadoLibre, te pide el App ID y el Secret, y configura Claude Desktop solo: respeta los conectores que ya tengas, hace backup de tu configuración anterior y te deja a un reinicio de usarlo. (Si ya tenés las credenciales: agregá --app-id TU_APP_ID --secret TU_SECRET.)
⚡ Vía rápida B — Que Claude lo instale por vos (Cowork / Claude Code)
¿Usás Claude Cowork o Claude Code? Pegale este prompt tal cual y listo:
Instalame el conector de MercadoLibre de Algoritmo Digital:
1. Si todavía no tengo App ID y Secret, guiame a crearlos gratis en
https://developers.mercadolibre.com.ar (app nueva, URI de redirect EXACTA
https://kokesaurio.github.io/mercadolibre-sellers-mcp-algoritmo-Digital/conectar.html
y scopes read, write y offline_access) y pedímelos.
2. Ejecutá: npx -y github:kokesaurio/mercadolibre-sellers-mcp-algoritmo-Digital instalar --app-id <MI_APP_ID> --secret <MI_SECRET>
3. Verificá que claude_desktop_config.json quedó con el conector "mercadolibre"
y avisame que reinicie Claude Desktop.
4. Después del reinicio te digo "conectá mi cuenta de MercadoLibre" y me guiás.
Guía: https://github.com/kokesaurio/mercadolibre-sellers-mcp-algoritmo-DigitalVía manual paso a paso (con imágenes)
¿Preferís hacerlo a mano o entender cada paso? Seguí la guía ilustrada:
Paso 1 — Creá tu aplicación gratis en MercadoLibre
Entrá a developers.mercadolibre.com.ar con tu cuenta de vendedor → Mis aplicaciones → Crear nueva aplicación y completá así:
URI de redirect (el campo que más errores causa — copiala exacta, sin barra final):
https://kokesaurio.github.io/mercadolibre-sellers-mcp-algoritmo-Digital/conectar.htmlScopes: marcá
read,writeyoffline_access— sin este último, la conexión se corta cada 6 horas.
Paso 2 — Anotá el App ID y el Secret Key
Al guardar, MercadoLibre te muestra los dos datos que van en Claude:
⚠️ El Secret Key es como una contraseña: no lo compartas ni lo publiques.
Paso 3 — Agregá el conector a Claude Desktop
Abrí el archivo de configuración:
Windows: apretá
Win + R, pegá%APPDATA%\Claude\claude_desktop_config.jsony Enter (se abre con el Bloc de notas).Mac: Claude Desktop → Settings → Developer → Edit Config.
Si el archivo está vacío, pegá este bloque completo (reemplazando tus dos datos del paso 2). Si ya tenés otros conectores, agregá solo la parte "mercadolibre":
{
"mcpServers": {
"mercadolibre": {
"command": "npx",
"args": ["-y", "github:kokesaurio/mercadolibre-sellers-mcp-algoritmo-Digital"],
"env": {
"ML_APP_ID": "TU_APP_ID",
"ML_APP_SECRET": "TU_SECRET_KEY"
}
}
}
}Guardá y reiniciá Claude Desktop (cerralo del todo y volvé a abrirlo).
¿Usás Claude Code? Un solo comando:
claude mcp add mercadolibre \
-e ML_APP_ID=TU_APP_ID -e ML_APP_SECRET=TU_SECRET_KEY \
-- npx -y github:kokesaurio/mercadolibre-sellers-mcp-algoritmo-DigitalPaso 4 — Conectá tu cuenta (una sola vez)
En un chat nuevo decile a Claude: "conectá mi cuenta de MercadoLibre" — o directamente "setup" para que la skill de puesta en marcha haga todo esto por vos.
Claude te da un link → abrilo e iniciá sesión con tu cuenta de vendedor.
Tocá Autorizar → la página te muestra un código.
Copiá el código y pegáselo a Claude. Listo: la sesión se renueva sola para siempre. ¿Más de una tienda? Repetí este paso con cada cuenta.
Si algo falla (los 5 errores clásicos)
Síntoma | Causa y solución |
El conector no aparece en Claude | Claude no se reinició del todo (en Windows, cerralo también desde la bandeja junto al reloj), o el JSON quedó mal (una coma de más). Validá el archivo en jsonlint.com |
"Faltan ML_APP_ID y ML_APP_SECRET" | Quedaron los textos |
MercadoLibre dice "invalid redirect_uri" | La URI en tu app del DevCenter no es idéntica a la del paso 1 (revisá mayúsculas y que no tenga barra final) |
"code inválido" al pegar el código | El código vence en minutos y es de un solo uso: repetí "conectá mi cuenta" y pegá el nuevo |
La conexión se corta a las horas | Faltó el scope |
¿Seguís trabado? Escribinos por WhatsApp y te ayudamos.
📋 El tablero del día
Todo lo que encuentra el equipo, en una página que se ve linda y se entiende de un vistazo: la frase del día ("En octubre facturaste $… y te quedan $… limpios. Hoy hay 2 cosas urgentes…"), lo que está funcionando y lo que necesita atención (urgente primero, cada cosa con la skill que la resuelve), el total de hoy en vivo con los gráficos de ventas y de publicidad día por día (30 días, con el detalle de cada día al pasar el mouse y vista de tabla), tus números, la planilla de los 19 trabajadores (tocás uno y ves su tabla), lo que viene, la evolución de 30 días y la bitácora filtrable.
Con los colores de MercadoLibre (franja amarilla, azul y tarjetas blancas). Decile a Claude "abrí el tablero" (ml_tablero). Es una página local, privada y sin servidor: funciona sin internet, se actualiza sola con cada control del equipo, tiene modo oscuro, se ve bien en el celular y la primera vez arranca con un tutorial guiado. Mirala con datos de ejemplo en panel/tablero.html.
👷 El equipo de trabajadores 24/7
Dieciocho trabajadores con nombre que vigilan solos y constantemente a tus seguidos — no hace falta que se lo pidas cada vez. Cada uno tiene su oficio, su frecuencia y sus skills a cargo: cuando encuentra algo, la alerta trae la skill exacta para resolverlo.
Trabajador | Vigila | Cada | Skills a cargo |
🕵️ Vera · Centinela de precios | precios de rivales; con tu publicación ( | 30 min | vigilancia-ml |
📦 Tomás · Contador de ventas | ventas estimadas del rival (ritmo/día y $/mes), quiebres de stock y pausas = tus oportunidades | 60 min | panel-ventas-ml |
🏆 Martina · Vigía de búsquedas | top 50 de tus keywords: líder, precio líder y tu puesto | 60 min | imagenes-ml |
🎯 Bruno · Cazador de rivales nuevos | vendedores que aparecen por primera vez en tus búsquedas | 3 h | revisar-publicaciones-aldi |
🩺 Lucía · Auditora de publicaciones | cada 15 días audita TODAS tus publicaciones y te dice cuáles quedaron desactualizadas: preguntas que te repiten y no están en la descripción, días sin tocar, precio congelado o fuera de mercado, sin stock, fotos chicas, sin marca/modelo o garantía — y qué mejoró o empeoró desde la auditoría anterior | 15 días | mejorar-publicaciones-ml · visualizador-publicaciones-ml · copiar-publicaciones-ml · faq-descripcion-ml |
🗓️ Clara · Agenda comercial | el cronograma de promociones de MercadoLibre y las fechas cruciales (Hot Sale, CyberMonday, Black Friday, Día de la Madre/Padre/Infancias, Navidad…). Por cada una te pregunta si querés participar y te recuerda antes del cierre hasta que decidas — nunca se inscribe sola. Cuando arranca tu evento, te arma la actualización de Mi página | 1 día | agenda-comercial-ml · mi-pagina-ml |
💰 Ramiro · Analista de rentabilidad | la ganancia neta real de cada producto que vendiste (comisión real + publicidad por unidad + impuestos + envío + costo); avisa cuando uno te hace perder plata, cuando cae el margen y qué productos vendidos no tienen costo cargado | 1 día | calculadora-ml · cerebro-ml |
📣 Ana · Gestora de anuncios | tus campañas de Product Ads: gasto, ventas por ads y ACOS; avisa la campaña que gasta sin vender, el ACOS que se dispara y —cruzando con Ramiro— el anuncio cuyo ACOS supera lo que aguanta su margen | 1 día | publicidad-ml |
🚚 Leo · Coordinador de logística | qué despachar y hasta cuándo, envíos demorados, no entregados o devueltos, y si sube tu tasa de despachos con demora (lo que más castiga la reputación) | 2 h | logistica-ml |
🧾 Carmen · Contadora | tus números del mes: facturación, comisiones de ML, publicidad, impuestos, mercadería y neto, contra el mes anterior; el día 1 te da el cierre; si faltan costos, avisa que es parcial | 1 día | contabilidad-ml · reporte-ventas-ml |
📦 Nico · Encargado de stock | cuántos días de stock te quedan de cada producto según lo que vendés por día: avisa lo que se corta esta semana, lo que quedó sin stock vendiendo y el stock parado | 6 h | stock-ml |
💬 Paula · Atención al comprador | preguntas sin responder (y las que llevan más de 2 h) y mensajes de postventa sin leer | 30 min | responder-preguntas-ml |
🛡️ Iván · Reclamos y mediaciones | reclamos nuevos con su plazo, los que vencen en 24 h, los que pasan a mediación y los que se cierran | 1 h | reclamos-ml |
⭐ Valen · Reputación y opiniones | tu color, MercadoLíder y las métricas que lo mueven, y las opiniones negativas nuevas de tus más vendidos | 1 día | reputacion-ml |
🏷️ Gabi · Catálogo | el momento en que perdés el catálogo (buy box), con qué precio lo recuperás y si a ese precio ganás plata | 6 h | competencia-ml |
🚫 Sole · Moderaciones | publicaciones pausadas, en revisión o penalizadas por ML (y portada de baja calidad), con el motivo en castellano | 6 h | moderaciones-ml |
🔄 Fede · Proveedores | precio y stock de tus proveedores (su publicación en ML o la página de su tienda): te dice a cuánto vender con tu recargo y cuándo pausar porque se quedaron sin stock | 6 h | proveedores-ml |
📈 Sofía · Radar de tendencias | keywords que entran, salen o suben en tendencias | 12 h | descubrir-ganadores-ml · video-publicaciones-ml · clips-ml · ugc-ml |
🧭 Emma · Exploradora de nichos | cada semana analiza tus nichos candidatos con la API oficial (rotación, si se venden hoy, oportunidad o monopolio, techo de demanda, tendencia/estacional/evergreen) y arma el ranking de oportunidades; toma tus búsquedas seguidas y las que le asignes, y sin ninguna explora las tendencias del sitio. Avisa cuando un nicho pasa a 🟢 o deja de serlo | 7 días | nichos-ml |
🎩 El jefe de equipo
Le das un objetivo, él reparte el trabajo entre los 19. "Quiero vender más este mes", "¿por qué gano poco?", "preparame para el CyberMonday", "mejorá mi reputación": el jefe (ml_jefe, skill jefe-de-equipo-ml) elige qué trabajadores tienen que ver, los pone a trabajar en ese momento, junta lo que encontraron y te da el plan en orden (urgentes primero), cada paso con su responsable y la skill que lo resuelve. Lo que toca tu tienda, siempre con tu OK.
Ponele el nombre que quieras. Decile a Claude "el jefe se llama Don Ramón" (y si querés, un emoji: "que sea 👑"). Desde ahí aparece con ese nombre en los planes, en la lista del equipo y en el tablero, y le hablás directo: "Don Ramón, ¿cómo vendo más este mes?".
Dales tareas hablando: "Vera, vigilá MLA123 contra mi MLA456 y avisame si baja más de 2%" · "Martina, decime en qué puesto estoy para 'termo 1 litro'" · "¿qué encontró el equipo?" · "Lucía, auditá la tienda ahora" · "Clara, ¿qué fechas vienen?". Sin tareas propias, cada uno vigila tus seguidos de ml_vigilar de su tipo.
Cuándo trabajan:
Mientras Claude está abierto: se despiertan solos (cero configuración).
24/7 con la PC prendida: un comando y arrancan solos al iniciar sesión (sin permisos de administrador):
npx -y github:kokesaurio/mercadolibre-sellers-mcp-algoritmo-Digital trabajadores instalarEstado:
... trabajadores estado· Sacarlo:... trabajadores desinstalar. Nunca corren dos veces a la vez (candado con latido) y la sesión de ML se renueva con candado entre procesos, así Claude y el servicio no se pisan el token.Opcional:
ML_TRABAJADORES_WEBHOOK=https://...en el config manda cada alerta a tu CRM, n8n o WhatsApp.
🗄️ Base de datos incluida, cero instalación (ideal Windows): el equipo guarda cada medición y cada alerta en SQLite, que ya viene adentro de Node.js — no hay servidor, ni Docker, ni compilar nada. Es un solo archivo, equipo.db, en %USERPROFILE%\.meli-sellers-mcp (Windows) o ~/.meli-sellers-mcp.
Guarda 400 días de historial: "historial de MLA123" muestra día por día el precio del rival vs el tuyo, cuánto vendió cada día, tu puesto en una búsqueda o el top de tendencias, con mínimos, máximos y variación.
Claude y el servicio 24/7 la usan a la vez sin trabarse (modo WAL, probado con 3 procesos escribiendo en paralelo).
"estado de la base" te dice cuánto ocupa y hace backup en un toque. Si querés mirarla por dentro:
winget install -e --id DBBrowserForSQLite.DBBrowserForSQLite.¿Node viejo? Necesita Node 22.5+ (
winget install OpenJS.NodeJS.LTSen Windows). Con uno anterior el equipo sigue funcionando igual, solo sin historial.
📊 Resultados, no solo alertas: "mostrame los resultados del equipo" trae una tabla por trabajador con todo lo que sabe — precio de cada rival vs el tuyo, ritmo de ventas y facturación estimada por mes del rival, tu puesto en cada búsqueda, rivales nuevos de la semana y el top de tendencias.
📁 Todo en tu Google Drive, actualizado solo ("conectá el equipo a Drive"):
Planilla de Google en vivo (24/7, sin crear apps en Google Cloud): pegás este script en Extensiones → Apps Script de una planilla nueva, con la clave secreta que te da Claude, y la implementás como App web. Queda una pestaña Alertas, una pestaña Historial (60 días de mediciones de la base) y una pestaña por trabajador que se reescribe en cada control.
Carpeta de Google Drive para escritorio: se detecta sola y se crea MercadoLibre - Equipo de trabajadores con Alertas.csv, Historial.csv (90 días), un CSV por trabajador y un resumen.
Seguro: la planilla rechaza envíos sin tu clave, y ningún texto de un rival (ej. un título con
=IMPORTXML(...)) se guarda como fórmula.
Las 32 skills — tu equipo de trabajo
El conector trae 32 skills listas con guía de uso de cada una. Se suben una vez en Claude (Configuración → Capacidades → Skills → Cargar skill) y convierten las herramientas en flujos completos: vos pedís en una frase, la skill sabe el procedimiento.
🚀 Empezá por acá: subí setup-ml y decile a Claude "setup" — conecta tus cuentas, arma la vigilancia inicial y te entrega tu primera foto del negocio con las 3 acciones más urgentes.
📊 Operación diaria
Skill | Pedila así |
"¿cómo venimos hoy?" — facturación de hoy y del mes, top productos, envíos FULL/Flex/Colecta y provincias | |
"reporte de ventas" — el resumen de 4 líneas apto WhatsApp | |
"respondamos las preguntas" — todas las respuestas propuestas juntas, publica solo lo que apruebes |
🔍 Optimización de publicaciones
Skill | Pedila así |
"auditá mis publicaciones" — semáforo 🔴🟡🟢 con la acción concreta por ítem, las peores primero. "Mejorá esta publicación" — el mejorador: medidas en las fotos, video, resumen en los 5 primeros renglones → medidas → características → qué viene, y FAQ de 20 con las preguntas de 90 días | |
"me preguntan siempre lo mismo" — las preguntas repetidas de tus compradores pasan a la descripción como preguntas frecuentes, con tus respuestas reales (Lucía te avisa cuáles faltan) | |
"¿qué fechas vienen?" — el cronograma de ML y las fechas cruciales; te pregunta si participás en cada una y arma la participación validada por margen | |
"actualizá Mi página" — banner del evento y tus productos destacados, aplicado en tu navegador con tu OK (y sacarlo cuando termina) | |
"abrí el tablero" — el parte del día visual: lo que funciona, lo que necesita atención y tus números de un vistazo | |
"quiero vender más este mes" — le das un objetivo y reparte el trabajo entre los 11 trabajadores, con el plan en orden | |
"¿qué tengo que despachar?" — despachos del día con horario, demorados, devoluciones y cuidado de la reputación | |
"¿cuánto gané este mes?" — el resultado neto del mes y el cierre mensual para vos o tu contador | |
"¿qué tengo que reponer?" — días de stock por producto, qué pedir y cuánto antes del quiebre | |
"me hicieron un reclamo" — responder bien y antes del plazo, mediaciones incluidas | |
"¿cómo está mi reputación?" — qué mueve tu color y qué hacer con cada opinión negativa | |
"me pausaron una publicación" — el motivo en castellano y cómo corregirla para reactivarla | |
"vigilá a mi proveedor" — precio y stock del proveedor atados a tu precio y tu stock | |
"armame el visualizador" — tablero interactivo con foto y semáforo: tocás cuáles mejorar y te genera el pedido | |
"copiá esta publicación a la otra tienda" — clona entre tus cuentas; lo ajeno se redacta, nunca se clona | |
"pasá esta publicación por Aldi" — segunda opinión con Aldi 2.0, el GPT revisor de Algoritmo Digital |
🎨 Kit creativo: imágenes y videos
Skill | Pedila así |
"armame las imágenes de MLA..." — el set fijo de 4 infografías con tus fotos reales (abajo hay ejemplos) | |
"hacé un video para Reels de MLA..." — guion por escenas y producción con HyperFrames desde datos reales | |
"¿qué clips tengo?" — mapa de Clips de la tienda, estado de moderación con motivos, y subida por API validando los requisitos de ML | |
"hacé un UGC de este producto" — estilo usuario real con avatar de IA siempre y castellano latino neutro |
🥊 Competencia y crecimiento
Skill | Pedila así |
"buscame un nicho" · "dame el ranking de oportunidades" — con la API oficial (sin Nubimetrics): rotación, ¿se vende hoy o vendió en el pasado?, oportunidad o monopolio, techo de demanda, tendencia/estacional/evergreen y si cierran los números con tu costo | |
"¿qué conviene vender?" — más vendidos oficiales por categoría, tendencias y análisis de mercado por keyword, validado por margen | |
"¿qué encontró el equipo?" — los 19 trabajadores 24/7 y su jefe: darles tareas, leer sus alertas y despachar cada una a su skill | |
"¿qué cambió en la competencia?" — solo novedades: precios movidos, publicaciones nuevas, ventas estimadas del rival, keywords en alza | |
"¿estoy ganando el catálogo?" — semáforo de precios y buy box, con recomendaciones validadas por margen | |
"revisemos la publicidad" — Product Ads con regla ACOS vs margen y promociones separando tu aporte del de ML | |
"acordate que el costo es..." — la memoria del negocio: costos, impuestos, medidas y notas guardados UNA vez, usados por todas las herramientas. Todas las skills ofrecen guardar lo que aprenden acá | |
"¿cuánto gano con este producto?" — el desglose peso por peso: comisión real + publicidad en vivo + impuestos + costo → ganancia neta, margen y ACOS máximo | |
"setup" — la puesta en marcha guiada de todo lo anterior |
Rutina sugerida: diaria = panel + preguntas (5 min) · semanal = vigilancia → visualizador → mejoras → publicidad · al publicar algo nuevo = copiar → imágenes → video → revisión con Aldi.
El set de imágenes de venta (así salen)
La skill imagenes-ml genera el set fijo de 4 — beneficio (foto 2), características (foto 4), medidas con cotas (foto 5) y qué incluye (foto 6) — en 1200×1200, con las fotos reales de tu publicación incrustadas y cumpliendo las reglas de imágenes de MercadoLibre (sin datos de contacto, sin "OFERTA", legible en miniatura):
Foto 2 — Beneficio | Foto 5 — Medidas |
|
|
Las plantillas son SVG paramétricos y el generador es un comando: python3 plantillas/generar.py --plantilla medidas --datos datos.json --foto tu-foto.png --salida foto-5-medidas.png. El método completo (orden de publicación foto 2→10, solo datos confirmados, revisión pieza por pieza) está grabado en la skill.
Herramientas (43)
Herramienta | Qué hace |
ml_conectar / ml_cuentas / ml_desconectar | Vincular varias tiendas, elegir la predeterminada (⭐) y desconectar |
ml_ordenes | Ventas con filtros de fecha y estado |
ml_panel_ventas | El tablero completo: facturación de hoy y del mes, top productos, métodos de envío y en qué provincias se concentra la venta |
ml_metricas | Facturación, unidades y ticket vs período anterior; con |
ml_envios | Estado y tracking del envío de una orden |
ml_publicaciones / ml_publicacion | Tus publicaciones y su detalle (incluye fotos y si tiene video) |
ml_auditar_publicaciones | Semáforo 🔴🟡🟢 de TUS publicaciones con cómo mejorar cada una: título, fotos, descripción, envío, stock, video faltante, tipo y catálogo — las peores primero |
ml_faq_descripcion ✏️ | Las preguntas de tus compradores → preguntas frecuentes en la descripción, con TUS respuestas reales: agrupa las repetidas, descarta stock/precio/envíos y cualquier dato de contacto, no repite lo que ya está y actualiza el bloque sin duplicar. Primero muestra la propuesta; aplica con tu OK (una o todas las que marcó Lucía) |
ml_visitas | Tráfico de una publicación |
ml_actualizar_publicacion ✏️ | Cambiar precio, stock o pausar/activar |
ml_mejorar_publicacion 🛠️ | El mejorador de publicaciones, multicuenta (encuentra solo de qué tienda es cada publicación; sin item_id barre todas tus tiendas y marca el mismo producto repetido entre ellas): te muestra las fotos para ver si tienen las medidas, chequea el video y que la descripción tenga el resumen en los 5 primeros renglones → medidas → características principales → qué viene en la caja, y audita las preguntas de los últimos 90 días en un FAQ de 20 con tus respuestas |
ml_aplicar_mejora ✏️ | Reescribe la descripción con esa estructura y el FAQ de 20 al final (vista previa primero, con tu OK la escribe y guarda un respaldo de la anterior). Con |
ml_crear_publicacion ✏️ | Crear una publicación nueva, o clonar una existente ( |
ml_preguntas / ml_responder_pregunta ✏️ | Ver y responder preguntas de compradores |
ml_cerebro 🧠 | La memoria del negocio: guarda costos, impuestos, envío, medidas y notas por producto o del negocio entero (local, en tu máquina) — y las demás herramientas lo usan solas. El costo va por SKU: lo comparten todas las publicaciones del mismo producto |
ml_publicidad | Product Ads EN VIVO: inversión, impresiones, clics, CPC, ACOS y ventas por ads de una publicación o de todas las campañas |
ml_rentabilidad | La calculadora real: precio − comisión real de ML − publicidad por unidad (en vivo) − impuestos − envío − costo = ganancia neta, margen y ACOS máximo que aguanta. Usa el 🧠 cerebro: lo que le enseñaste no te lo vuelve a preguntar, y lo nuevo lo aprende solo |
ml_comisiones | Cuánto cobra ML por vender a un precio dado |
ml_precio_catalogo | Si ganás la buy box del catálogo y qué precio la gana |
ml_buscar | Espiar competencia y precios de mercado |
ml_reputacion | Color, reclamos, demoras y cancelaciones |
ml_promociones / ml_aceptar_promocion ✏️ | Promociones ofrecidas y aceptación por ítem |
ml_agenda 🗓️ | La agenda comercial: fechas cruciales del año (calculadas solas cada año, por país) + el cronograma de campañas de MercadoLibre con cierre de inscripción y candidatas. Guarda tu decisión de participar o no (Clara te sigue preguntando hasta que decidas), fechas propias, y arma el kit para actualizar Mi página (banner y destacados del evento) |
ml_tablero 📋 | El tablero del día: arma (y con |
ml_jefe 🎩 | El jefe de equipo: le das un objetivo en una frase y reparte el trabajo entre los trabajadores que corresponden, los hace trabajar ya y te devuelve el plan en orden con responsable y skill por paso. Con |
ml_numeros 🧾 | Los números del mes de Carmen: facturación, comisiones reales de ML, publicidad, impuestos, mercadería, envíos → resultado neto y margen, contra el mes anterior (marca "parcial" si faltan costos) |
ml_despachos 🚚 | La lista de Leo: qué despachar y hasta cuándo, demorados, devueltos/no entregados, por tipo de envío, y tu % de despachos con demora |
ml_nichos 🧭 | Descubrir nichos con la API oficial: rotación de cada publicación, si se vende hoy o vendió en el pasado, oportunidad o monopolio, techo de demanda y cuánto vende un nuevo, tendencia/estacional/evergreen y, con tu costo, si cierran los números. Con varias búsquedas, el ranking de oportunidades (0-100) |
ml_tendencias | Qué está buscando la gente en ML |
ml_descubrir_ganadores | Artículos ganadores con datos de la API: ranking oficial de más vendidos por categoría (highlights) + análisis de mercado por keyword (competencia, precios, dominancia, señal de oportunidad) |
ml_vigilar / ml_novedades_competencia | Lista de rivales 🥊, productos seguidos 📦, búsquedas y trends — y el control que reporta solo lo que cambió: precios, publicaciones nuevas, ventas estimadas del rival, cambios de líder y keywords en alza |
ml_trabajadores 👷 | El equipo 24/7 (19 trabajadores; a Emma se le asigna |
ml_historial_competencia | La base de datos de competencia: evolución de precios, ventas y líderes de cada objetivo vigilado — se alimenta sola con cada control |
ml_clips | Los Clips (videos verticales) de tus publicaciones y cuáles sirven: mapa de la tienda + estado de moderación por clip (publicado/en revisión/rechazado con el motivo y cómo corregirlo) |
ml_subir_clip ✏️ / ml_borrar_clip ✏️ | Subir un clip por API (valida formato, duración y peso antes) y borrar los rechazados para resubir corregidos |
ml_version | Versión instalada, chequeo de actualizaciones y cómo actualizar |
✏️ = escribe en tu tienda real. Claude siempre pide confirmación antes, y con ML_SOLO_LECTURA=1 esas 9 herramientas directamente no existen.
Varias tiendas
Corré ml_conectar una vez por cada cuenta. Todas las herramientas aceptan cuenta (el user_id) para elegir tienda; sin indicarla se usa la predeterminada (⭐, se cambia con ml_cuentas), y si hay varias sin predeterminada el conector pide elegir en vez de adivinar — nunca opera en la tienda equivocada. "¿Cómo vienen las ventas de todas las tiendas?" usa el consolidado.
Actualizaciones
El conector se chequea solo contra GitHub (una vez por día, sin enviar ningún dato): cuando publicamos una mejora, la primera respuesta de tu sesión te avisa que hay versión nueva. También podés preguntarle a Claude "¿qué versión del conector tengo?" (ml_version). Para actualizar:
npx -y github:kokesaurio/mercadolibre-sellers-mcp-algoritmo-Digital actualizar…y reiniciá Claude: al arrancar baja la última versión automáticamente. Historial de cambios en el CHANGELOG y en los releases.
Seguridad
OAuth 2.0 con PKCE; los tokens viven en
~/.meli-sellers-mcp/cuentas.jsoncon permisos 0600, en tu máquina y en ningún otro lado.El refresh token de ML es de un solo uso: el conector serializa los refresh (single-flight) para que dos llamadas concurrentes no revoquen tu cuenta.
La página del código de autorización es estática (GitHub Pages) y no envía nada a ningún servidor.
Cero telemetría, cero base de datos externa.
¿Encontraste una vulnerabilidad? Leé la política de seguridad — reporte privado, respuesta en 72 hs.
Desarrollo y comunidad
npm install
npm test # 42 pruebas E2E contra un MercadoLibre simulado
npm run dev # levanta el simulado en :9990 (conectar con code CODE-OK)Cada push corre la suite completa en GitHub Actions. ¿Querés sumar algo? Leé cómo contribuir — regla de oro: todo cambio deja npm test en verde y cada funcionalidad nueva trae su caso E2E. ¿Encontraste un error o te falta una herramienta? Abrí un issue.
Comunidad
📲 Sumate al grupo de WhatsApp de vendedores — novedades del conector, tips de MercadoLibre y ayuda entre vendedores que ya lo usan.
¿Querés más?
Algoritmo Digital hace consultoría, gestión de cuentas y desarrollo a medida sobre MercadoLibre hace más de 15 años. Escribinos: WhatsApp
Licencia
MIT — Algoritmo Digital.
Available Tools
32 toolsml_aceptar_promocionAceptar promociónA
ACTIVA una publicación dentro de una promoción de MercadoLibre, al precio indicado. Visible para compradores: usar solo con confirmación explícita por ítem.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | Tipo de la promoción (DEAL, DOD, etc.) | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | Yes | ||
| precio_final | No | deal_price; si falta, ML usa el sugerido | |
| promocion_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=false already declares a write, and the description adds genuinely useful behavioral context beyond that: the change is buyer-visible ('Visible para compradores') and tied to a specific price, signalling real-world impact. It does not cover reversibility or failure behavior, but the visibility warning is meaningful additional disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action verb and impact, then the constraint. No filler. Slightly terse – it leaves no room to explain account selection or outcomes – but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation that makes a price-promotion publicly visible, the description covers purpose, price and confirmation but omits failure behavior, reversibility, and how cuenta affects multi-account setups. With no output schema and 60% parameter coverage, a few more specifics would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, so the schema documents tipo, cuenta and precio_final while item_id and promocion_id are bare. The description adds only the 'al precio indicado' reference, loosely mapping to precio_final, and nothing beyond the schema for the undocumented parameters. Baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (ACTIVA) plus resource (una publicación dentro de una promoción) and the price context. An agent can distinguish this action tool from the listing sibling ml_promociones without opening the schema. It stops short of explicitly naming that sibling as the read counterpart, so it is strong but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a real usage condition – 'usar solo con confirmación explícita por ítem' – which effectively gates invocation and functions as a when-to-use guard rail. It does not, however, name alternatives or state when-not beyond the confirmation requirement. Clear context without explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_actualizar_publicacionActualizar publicaciónA
MODIFICA una publicación real: precio, stock o estado (pausar/activar). Usar solo con confirmación explícita del usuario.
| Name | Required | Description | Default |
|---|---|---|---|
| stock | No | ||
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| estado | No | ||
| precio | No | ||
| item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false; the description adds that the operation modifies a real publication and requires explicit user confirmation. It does not disclose whether changes are reversible, what side effects occur, or permission requirements, so behavioral detail remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with the verb front-loaded in caps and the usage condition appended. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param mutation tool with low schema coverage and no output schema, the description is too sparse: it does not explain item_id, the cuenta parameter, or the return/effect of the change. It covers purpose and confirmation but leaves key invocation details missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description carries more weight. It names precio, stock, and estado as modifiable fields and clarifies estado via pausar/activar, but omits item_id (required) and cuenta, leaving two parameters without added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (MODIFICA) and resource (publicación real) and enumerates the modifiable fields. It does not name any sibling tool to distinguish from ml_crear_publicacion or ml_publicaciones, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use only with explicit user confirmation, which is a clear usage condition. It does not mention alternatives or when-not-to-use beyond that confirmation gate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_auditar_publicacionesAuditar mis publicacionesARead-only
Lista las publicaciones del vendedor con un semáforo de calidad y cómo mejorar cada una: título corto o con relleno, pocas fotos, sin descripción, sin envío gratis, stock crítico, catálogo perdido, publicación pausada. Devuelve las peores primero con la acción concreta. Ideal para "¿qué publicaciones tengo que mejorar?".
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| estado | No | default active | |
| limite | No | Cuántas auditar (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already signals a safe read; the description goes further by disclosing ordering ('devuelve las peores primero') and what the audit flags (short/padded title, few photos, no description, critical stock, lost catalog, paused listing). It does not disclose pagination or result limits behavior, but the output-shaping context is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability, then the flagged conditions, then the routing cue. The condition list is long but each item earns its place by telling the agent what the audit surfaces. Minor redundancy between the semáforo phrase and the condition list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 returns — and it does (worst-first ordering plus concrete remediation action per listing). With all 3 params documented and safety covered by annotations, only per-field return detail is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter (cuenta, estado, limite) is documented with defaults. The description adds no parameter-level syntax or constraints, so the baseline 3 applies since the schema carries the full load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (auditar/listar) plus resource (publicaciones) plus a distinguishing angle: a quality 'semáforo' with remediation per listing. An agent can tell this apart from ml_publicaciones (plain list) and ml_publicacion (single-listing detail) 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing line 'Ideal para "¿qué publicaciones tengo que mejorar?"' gives an explicit triggering context. However, it never names an alternative (ml_publicaciones, ml_actualizar_publicacion) or states when-not to use it, so routing is contextual rather than prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_borrar_clipBorrar un clipA
Borra un clip de una publicación (por ejemplo uno rechazado, para subir la versión corregida). Funciona en cualquier estado de moderación.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | Yes | ||
| clip_uuid | Yes | El id del clip (sale de ml_clips) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=false already signals a mutating operation. The description usefully adds that the clip can be deleted regardless of moderation state, but says nothing about permanence/irreversibility, whether the clip is recoverable, or permission requirements — meaningful gaps for a delete tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero padding, with the action stated first. Efficient and front-loaded, though slightly terse given the destructive nature of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete with a write annotation and no output schema, the description covers scope and use case, but omits consequences of the deletion and the partially-undocumented item_id parameter, leaving an agent with avoidable uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: cuenta and clip_uuid are documented in the schema, but item_id is not. The description adds no parameter-level detail (syntax, ids, relationship between item_id and clip_uuid), so it neither compensates for the gap nor goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (borra) and resource (un clip de una publicación), plus a concrete use case. It is distinguishable from ml_subir_clip and ml_clips by the deletion semantics, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear when-to-use context ('uno rechazado, para subir la versión corregida') and a scope note ('funciona en cualquier estado de moderación'). No explicit alternatives or exclusion conditions are given, so it falls 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.
ml_buscarBuscar en MercadoLibreBRead-only
Busca publicaciones públicas en MercadoLibre (para espiar competencia y precios de mercado).
| Name | Required | Description | Default |
|---|---|---|---|
| sitio | No | ||
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| limite | No | ||
| consulta | Yes | Qué buscar, ej "termo acero 1 litro" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description usefully adds that it searches only 'públicas' listings, but says nothing about pagination behavior, how 'limite' bounds results, whether a site must be specified, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste; the verb and resource come first and the parenthetical earns its place by signaling intent. It is perhaps slightly too terse for a 4-parameter tool, but structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters (2 undocumented), no output schema, and only a readOnly annotation, the description is too thin. It does not explain the shape of results, whether 'sitio' defaults to a specific country, or how 'limite' interacts with result pages — context an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'consulta' and 'cuenta' are documented in the schema, while 'sitio' and 'limite' carry no descriptions anywhere. The description adds no parameter meaning at all, so it fails to compensate for the half of the schema that is undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Busca) and resource (publicaciones públicas en MercadoLibre), plus the intended purpose (competitor and price reconnaissance). However, it does not distinguish itself from similarly competition-oriented siblings such as ml_novedades_competencia, ml_historial_competencia, or ml_descubrir_ganadores, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(para espiar competencia y precios de mercado)' implies a use context, so usage is suggested rather than absent. But there is no explicit when-to-use rule, no exclusions, and no routing to alternatives among the many competitor-tracking siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_clipsClips de las publicacionesARead-only
Consulta los Clips (videos verticales cortos) de tus publicaciones por la API y dice cuáles sirven: con item_id muestra cada clip y su estado de moderación (publicado ✅, en revisión ⏳ 24-48 hs, rechazado ❌ con el motivo y cómo corregirlo); sin item_id recorre tus publicaciones activas y arma el mapa de video de la tienda (clips + video clásico) con cuáles priorizar.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | No | Una publicación puntual; sin indicarlo, mapa de toda la tienda (hasta 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering the read-only nature, the description adds substantial behavioral context: moderation states (published, under review for 24-48 hours, rejected with reason and correction guidance) and the store-wide video map behavior when item_id is omitted. This goes well beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded and organized around the item_id condition. It uses one long sentence with parenthetical details and emoji status markers, which is efficient though slightly heavy for a single sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with two optional parameters and no output schema, the description gives enough detail about what is returned in both modes, including moderation outcomes and store video map prioritization. No critical invocation context appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning for item_id by explaining that including it returns per-clip moderation status, while omitting it returns a store-wide video map, which supplements the schema's 'una publicación puntual; sin indicarlo, mapa de toda la tienda (hasta 10)'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Consulta los Clips ... de tus publicaciones' and explains the two behavioral modes based on item_id. It is clear what the tool does, though it does not explicitly name sibling tools like ml_subir_clip or ml_borrar_clip to differentiate the read-only consultation role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to pass item_id versus omit it: with item_id it shows each clip and moderation status; without it, it scans active publications and builds a store video map. It does not, however, explicitly state when to choose this tool over alternatives such as ml_publicacion or ml_publicaciones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_comisionesComisiones y costos de ventaARead-only
Cuánto cobra MercadoLibre por vender a un precio dado (comisión por tipo de publicación), para calcular márgenes.
| Name | Required | Description | Default |
|---|---|---|---|
| sitio | No | ||
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| precio | Yes | ||
| categoria | No | ID de categoría, ej MLA1055 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already signals a safe read/compute operation, so the description need not restate safety. It adds that the output is a commission broken down by listing type, which is useful context, but it says nothing about whether all costs (shipping, fees) are included or what the result shape is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with the core purpose stated first and the intended use appended cheaply. No filler, every clause carries meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should describe the return more fully; it names the returned quantity (commission by listing type) but omits the format and whether other costs are included. For a 4-parameter compute tool this is adequate but leaves the return underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the schema documents 'cuenta' and 'categoria' but leaves 'sitio' and the required 'precio' undocumented. The description hints that precio is the sale price and that a listing-type dimension affects the result, but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it tells you how much MercadoLibre charges in commission for selling at a given price. It even scopes the result (commission per listing type) and the intent (to compute margins). It's clear, though it doesn't explicitly differentiate itself from near-neighbors like ml_rentabilidad.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'para calcular márgenes' implies the usage context, so the agent can infer this is for margin/profit calculations. However, there is no explicit when-to-use/when-not guidance and no mention of alternatives such as ml_rentabilidad or ml_precio_catalogo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_conectarConectar cuenta de MercadoLibreARead-only
Vincula una cuenta de MercadoLibre. Sin argumentos devuelve la URL para autorizar en el navegador; con code (el código que muestra la página al autorizar) completa la conexión. Requiere ML_APP_ID y ML_APP_SECRET configurados.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Código que devolvió MercadoLibre al autorizar | |
| sitio | No | País: MLA (Argentina, default), MLB, MLM, MLC, MCO, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behavior beyond the annotations (two distinct modes, the auth-code round-trip, the required env vars), but it describes a state-changing operation ("Vincula una cuenta", "completa la conexión") while the annotation declares readOnlyHint=true. Linking an account persists credentials and mutates the connector's state, so the readOnly annotation is contradicted. Per the rubric, a contradiction caps this dimension at 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose, then the branch behavior, then the prerequisite. Every sentence carries information and there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an OAuth tool with full schema coverage and no output schema, the description covers both invocation modes and the configuration prerequisite, which is close to what an agent needs to call it correctly. It stops short of describing the returned URL shape or failure modes, and it leaves the readOnly annotation unflagged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 real semantics the schema lacks: it explains that omitting `code` returns an authorization URL and that supplying it completes the connection, which clarifies the optional-parameter interplay. The `sitio` parameter is not mentioned, but the schema documents it sufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Vincula una cuenta de MercadoLibre") and immediately explains the two operating modes, so the agent knows exactly what the tool accomplishes. It never names the natural counterpart (ml_desconectar) or any other sibling, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance for both branches: call with no arguments to get the browser authorization URL, call with `code` to finish the connection. It also states the prerequisite (ML_APP_ID and ML_APP_SECRET must be configured), but it does not point to alternative tools for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_crear_publicacionCrear publicaciónA
CREA una publicación real en la tienda. Con copiar_de clona una publicación existente (título, categoría, atributos, fotos, descripción) y permite pisar título/precio/stock — ideal para duplicar entre tus propias cuentas. Usar solo con confirmación explícita del usuario.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | listing_type_id, ej gold_special (Clásica) | |
| stock | No | ||
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| precio | No | ||
| titulo | No | Título (≤60 caracteres). Obligatorio si no hay copiar_de | |
| imagenes | No | URLs de fotos propias | |
| categoria | No | ID de categoría ML (obligatorio sin copiar_de) | |
| condicion | No | ||
| copiar_de | No | item_id a clonar (ej MLA123...). Solo copiar fotos/textos si son propios | |
| descripcion | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false; the description adds substantial context beyond that: the operation creates a REAL listing, clone mode copies title/category/attributes/photos/description (with an IP caution about only copying own content), and overriding title/price/stock is permitted. A user-confirmation requirement is stated. It does not describe failure modes or what the response returns, but the mutation semantics are well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the verb and the high-stakes nature of the operation, then the clone mechanic, then the safety constraint. No filler; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation with no output schema, the description covers the two operation modes (fresh create vs clone-and-override) and the confirmation requirement. It leaves the required-parameter logic partly to the schema descriptions, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, so several params (tipo, cuenta, condicion, descripcion) rely on the schema alone. The description nonetheless adds real meaning: it explains what copiar_de clones and that titulo/precio/stock can override the cloned values, and the schema itself already flags which fields are 'Obligatorio si no hay copiar_de'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with an emphatic specific verb+resource ('CREA una publicación real en la tienda'), making clear this is a genuine write to the listing store, not a draft. The clone mode is spelled out precisely ('clona una publicación existente... permite pisar título/precio/stock'), so an agent can tell it apart from the sibling ml_actualizar_publicacion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit usage constraint ('Usar solo con confirmación explícita del usuario') and a positive use case ('ideal para duplicar entre tus propias cuentas'). It does not name an alternative tool for the case where the user wants to modify an existing listing, which would have made routing unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_cuentasCuentas conectadasBRead-only
Lista las cuentas de MercadoLibre conectadas (soporta varias tiendas). Con predeterminada fija cuál usar cuando no se indica cuenta.
| Name | Required | Description | Default |
|---|---|---|---|
| predeterminada | No | user_id de la cuenta a fijar como predeterminada |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, but the description says 'Con predeterminada fija cuál usar cuando no se indica cuenta' and the parameter is a user_id 'a fijar como predeterminada', implying a persistent write operation. This directly contradicts the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words: the first establishes the listing scope, the second explains the optional parameter. It is front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool this is mostly adequate, but there is no output schema and the description does not describe what a returned 'cuenta' contains or whether listing is paginated. The dual read/write ambiguity also leaves context incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 contextual meaning that predeterminada sets which account to use when no account is specified. This goes beyond the schema's plain 'user_id de la cuenta a fijar como predeterminada'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Lista las cuentas de MercadoLibre conectadas' and adds multi-store context. It does not explicitly compare itself to sibling tools like ml_conectar or ml_desconectar, but the listing purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool instead of alternatives such as ml_conectar or ml_desconectar. The description only explains the effect of the optional parameter, not tool selection or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_desconectarDesconectar cuentaA
Elimina los tokens guardados de una cuenta (deja de estar conectada en esta computadora).
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | Yes | user_id de la cuenta a desconectar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=false already signals a mutating operation, and the description usefully adds what is destroyed (saved tokens) and the scope of the effect (connection on this computer only). It does not say whether reconnection requires re-authentication or whether the change is reversible, but it adds real context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action first and the consequence in parentheses; nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description gives the essential effect and its scope. Minor gap: it leaves ambiguous whether the token revocation is purely local or also server-side, which matters for an agent reasoning about re-authentication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required parameter (cuenta / user_id), so the schema carries the load. The description adds no further meaning about the parameter, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: deleting an account's stored tokens, with the observable effect (account is no longer connected on this machine). It is clear enough to distinguish from a generic delete, though it never names the counterpart sibling ml_conectar explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical implies the intended scenario (you want the account to stop being connected here), but there is no explicit when-to-use or when-not-to-use statement and no pointer to the complementary ml_conectar tool. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_descubrir_ganadoresDescubrir artículos ganadoresARead-only
Encuentra artículos ganadores dentro de lo que permite la API: por CATEGORÍA usa el ranking oficial de más vendidos (highlights) + las tendencias de esa categoría; por BÚSQUEDA analiza el mercado de una keyword (competencia, precios, envío gratis, vendedores que dominan y ventas visibles). Indicar categoria (id tipo MLA1234) o busqueda (keyword).
| Name | Required | Description | Default |
|---|---|---|---|
| sitio | No | ||
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| busqueda | No | Keyword a analizar, ej "termo 1 litro" | |
| categoria | No | ID de categoría, ej MLA1055 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the bar is lower, yet the description still adds substantive behavioral context: it discloses the data sources and the exact dimensions analyzed (competition, prices, free shipping, dominant sellers, visible sales). It omits rate limits, result volume and pagination, so it is not a full 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then two parallel clauses for the two modes, then the input instruction. Dense but every clause carries information; only slight compression loss from packing the keyword-analysis dimensions into one long sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analytical tool with no output schema, the description covers both operating modes and what each returns conceptually. It leaves the sitio parameter and the multi-account context (only glancingly referenced via ml_cuentas) implicit, so an agent may not know how to scope the query when several accounts are connected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 75% schema coverage the schema already documents cuenta, busqueda and categoria, so a 3 would be defensible. The description earns above baseline by explaining the routing semantics that the schema does not: categoria activates the official ranking+trends path while busqueda activates the keyword market-analysis path, i.e. they are alternative drivers. The undocumented 'sitio' parameter is never mentioned in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (encuentra/descubrir) and resource (artículos ganadores) and even splits the behavior into two concrete modes: category mode (official best-seller highlights + trends) and search mode (market analysis of a keyword). This is far more than a restatement of the title. It falls short of a 5 because it does not name or differentiate itself from likely-overlapping siblings such as ml_tendencias, ml_novedades_competencia or ml_buscar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing line ('Indicar categoria ... o busqueda') tells the agent which input selects which mode, which is genuine usage guidance. However, it never states when to choose this tool over alternatives like ml_tendencias or ml_buscar, nor any prerequisite (e.g. that a connected account is needed). Usage is implied rather than contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_enviosEnvío de una ordenBRead-only
Estado del envío de una orden: tracking, estado y fechas.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| orden_id | Yes | ID de la orden |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. The description adds the useful disclosure of what the response contains (tracking, status and dates), which matters since there is no output schema, but it says nothing about permissions, the multi-account 'cuenta' context, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding. It is efficient, though the extreme brevity leaves useful routing information out rather than being genuinely complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with full schema coverage the bar is modest, and without an output schema the description's mention of the returned fields partially compensates. Still, it omits the relationship to ml_ordenes and the meaning of the optional 'cuenta' parameter, leaving gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description's tracking/estado/fechas list refers to outputs, not inputs, so it adds no parameter meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (el envío de una orden) and enumerates what it exposes (tracking, estado y fechas), so an agent knows this reads shipment status. It does not, however, distinguish itself from the sibling ml_ordenes, which could plausibly also touch order data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no indication of when to prefer ml_ordenes over this tool, and no mention that an orden_id is required to call it. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_historial_competenciaHistorial de competenciaARead-only
La base de datos de competencia: evolución en el tiempo de un objetivo vigilado — precio y ventas de una publicación rival, líder y precio líder de una búsqueda, o cantidad de publicaciones y precio mediana de un vendedor. Se alimenta sola con cada control de ml_novedades_competencia.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | El objetivo tal como figura en la lista de seguimiento (item_id, nickname o keyword) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the read-only safety profile. Beyond that, the description adds genuinely useful behavioral context: the store is automatically populated by each ml_novedades_competencia check, so the agent knows it is a passively-maintained derived dataset rather than a user-written one, and knows its freshness depends on those checks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that front-load the core identity ('La base de datos de competencia') before the enumeration and the provenance note. No filler, though the three-variant list is slightly dense and the trailing sentence is a bit of an aside.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing what comes back, and it does list the tracked metrics and the time-evolution nature, so the agent can anticipate the payload. It does not specify granularity, date-range handling, or pagination, but for a read-only tool with a rich annotation and full schema coverage it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'ref' parameter is fully documented there (including the item_id/nickname/keyword forms). The description repeats the notion of a tracked objective but adds no syntax, format, or matching rules beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — a competition history database tracking the evolution over time of a watched objective — and enumerates three concrete variants (rival publication price/sales, search leader price, seller publication count/median price). It also names the sibling ml_novedades_competencia as its data source, which helps distinguishing it from that tool. It lacks an explicit action verb ('consultar'/'obtener'), but the noun-phrase scope is nonetheless unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note that the database 'se alimenta sola con cada control de ml_novedades_competencia' implicitly tells the agent that ml_novedades_competencia drives updates while this tool serves the historical view. However, there is no explicit 'use this when / do not use this when' statement and no comparison against siblings like ml_tendencias or ml_descubrir_ganadores, leaving selection partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_metricasMétricas de ventasARead-only
Facturación, unidades y ticket promedio de un período, comparado contra el período anterior. Ideal para "¿cómo vienen las ventas?". Con cuenta="todas" consolida todas las tiendas conectadas.
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | Tamaño del período en días (default 7) | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description adds real behavioral value: it discloses that results are compared against the previous period and that cuenta="todas" consolidates all connected stores. Return format/pagination is not addressed, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with the returned metrics front-loaded and the usage hint and special parameter value last. No filler, though the quotation-style usage example is slightly informal for a tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, two-optional-parameter tool with no output schema, the description covers what comes back, the comparison baseline, and the multi-store consolidation case. It is adequate; only the absence of sibling differentiation leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), and the description adds meaning beyond the schema by documenting the special value cuenta="todas", which the schema description (a user_id when multiple accounts are connected) does not mention. The dias parameter is left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resources returned (facturación, unidades, ticket promedio) plus the period-over-period comparison, so an agent knows exactly what this produces. It doesn't explicitly contrast with close siblings like ml_panel_ventas or ml_rentabilidad, but the content is far more specific than a name restatement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Ideal para ¿cómo vienen las ventas?" gives an implied usage scenario, and the cuenta="todas" note clarifies one consolidation mode. However, with ~29 siblings including ml_panel_ventas and ml_rentabilidad, no alternative is named and no when-not-to-use condition is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_novedades_competenciaNovedades de competencia y tendenciasARead-only
Recorre toda la lista de seguimiento y reporta SOLO lo que cambió desde la última corrida: precios que subieron/bajaron, publicaciones nuevas o dadas de baja, ventas estimadas de competidores, cambios de líder en búsquedas y keywords que entraron/salieron de tendencias. Ideal como rutina semanal.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint=true, the description discloses a meaningful behavioral trait: it is a differential report that returns only changes since the prior run. It also enumerates the categories of change (price moves, listings added/removed, estimated sales, search-leader shifts, keyword trend entries/exits), giving the agent real context about what a run produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The delta-only constraint is front-loaded in the first clause, followed by the enumerated report contents and a short usage note. Dense but every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerating what the report contains, which is exactly what the agent needs to judge fit. Combined with readOnlyHint and a single optional param, the definition 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter (cuenta) with 100% schema description coverage, so the schema already documents it fully. The description adds no additional meaning about the parameter, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (recorre la lista de seguimiento y reporta cambios) and defines its scope precisely as a delta report — 'SOLO lo que cambió desde la última corrida'. An agent can distinguish it from a full-history sibling, though it never names ml_historial_competencia or ml_tendencias explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers a cadence cue — 'Ideal como rutina semanal' — which implies the intended usage pattern. However, it names no alternative tool and states no when-not condition, leaving the agent to infer routing versus ml_historial_competencia or ml_tendencias.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_ordenesÓrdenes de ventaARead-only
Lista las ventas (órdenes) del vendedor, de la más reciente a la más vieja. Filtrable por fecha y estado.
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | Últimos N días (default 7) | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| estado | No | paid, cancelled, etc. | |
| limite | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description usefully adds the descending-chronological ordering, but omits pagination/limit behavior and what the returned records contain or how they are scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the core purpose and sort order front-loaded before the filter note. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter read tool with no output schema, the description is thin: it says nothing about the shape/count of returned orders, the limit behavior, or the account parameter's role, leaving gaps an agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are already documented inline (dias, cuenta, estado). The description only echoes that filtering by date and status exists and adds no format, default, or syntax detail beyond the schema — and 'limite' is undocumented in both.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Lista') and resource ('ventas (órdenes) del vendedor') with an explicit sort order, so an agent knows it returns a seller's sales list. It does not, however, distinguish itself from the ambiguous sibling ml_panel_ventas, which likely overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Filtrable por fecha y estado' implies when the filters apply, but there is no explicit when-to-use guidance, no mention of prerequisites (e.g., needing a connected account), and no routing to a sibling alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_panel_ventasPanel de ventasARead-only
El tablero del vendedor en una llamada: facturación de HOY y del MES, productos más vendidos del mes, reparto por método de envío (FULL/Flex/Colecta...) y dónde se concentran las ventas por provincia. Ideal para "¿cómo venimos hoy?" o el panel del mes.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the operation is a safe read; beyond that the description discloses the aggregation scopes it reports (today vs. month, per-shipping-method split, per-province concentration), which is real behavioral context an agent can use. It stops short of stating auth requirements, account-switching behavior, or whether results are cached/real-time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the substance of the dashboard before the use-case framing, and no filler. Slightly dense but every clause carries distinct content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only a readOnlyHint, the description carries the burden of describing return content and it does so thoroughly (billing, top products, shipping breakdown, geography). What is missing is differentiation from sibling analytics tools and any note on the optional account-selection flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional 'cuenta' parameter is fully documented in the schema (100% coverage), including a pointer to ml_cuentas for discovering user_ids. The description adds no further meaning to that parameter, so the schema does all the work and the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates the concrete contents of the dashboard (facturación de HOY y del MES, productos más vendidos, reparto por método de envío, concentración por provincia), so an agent knows exactly what this tool surfaces. It is specific about the resource but never contrasts itself with likely-overlapping siblings such as ml_metricas or ml_rentabilidad, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context with the quoted prompts '¿cómo venimos hoy?' and 'el panel del mes', which tells the agent when this tool is appropriate. However, it offers no exclusions and does not point to alternatives (e.g. ml_metricas) for more granular or time-series analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_precio_catalogoPrecio para ganar el catálogoBRead-only
Para publicaciones de catálogo: si estás ganando la buy box y qué precio necesitás para ganarla.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, lowering the burden. The description usefully adds what the response conceptually contains (buy box status, target price), but says nothing about auth/account selection behavior or that 'cuenta' may be needed when multiple accounts are connected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence that front-loads the applicable scope ('publicaciones de catálogo') before the returned value. Efficient, though quite terse for a tool whose required parameter is undocumented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only query with no output schema, the description adequately conveys the return semantics (buy box status + required price). Missing detail is mostly about the item_id parameter and multi-account context rather than the tool's core purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'item_id' has no description at all, and the tool description never explains what a valid catalog item_id looks like. The description does not compensate for the gap, and the 'cuenta' hint lives only in the schema, not the prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (catalog listings / buy box) and precisely what the tool reports: whether you're winning the buy box and the price needed to win it. It is distinguishable from siblings like ml_publicacion or ml_promociones, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Spanish phrasing 'Para publicaciones de catálogo' implicitly scopes usage to catalog listings, so an agent can infer when it applies. However, there is no explicit when-to-use/when-not, no prerequisite (e.g. valid item_id must be a catalog item), and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_preguntasPreguntas de compradoresCRead-only
Preguntas de compradores; por defecto las pendientes de respuesta.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| estado | No | UNANSWERED (default) o ANSWERED | |
| limite | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes that this is a safe, non-mutating read, so the description would need to add context to earn credit. Instead, its only behavioral claim ('por defecto las pendientes de respuesta') merely restates the schema default of estado=UNANSWERED, and it omits pagination/limit behavior and output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with the resource front-loaded and no wasted words. Brevity is appropriate in isolation, though it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with no output schema, the description should at least hint at return contents, ordering, or limit semantics. None of that is present, and the relationship to ml_responder_pregunta is unaddressed, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds no meaning beyond what the schema documents. Its note about the pending default duplicates the estado description, while 'cuenta' and 'limite' (the latter entirely undocumented in the schema) are not clarified at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Preguntas de compradores') and a default scope (pending/unanswered), so the agent can infer it retrieves buyer questions. However, it supplies no explicit verb and does not distinguish itself from the closely related sibling ml_responder_pregunta (which answers questions), leaving purpose only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says nothing about when to use this tool versus alternatives. The most obvious alternative, ml_responder_pregunta, is never mentioned, and no conditions or exclusions are given to help the agent choose between reading questions and answering them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_promocionesPromociones ofrecidasBRead-only
Campañas y promociones que MercadoLibre le ofrece al vendedor; con promocion_id y tipo, lista las publicaciones elegibles con su descuento.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | No | DEAL, DOD, MARKETPLACE_CAMPAIGN, etc. (viene en la lista) | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| promocion_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes the safe-read profile, so the description's added value is its hint about content (eligible listings plus their discount). It does not disclose auth requirements, whether all promotions are returned when called with no args, or any rate/pagination behavior, leaving meaningful behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence that front-loads what the tool returns and follows with the operating hint. No padding or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no output schema, the description gives the shape of the return (eligible listings with discount) but omits what happens with zero arguments (all promotions?), the role of cuenta in multi-account setups, and how the result relates to accepting a promotion. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: tipo and cuenta are documented in the schema, while promocion_id is bare. The description explains that promocion_id and tipo act together to select eligible listings, which adds real semantics for those two, but says nothing about cuenta and does not fill the promocion_id schema gap directly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (campañas y promociones que MercadoLibre le ofrece al vendedor) and the read action (lista las publicaciones elegibles con su descuento). An agent can tell this is a read/list tool for promotions, but it never names a sibling to distinguish itself from ml_aceptar_promocion, which operates on the same domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'con promocion_id y tipo, lista las publicaciones elegibles' implies how and when to call it (to enumerate eligible listings for a given promotion/type), but there is no explicit when-to-use, no exclusions, and no reference to alternatives like ml_aceptar_promocion. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_publicacionDetalle de una publicaciónBRead-only
Detalle completo de una publicación: precio, stock, ventas, tipo, garantía, envío, link.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | Yes | ID del ítem, ej: MLA123456789 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe read, so the description does not need to restate safety. It does add value by enumerating the returned fields (precio, stock, ventas, garantía, envío, link), which matters because no output schema exists. It omits any note on whether item_id is resolved per marketplace (e.g., MLA prefix) or error behavior for missing items.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the field list is informative rather than padding. Slightly dense with a seven-item enumeration, but every element 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-item fetch with two fully documented parameters, the definition covers the essentials, and listing the returned fields partially compensates for the absent output schema. The main remaining gap is routing guidance against ml_publicaciones, which is a usage rather than a completeness issue.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: item_id is documented with the MLA123456789 example and cuenta is documented with a pointer to ml_cuentas. The description adds no parameter-level meaning beyond this, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a clear resource (una publicación, singular) with the content it returns (precio, stock, ventas, tipo, garantía, envío, link), so an agent can tell this is a single-item detail fetch. It does not explicitly contrast itself with the sibling ml_publicaciones (plural listing), leaving the singular/plural distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use statement, no preconditions, and no mention of alternatives such as ml_publicaciones or ml_actualizar_publicacion. Usage is only implied by the singular resource name, which is minimal guidance for a tool sitting in a cluster of listing-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_publicacionesMis publicacionesBRead-only
Lista las publicaciones del vendedor con precio, stock y estado.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| estado | No | active, paused, closed | |
| limite | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read operation, so the description only needs to add context. It clarifies scope ('del vendedor') and the returned fields, but says nothing about pagination via 'limite', multi-account handling via 'cuenta', or result ordering/cap. Useful but thin for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and returned data stated immediately; no filler or redundancy. Its brevity is appropriate but contributes to the under-specification noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema and annotations covering safety, a single sentence is close to adequate. Still, it omits how 'limite' bounds results and how 'cuenta' behaves with multiple connected accounts, leaving real gaps an agent would hit at call time.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, above the 50% threshold, so the schema already documents 'cuenta' and 'estado'. The description mentions 'estado' only as a returned field, not as a filter, and never explains 'limite'. It adds little syntactic meaning beyond the schema, so the baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lista) and resource (publicaciones del vendedor) plus the fields returned (precio, stock, estado), so an agent knows exactly what this produces. However, it gives no differentiation from the singular sibling ml_publicacion, leaving the agent to infer the list-vs-single distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no named alternatives despite many overlapping siblings (ml_publicacion, ml_buscar, ml_auditar_publicaciones). The phrase 'del vendedor' implicitly scopes it to the seller's own listings, but nothing tells the agent when to prefer this over ml_buscar or a single-publication lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_publicidadMétricas de Product Ads en vivoARead-only
Métricas de Product Ads al momento de la consulta: con item_id, el detalle del anuncio de esa publicación (inversión, impresiones, clics, CTR, CPC, ACOS, unidades y facturación por ads); sin item_id, las campañas del anunciante con su estado, presupuesto y resultados. Parámetro dias para el período (1 = hoy, default 30).
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | Período hacia atrás en días (1 = hoy). Default 30 | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already establishes this is a safe read, so the description only needs to add context. 'Al momento de la consulta' usefully signals the data is live/current rather than cached, which is genuine added value. It does not address rate limits, auth scope, or aggregation latency, so it stays at a solid 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the two modes are front-loaded in a single dense sentence, followed by a short sentence on the dias parameter. Nothing is padded, though the first sentence is quite long and packs several concepts together.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description proactively enumerates the returned fields for both modes (inversión, impresiones, clics, CTR, CPC, ACOS, unidades, facturación; estado, presupuesto, resultados), which is exactly what fills the output gap. The only omission is any mention of the cuenta parameter, which the schema already covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 67%, and item_id has no schema description at all. The description fills that gap by explaining exactly what item_id does (listing ad detail vs. advertiser campaigns), and restates dias semantics (1 = hoy, default 30). cuenta is left to the schema, but the description compensates well for the undisclosed parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (métricas) and resource (Product Ads / publicidad) and clarifies the two operating modes: with item_id returns the ad detail for a listing, without it returns the advertiser's campaigns. This is far beyond a tautology and lets an agent predict behavior. It does not explicitly differentiate itself from nearby metrics siblings like ml_metricas or ml_rentabilidad, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by explaining that item_id switches between listing-level ad detail and advertiser-level campaigns, so an agent can infer which mode to request. However it never states when to prefer this tool over general metrics tools (ml_metricas, ml_rentabilidad) or any prerequisites/exclusions. Usage is implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_rentabilidadCalculadora de rentabilidad realARead-only
El desglose real peso por peso de un producto: precio de venta MENOS comisión de MercadoLibre (tarifa real del tipo de publicación) MENOS publicidad por unidad (gasto de Product Ads en vivo del período) MENOS impuestos MENOS costo de envío MENOS costo del producto = ganancia neta y margen. Pide lo que falta (costo e impuestos NUNCA se inventan) y dice hasta qué ACOS aguanta el producto.
| Name | Required | Description | Default |
|---|---|---|---|
| costo | No | Costo del producto (lo que te sale a vos) — SIEMPRE preguntarlo al usuario | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| precio | No | Precio de venta; si hay item_id se toma el de la publicación | |
| item_id | No | Si se indica, trae precio, tipo de publicación y gasto de ads reales | |
| dias_ads | No | Período para promediar la publicidad (default 30) | |
| costo_envio | No | Lo que paga el vendedor de envío por unidad (si ofrece envío gratis). Default 0 | |
| impuestos_pct | No | % de impuestos sobre el precio (IIBB, monotributo/IVA según su situación) — SIEMPRE preguntarlo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true, so the description carries most of the behavioral burden and does it well: it specifies that it prompts for missing values and that cost and taxes are NEVER invented (no silent defaults), and that it reports the ACOS the product can withstand. It does not describe output formatting or failure modes, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the value (the peso-by-peso breakdown) and is dense but purposeful; the second sentence on missing-input handling and ACOS is useful. Slightly heavy for two sentences but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculator with no output schema, the description adequately describes what is produced (net profit, margin, break-even ACOS) and how missing inputs are handled. A brief note on the response shape would complete it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the 7 parameters is already documented. The description reinforces which factors feed the formula and the no-invention rule for costo/impuestos_pct, but adds little syntax or defaulting detail beyond what the schema states, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (compute real profitability per unit) and enumerates the exact formula: sale price minus ML commission, ads, taxes, shipping, and cost. An agent can distinguish it from ml_comisiones or ml_publicidad, which only supply a single input to this calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context — it pulls real listing fees and live Product Ads spend for a period, and asks the user for missing inputs, implying it is the tool for full-margin analysis. However, it names no sibling alternatives or explicit when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_reputacionReputación del vendedorCRead-only
Color de reputación, ventas y tasas de reclamos, demoras y cancelaciones.
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
La anotación readOnlyHint=true ya comunica que es una operación de solo lectura. La descripción añade valor al enumerar las métricas de reputación que devuelve, pero no describe formato de salida, paginación ni posibles limitaciones, por lo que la transparencia conductual es básica.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Es una frase muy breve y sin relleno, con los elementos principales al inicio. No obstante, su estructura de fragmento nominal, sin verbo, sacrifica algo de claridad y podría ganar precisión sin perder concisión.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Para una herramienta simple de solo lectura con un parámetro opcional y sin esquema de salida, la descripción ofrece las métricas principales que se obtienen. Sin embargo, no cubre cuándo elegirla frente a herramientas hermanas ni detalla el formato de retorno, dejando lagunas contextuales.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
El esquema tiene un único parámetro opcional con cobertura de descripción del 100%, por lo que la semántica de cuenta ya está documentada allí. La descripción de la herramienta no añade información adicional sobre ese parámetro, lo que corresponde a la base de 3 cuando el esquema asume el detalle.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
La descripción enumera los datos que devuelve (color de reputación, ventas, tasas de reclamos, demoras y cancelaciones), pero no usa un verbo como 'obtener' ni define explícitamente el recurso. No diferencia esta herramienta de otras similares como ml_metricas o ml_panel_ventas, por lo que el propósito se infiere pero no queda plenamente claro.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indica cuándo usar esta herramienta frente a alternativas como ml_metricas, ml_panel_ventas o ml_ordenes. Tampoco menciona condiciones previas, como la necesidad de tener una cuenta de Mercado Libre conectada, aunque el esquema sí lo sugiere para el parámetro cuenta.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_responder_preguntaResponder preguntaA
PUBLICA una respuesta real y visible a una pregunta de comprador. Irreversible: usar solo con el texto confirmado por el usuario.
| Name | Required | Description | Default |
|---|---|---|---|
| texto | Yes | Respuesta a publicar (sin datos de contacto: ML lo penaliza) | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| pregunta_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false. The description adds two meaningful traits beyond that: the answer is publicly visible ('real y visible') and the action is irreversible, a critical warning for a write tool. This is solid added value, though it omits any auth/account requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste. The action and scope are front-loaded, followed immediately by the irreversibility warning and the confirmation precondition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-param write tool with no output schema and only a readOnlyHint annotation, the description covers the essential profile: what it does, that it is public, and that it is irreversible. Minor gaps remain around permissions and account selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; 'texto' and 'cuenta' are documented in the schema while 'pregunta_id' is not. The description only loosely echoes the 'texto confirmado' concept and adds no format or sourcing guidance, so it does not compensate for the gap. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (PUBLICA) and resource (respuesta a una pregunta de comprador) with clear scope ('real y visible'). An agent can distinguish it from the read-side sibling ml_preguntas, though the description never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a real usage constraint: 'usar solo con el texto confirmado por el usuario', which implicitly tells the agent to require confirmation before calling. However, it names no alternative or when-not condition and does not point to ml_preguntas for reading/reviewing questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_subir_clipSubir un clipA
Sube un Clip (video vertical corto) a una publicación por la API. Requisitos de MercadoLibre: MP4/MOV/MPEG/AVI, vertical, 10 a 61 segundos, mínimo 360x640, máximo 280 MB, publicación activa. La moderación tarda 24-48 hs (verificar después con ml_clips).
| Name | Required | Description | Default |
|---|---|---|---|
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| archivo | Yes | Ruta local del video (ej /ruta/MLA123-clip.mp4) | |
| item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The single annotation (readOnlyHint=false) only confirms this is a write. The description adds genuinely useful behavior beyond that: uploads enter asynchronous moderation taking 24-48 hours, so there is no immediate published result and a later ml_clips check is required. It does not cover auth requirements, error modes, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences: the action first, then the validation rules and the moderation caveat. No filler, and the most important constraint (asynchronous 24-48h moderation) is placed last where it will be read before invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter write tool with no output schema and only one annotation, the description covers the essential operational facts: acceptance criteria, required active state, and the deferred verification step. What remains thin is the return behavior (clip identifier/status) and failure handling, though the ml_clips pointer partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%. The description supplies domain constraints for `archivo` (accepted containers, vertical orientation, duration window, resolution floor, size ceiling) that the schema's bare "Ruta local del video" does not, and the "publicación activa" requirement implicitly qualifies `item_id`. Only the optional `cuenta` parameter gets no mention in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource in the user's domain ("Sube un Clip ... a una publicación") and even defines what a clip is ("video vertical corto"), which removes ambiguity against the many publication-related siblings. It also names ml_clips as the follow-up tool, so the agent can place it precisely in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the concrete preconditions for successful use (active publicación plus MP4/MOV/MPEG/AVI, vertical, 10-61s, min 360x640, max 280 MB) and tells the agent to verify moderation later with ml_clips. There is no explicit "when not to use" or alternative upload path, but the prerequisites are unusually complete for a tool of this type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_tendenciasTendencias de búsquedaCRead-only
Las búsquedas más populares del sitio o de una categoría: qué está queriendo comprar la gente.
| Name | Required | Description | Default |
|---|---|---|---|
| sitio | No | ||
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| categoria | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered, but the description adds nothing beyond scope: no data source, timeframe, refresh cadence, or result size. For a trends/analytics read with zero annotation depth beyond read-only, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the resource front-loaded and no filler. It is appropriately sized for a simple read, though the brevity leaves gaps rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no required parameters keep the bar low, and the description conveys what the tool returns conceptually. Missing timeframe, result limits, and the meaning of the 'cuenta' parameter leave it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only 'cuenta' is documented), so the description carries meaningful weight: 'del sitio o de una categoría' maps directly to sitio and categoria and explains their effect on results. However it says nothing about 'cuenta', the undocumented parameter, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('las búsquedas más populares') and its two scopes (site or category), plus the business meaning (what people want to buy). It is clear and distinguishable from most siblings, but never names a sibling it should not be confused with (e.g. ml_buscar, ml_descubrir_ganadores).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as ml_buscar or ml_novedades_competencia. Usage must be inferred purely from the one-line purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_versionVersión del conectorARead-only
Muestra la versión instalada del conector, chequea si hay una actualización publicada y explica cómo actualizar.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds useful behavioral context by stating that it checks for a published update and explains how to update, which goes beyond the annotation. It does not mention authentication or rate limits, but those are minor for a zero-parameter version-check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that covers the tool's three behaviors without any redundant or filler text. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter, read-only tool with no output schema, the description fully communicates what the tool does and what information it returns (installed version, update availability, update instructions). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no input parameters, so the empty schema is complete and the description does not need to explain parameter semantics. The baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it shows the installed connector version, checks for a published update, and explains how to update. This is clear and distinct from most siblings, though it does not explicitly differentiate itself from update-related sibling tools such as ml_actualizar_publicacion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is useful (when the user needs version or update information), but it does not explicitly state when to use it versus alternatives or provide any exclusions. Usage context 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.
ml_vigilarLista de seguimientoBRead-only
Administra la lista de seguimiento de competencia y tendencias (se guarda local). Tipos: vendedor (nickname o id de un competidor), publicacion (item_id ajeno o propio), busqueda (keyword para vigilar su top 10) y tendencias (sitio o categoría). Acciones: listar, agregar, quitar.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Nickname/id del vendedor, item_id, keyword, o categoría para tendencias | |
| nota | No | Recordatorio de por qué se vigila | |
| tipo | No | ||
| accion | Yes | Qué hacer | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, yet the description explicitly advertises 'agregar' and 'quitar' actions that mutate a locally stored watchlist ('se guarda local'). The description contradicts the read-only annotation, which is the most serious defect here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load the resource, then the types, then the actions, with no filler. The structure is easy to parse even though it packs a lot of enum detail into one paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a watchlist manager with no output schema, the description covers the type taxonomy, the action set and the storage locality, which is enough for correct invocation. The missing piece is the read/write safety profile, which it actively misstates rather than omits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 80%, so the baseline is 3, but the description adds genuine meaning by tying each 'tipo' value to what 'ref' must contain (nickname/id of a seller, item_id, keyword whose top 10 will be watched, site/category). This mapping goes beyond the collapsed schema description of 'ref'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Administra la lista de seguimiento de competencia y tendencias') and enumerates both the supported types and actions, so an agent understands exactly what domain this covers. It does not, however, differentiate itself from related siblings such as ml_tendencias, ml_novedades_competencia or ml_historial_competencia.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool manages but gives no when-to-use or when-not guidance, and never mentions the closely related siblings (ml_tendencias, ml_novedades_competencia). The agent must infer that 'vigilar' means persisting a target for later monitoring rather than fetching results now.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ml_visitasVisitas de publicacionesARead-only
Visitas de una publicación en una ventana de días, para medir tráfico y conversión.
| Name | Required | Description | Default |
|---|---|---|---|
| dias | No | default 30 | |
| cuenta | No | user_id de la cuenta de ML si hay varias conectadas (ver ml_cuentas) | |
| item_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, confirming a safe read operation. The description adds the temporal window concept and purpose, but it does not disclose rate limits, authentication needs, or return format details beyond what the name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the resource and purpose with no wasted words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only metric query, the description covers the basic what and why. But it omits alternative tools (e.g., ml_metricas), does not explain the return shape (no output schema exists), and gives no guidance on the cuenta parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description indirectly clarifies that item_id refers to a publication and 'ventana de días' maps to the dias parameter. However, it says nothing about the cuenta parameter, and schema coverage is only 67%, leaving one parameter undocumented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (visits of a publication) and a window of days, making the tool's purpose clear. However, it does not differentiate from similar metric-oriented siblings like ml_metricas or ml_publicacion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'para medir tráfico y conversión' implies the tool's intended use case, but there is no explicit guidance on when to choose it over alternatives or when not to use it.
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.
32 tool updates
v1.12.0- First observed
ml_aceptar_promocion - First observed
ml_actualizar_publicacion - First observed
ml_auditar_publicaciones - First observed
ml_borrar_clip - First observed
ml_buscar - First observed
ml_clips - First observed
ml_comisiones - First observed
ml_conectar - First observed
ml_crear_publicacion - First observed
ml_cuentas - First observed
ml_desconectar - First observed
ml_descubrir_ganadores - First observed
ml_envios - First observed
ml_historial_competencia - First observed
ml_metricas - First observed
ml_novedades_competencia - First observed
ml_ordenes - First observed
ml_panel_ventas - First observed
ml_precio_catalogo - First observed
ml_preguntas - First observed
ml_promociones - First observed
ml_publicacion - First observed
ml_publicaciones - First observed
ml_publicidad - First observed
ml_rentabilidad - First observed
ml_reputacion - First observed
ml_responder_pregunta - First observed
ml_subir_clip - First observed
ml_tendencias - First observed
ml_version - First observed
ml_vigilar - First observed
ml_visitas
TDQS
Scored across 32 tools
Most tools have clearly distinct purposes, especially around publications, orders, promotions, ads, clips, and competition tracking. Some analytical tools (ml_panel_ventas, ml_metricas, ml_rentabilidad, ml_publicidad) and market-research tools (ml_buscar, ml_descubrir_ganadores, ml_tendencias) have adjacent scopes, but the descriptions generally distinguish them well.
All tools use a consistent ml_ prefix and lower snake_case, which is easy to scan. The main deviation is that read tools are mostly noun-only (ml_ordenes, ml_publicaciones) while mutating tools use verb_noun (ml_actualizar_publicacion, ml_responder_pregunta), but this pattern is still fairly predictable.
With 32 tools, the server is well beyond the ideal 3-15 range and exceeds the 25+ threshold for being heavy. The domain is broad, so not every tool is unjustified, but the set would benefit from consolidation or grouping.
The surface covers connection, accounts, sales, shipping, publication lifecycle, questions, promotions, ads, profitability, clips, and competition research. It is very broad, with only minor gaps such as a dedicated order-detail tool or hard-delete publication operation.
Maintenance
Related MCP Connectors
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Hosted MCP server for 3Dsellers, the multichannel selling platform. Connect Claude, ChatGPT, Cursor, VS Code or any MCP client and manage your eBay, Amazon, Walmart, Etsy, Shopify, WooCommerce and TikTok Shop stores in plain language: search and update products, publish listings, sync inventory, tag and track orders, run bulk actions and CSV imports, and reply to customer messages. 120+ tools. Sign in with OAuth or a personal token. No eBay developer account and nothing to install. Setup guides and config examples for every client: https://github.com/3dsellers/ebay-mcp-server
Amazon Seller Central, Ads and Vendor Central in ChatGPT & Claude. 106 tools; writes need approval.
Amazon brand, seller, niche & buy-box intelligence inside your own Claude or ChatGPT.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates with the Mercado Livre API to enable management of sales, shipments, and shipping labels directly through Claude.71MIT
- FlicenseAqualityCmaintenanceConnects Claude to your Amazon Seller Central account via the Selling Partner API, enabling queries for recent orders, sales summaries, FBA inventory, and financial events.4-
- FlicenseNot gradedqualityDmaintenanceConnects Claude to your MercadoLibre seller account, enabling natural language management of listings, orders, and shipments.-
- AlicenseAqualityBmaintenanceEnables sellers to connect their MercadoLibre accounts to Claude AI and query consolidated multi-store sales, real profitability, stock, listings, buyer questions, claims, Product Ads, and competitor prices in natural language.33MIT

