readOnlyHint: true y ninguna puede crear, cambiar ni aprobar nada. tools/list las devuelve en este orden. El título se entrega en el idioma solicitado.
Cómo leer esta página
- Scope. La descripción de cada herramienta, tal como la muestra un cliente, termina con una frase como “Requires the
inventory.readscope granted to this connection.” Ese nombre es el permiso interno. La tabla de arriba lo relaciona con el scope OAuth que debes pedir. La revisión ocurre al llamar a la herramienta, antes de leer nada; si falta el scope, la respuesta escommon.forbidden. - Argumentos. Todos los argumentos son opcionales salvo los marcados como obligatorios. Los argumentos son estrictos: se rechaza un nombre que la herramienta no declara (por ejemplo
tenantIdoclinicId) y también un valor fuera de los límites indicados. Ninguna herramienta acepta un selector de espacio de trabajo: siempre sale de la conexión. - Resultados. Un resultado es un elemento de texto con un documento JSON. Las tablas de campos de abajo describen ese documento. Un campo marcado “solo con” no aparece cuando la conexión no tiene el scope; nunca llega como
null. - Ids. Los ids son cadenas opacas. El mismo id sirve en la barra de direcciones de la consola, en la API
/v1y en otras herramientas. Los nombres de las personas no están disponibles por MCP: un campo comorequesterIdes un id. - Idioma. En la conexión OAuth, los títulos, las descripciones, los textos de error y las etiquetas llegan en el idioma solicitado. Los nombres de herramientas y campos nunca cambian.
- Las preguntas de ejemplo son lo que un gerente podría escribirle a un asistente conectado a muveya. El asistente decide qué herramienta llamar.
clinics.list
List clinics and warehouses. Lista las sedes y bodegas a las que tu membresía tiene acceso, con el id, el nombre y el estado de cada una. Los asistentes la usan para descubrir los ids que necesitan otras herramientas.
El resultado trae dos listas completas, en orden de creación, incluidas las sedes y bodegas inactivas:
Preguntas de ejemplo:
- “¿Qué bodegas tiene Clínica Norte?”
- “Lista nuestras sedes inactivas.”
catalog.search
Search the catalog. Busca en el catálogo por nombre de insumo o SKU y devuelve los insumos que coinciden, con su unidad, categoría y estado. El costo solo aparece cuando la conexión puede verlo.
string
Texto que se busca en el nombre del insumo o en el SKU. No distingue mayúsculas de minúsculas y coincide en cualquier parte del valor. De 1 a 120 caracteres. Sin él, la herramienta devuelve los insumos del estado elegido.
string
predeterminado:"active"
Estado del ciclo de vida que se busca:
active, inactive o draft.{ items, truncated }. Trae como máximo 50 insumos, los más antiguos primero. Cuando truncated es true, coincidieron más insumos: vuelve a preguntar con un term más específico.
Preguntas de ejemplo:
- “Busca guantes de nitrilo en el catálogo.”
- “¿Qué insumos del catálogo siguen en borrador?”
- “¿Cuánto cuesta una caja de GLV-NIT-M?” (solo responde si la conexión tiene
catalog.cost:read)
inventory.check
Check stock availability. Devuelve cuánto hay de un insumo del catálogo en mano, reservado y disponible en cada bodega, con opción de limitarlo a una sola bodega.
string
requerido
Id del insumo del catálogo, de 1 a 64 caracteres. Normalmente el asistente lo busca antes con
catalog.search.string
Id de una bodega, de 1 a 64 caracteres, para limitar la respuesta a ella.
Resultado de ejemplo
warehouses vacía, no un error.
Preguntas de ejemplo:
- “¿Cuántas cajas de GLV-NIT-M hay disponibles en cada bodega?”
- “¿Queda algo de ese insumo en la Bodega Central?”
orders.get
Get an order. Devuelve un pedido por su id, con sus líneas, su estado y su plan de aprobación.
string
requerido
Id del pedido, de 1 a 64 caracteres. Es el id opaco, no el número del pedido. En la consola puedes copiarlo de la dirección de la página del pedido,
console.muveya.com/orders/ seguido del id.
Si no existe un pedido con ese id en tu clínica dental, o el id está mal formado o pertenece a otra clínica dental, el resultado es
isError con code orders.not_found. MCP no tiene una herramienta para listar o buscar pedidos; para listarlos, usa GET /v1/orders o la pantalla Pedidos (consulta Crear y seguir pedidos).
Preguntas de ejemplo:
- “¿En qué estado está el pedido 6650cc00000000000000c001 y qué etapas de aprobación necesita?”
- “¿Qué insumos y cantidades tiene ese pedido?”
approvals.list_pending
List pending approvals. Devuelve los pedidos que esperan la decisión de aprobación de la propia persona conectada.
Esta herramienta lee la bandeja de aprobaciones de una persona. La conexión actúa como el miembro de la clínica dental que inició sesión, pero los scopes OAuth actuales de solo lectura no incluyen
approvals.decide, así que la llamada se rechaza antes de leer nada.
Para revisar y decidir aprobaciones hoy, usa Aprobación de pedidos en la consola: consulta Aprobar o rechazar pedidos. Para saber cuántas aprobaciones hay pendientes, usa management.briefing, cuyas cifras incluyen las aprobaciones pendientes por antigüedad.
Pregunta de ejemplo: “¿Qué está esperando mi aprobación?” (con OAuth, el asistente informará que la herramienta no está permitida)
management.pending_decisions
Pending management decisions. La misma bandeja de aprobaciones que approvals.list_pending, presentada para gerencia: cada pedido con su hora de envío (para medir su antigüedad frente a un nivel de servicio), sus etapas y el valor omitido salvo que quien lee pueda verlo.
Devuelve exactamente lo mismo que
approvals.list_pending y se rechaza por el mismo motivo. Usa Aprobación de pedidos en la consola, o management.briefing para las cifras de aprobaciones pendientes.
Pregunta de ejemplo: “¿Qué decisiones llevan más de dos días esperándome?”
fulfillment.get_pick_list
Get a pick list. Devuelve las cajas que hay que preparar para un pedido, con el vencimiento más próximo primero (FEFO), solo cajas que siguen activas.
string
requerido
Id del pedido que se va a preparar, de 1 a 64 caracteres.
fulfillment.pick (fulfillment:read tampoco). Para una persona, cada línea traería lineId, catalogItemId, sku, boxId, boxCode, warehouseId, quantity, picked, requiresSeparation y, cuando se registran, lotNumber y expiryDate; nunca costo, valor ni referencia de paciente.
Para preparar pedidos hoy, usa Entregas en la consola: consulta Preparar y despachar un pedido.
Pregunta de ejemplo: “¿Qué cajas tengo que preparar para este pedido?”
analytics.consumption
Consumption per supply. Devuelve cuánto se consumió de cada insumo a lo largo del tiempo, cada uno en su propia unidad, como un reporte con evidencia. Nunca suma insumos ni unidades distintas.
string
Inicio de la ventana, en ISO-8601 (por ejemplo
2026-08-01T00:00:00Z), incluido. De 1 a 40 caracteres. Por defecto, 30 días antes de to.string
Fin de la ventana, en ISO-8601, excluido. De 1 a 40 caracteres. Por defecto, ahora.
string
predeterminado:"day"
Tamaño de cada tramo:
day o week. Los tramos siguen la hora UTC.string
Id de un insumo del catálogo, de 1 a 64 caracteres, para limitar el reporte a él.
from debe ser anterior a to, y la ventana puede durar como máximo 366 días. Una fecha que no se puede leer, una ventana invertida o una más larga devuelve isError con code common.invalid_request.
usedQuantity son las existencias registradas donde se usaron; issuedQuantity son las existencias entregadas a boxes y áreas que no cuentan sus propias existencias, un consumo estimado. Ambas suman la cantidad consumida. Analítica de gestión explica cada cifra.
Preguntas de ejemplo:
- “¿Cuántas unidades de cada insumo usamos por semana en agosto?”
- “Muéstrame el consumo diario de GLV-NIT-M en los últimos 30 días.”
management.briefing
Management briefing. Devuelve el resumen gerencial reproducible (un compendio donde cada cifra enlaza con su métrica de origen y su id de evidencia) junto con la lista priorizada de excepciones operativas.
string
predeterminado:"daily"
daily o weekly. Decide si las cifras de consumo dentro del resumen se agrupan por día o por semana; las demás cifras no cambian.{ briefing, exceptions }.
El
drillDownId de una excepción es el id de un pedido, de un movimiento de existencias o de un insumo del catálogo. Un id order se abre con orders.get; un id item, con inventory.check. Analítica de gestión define cada cifra.
Preguntas de ejemplo:
- “Dame el resumen de hoy y las tres excepciones más urgentes.”
- “¿Qué cambió esta semana? Usa el resumen semanal.”
management.compare_clinics
Compare clinics. Ordena tus sedes por volumen de pedidos, con la definición de la métrica a la vista. Cada valor es un conteo.
Aparecen todas las sedes, incluso las que no tienen pedidos. La lista se ordena por
totalOrders, de mayor a menor; los empates se ordenan por clinicId.
Preguntas de ejemplo:
- “¿Qué sede hizo más pedidos?”
- “Compara nuestras sedes por aprobaciones pendientes.”
Páginas relacionadas
Servidor MCP
Scopes, omisión de datos, auditoría y errores.
Conectar un cliente
Configura Claude Code, Claude Desktop, Cursor o tu propio cliente.
Recursos MCP
Documentos de referencia que ayudan a un asistente a leer estos resultados.
Analítica de gestión
La definición de cada cifra gerencial.