Herramientas · Soporte
Herramientas MCP del módulo Soporte (coworking): abrir un ticket con fotos, listar la cola y mis tickets, clasificar, asignar, resolver, nota interna, cancelar, reabrir, fotos y plazos, además de la configuración de quién responde y del plazo por categoría.
El módulo Soporte con el asistente: el residente abre y sigue tickets (con fotos), el equipo clasifica la cola, responde, escribe notas internas y resuelve, y el administrador configura quién responde y los plazos. Los roles son los de la pantalla: el asistente nunca hace más de lo que haría la persona conectada.
Cada herramienta lleva un sello: Solo consulta no cambia nada, Modifica crea o cambia algo al momento, y Pide confirmación solo actúa después de tu sí a un resumen. Consulta Dinero y confirmación.
En resumen
| Herramienta | Qué hace | Rol mínimo | Tipo |
|---|---|---|---|
get_support_space_settings | Cómo funciona el espacio: límites, plazos y, para el equipo, quién responde | Cualquiera | Solo consulta |
get_support_overview | La cola en números | Moderador o financiero | Solo consulta |
list_support_tickets | Toda la cola, con filtros y plazos | Moderador o financiero | Solo consulta |
list_my_support_tickets | Tus tickets | Cualquiera | Solo consulta |
get_support_ticket | Un ticket con la conversación y las fotos | Cualquiera (el residente lee los suyos) | Solo consulta |
get_support_resource_open_count | Cuántos tickets abiertos tiene un elemento | Cualquiera | Solo consulta |
create_support_ticket | Abre un ticket, con fotos | Cualquiera | Modifica |
update_support_ticket | Clasificación: estado, prioridad, categoría, responsable, lugar | Moderador o financiero, y responder la categoría | Modifica |
add_support_comment | Comenta, o escribe una nota interna | Cualquiera (la nota, solo quien responde) | Modifica |
cancel_support_ticket | Cancela un ticket | Cualquiera (el residente, el suyo) | Pide confirmación |
reopen_support_ticket | Reabre un ticket | Cualquiera (el residente, el suyo resuelto) | Modifica |
add_support_photo | Adjunta una foto | Cualquiera | Modifica |
replace_support_photo | Cambia una foto por otra | Cualquiera | Modifica |
remove_support_photo | Quita una foto | Cualquiera | Pide confirmación |
delete_support_comment | Borra un mensaje de la conversación | Administrador | Pide confirmación |
delete_support_ticket | Borra un ticket y sus fotos | Administrador | Pide confirmación |
Por rol, el propietario y el administrador ven las 16; el moderador y el financiero, 14; el miembro, 11. El equipo es el propietario, el administrador, el moderador y el financiero, pero quien responde (clasificar, asignar, responder, anotar) es solo quien está en la selección de la categoría; fuera de ella, la API rechaza con un 403 traducido y el asistente lo cuenta. Consulta Quién responde.
El espacio se crea con create_space y module: "support"; update_space cambia solo lo que envíes.
La configuración del espacio
El argumento support de create_space y update_space acepta (lo que envíes se combina con lo que ya existe):
| Campo | Tipo | Descripción |
|---|---|---|
allow_urgent_flag | verdadero o falso | El residente puede marcar "es urgente" (pasa a prioridad alta). Por defecto: sí |
max_open_per_member | 0 a 1000 | Tickets abiertos por residente; 0 = sin límite. Por defecto: 10 |
location_hint | texto hasta 200 | La pista del campo "Lugar" |
default_assignee_id | id o null | Quién recibe los tickets nuevos |
responders | objeto | Quién responde: tags (nombres de etiqueta), group_ids, profile_ids y by_category (la selección de cada categoría, que sustituye a la del espacio). Owner y admin siempre responden; sin selección, responde todo el equipo |
sla.enabled | verdadero o falso | Activa los plazos. Por defecto: sí |
sla.business_hours | {days, start, end} | Días de la semana (0 = domingo a 6 = sábado) y horario HH:MM, en la zona horaria de la comunidad. Por defecto: de lunes a viernes, de 09:00 a 18:00. Sin festivos |
sla.categories | por categoría | first_response y resolution, cada uno con value (entero) y unit (hours o days). Por defecto: 4 horas y 1 día |
Las categorías son FACILITIES, CLEANING, EQUIPMENT, INTERNET, ACCESS, BILLING y OTHER; los tipos, MAINTENANCE y REQUEST; los estados, OPEN, IN_PROGRESS, WAITING_REQUESTER, RESOLVED y CANCELED; las prioridades, LOW, NORMAL, HIGH y URGENT.
get_support_space_settings
Solo consulta
Cómo funciona el espacio. allowUrgentFlag, maxOpenPerMember, locationHint, hasBookings (si se puede usar resource_id) y sla. El equipo recibe además responders, defaultAssigneeId y canAnswerCategories (las categorías que tú respondes); el residente nunca recibe responders. Rol: cualquiera con acceso al espacio.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
space | id o enlace | Sí | El espacio Soporte (list_spaces) |
get_support_overview
Solo consulta
La cola en números: open, inProgress, waitingRequester, unassigned, mine, overdue (plazo vencido, reloj corriendo) y total. Sin space, suma todos los espacios de Soporte. Rol: moderador o financiero.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
space | id o enlace | No |
Pídelo así: "¿Cómo está la cola de tickets?"
list_support_tickets
Solo consulta
Toda la cola, por la actividad más reciente o por la prioridad. Con los plazos activados, cada ticket trae sla (firstResponseDueAt, resolveDueAt, paused, y las fechas legibles en la zona horaria de la comunidad) y, para el equipo, sla.overdue. Cada elemento dice qué puedes hacer (canAnswer, canAssign...). El residente usa list_my_support_tickets. Rol: moderador o financiero.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
space | id o enlace | No | |
kind, status, priority, category | valores de arriba | No | Un valor de cada uno |
assignee_profile_id | id | No | Tickets de ese responsable |
unassigned | verdadero o falso | No | Sin responsable |
mine | verdadero o falso | No | Asignados a ti |
overdue | verdadero o falso | No | Plazo vencido y reloj corriendo (Esperando respuesta no cuenta) |
due_today | verdadero o falso | No | El siguiente plazo vence hoy; solo en espacios con plazos |
requester_profile_id | id | No | Tickets de esa persona |
resource_id | id | No | Tickets de ese elemento de Reservas |
q | texto | No | Número, #42 o parte del título |
sort | activity o priority | No | |
page, limit | números | No | Paginación (hasta 100) |
Pídelo así: "¿Qué tickets están atrasados o vencen hoy?"
list_my_support_tickets
Solo consulta
Los tickets que abriste, del más reciente al más antiguo. Rol: cualquiera con acceso al espacio.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
space | id o enlace | No | |
kind, status, priority, category | valores de arriba | No | |
resource_id | id | No | |
q | texto | No | |
page, limit | números | No |
get_support_ticket
Solo consulta
Un ticket con la línea de tiempo: mensajes, historial de cambios, las notas internas (solo para el equipo) y las fotos como enlaces de corta duración. El residente lee los suyos; el equipo lee todos, también fuera de la selección de quién responde. Otro ticket: 404. Rol: cualquiera.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | De list_support_tickets o list_my_support_tickets |
get_support_resource_open_count
Solo consulta
El aviso de duplicado. Solo el número de tickets abiertos de una sala, mesa o equipo de Reservas, sin título ni autor, para avisar antes de abrir otro más. Rol: cualquiera.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
resource_id | id | Sí | De list_booking_resources |
create_support_ticket
Modifica
Abrir un ticket, con fotos. Se avisa al equipo por la cola de correos. Quien responde la categoría puede además definir la priority y abrir en nombre de un residente (requester_profile_id): el residente recibe un correo, así que el asistente muestra antes quién lo va a recibir. Por encima del límite de tickets abiertos del espacio, 409; por encima de 10 aperturas por hora, 429. Repetir la llamada con el mismo client_request_id devuelve el mismo ticket. Rol: cualquiera con acceso al espacio.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
space | id o enlace | Sí | El espacio Soporte |
kind | MAINTENANCE o REQUEST | Sí | |
category | categoría | Sí | |
title | texto | Sí | Hasta 140 caracteres |
description | texto | Sí | Hasta 10000 |
resource_id | id | No | Sala, mesa o equipo (list_booking_resources) |
location_text | texto | No | Hasta 120 caracteres; vale sin elemento |
urgent | verdadero o falso | No | Pasa a prioridad alta, si el espacio lo permite |
priority | prioridad | No | Solo quien responde |
requester_profile_id | id | No | Solo quien responde: abre en nombre de ese residente |
photos | lista | No | Hasta 5, cada una con image_url o image_base64 (+ image_type) |
client_request_id | texto | No | Evita duplicar con un toque repetido |
Pídelo así: "Abre un ticket de mantenimiento: el proyector de la Sala 3 no enciende, aquí está la foto."
update_support_ticket
Modifica
La clasificación. Solo quien responde la categoría del ticket; fuera de ella, 403 traducido. Envía solo lo que cambia. message acompaña a RESOLVED o WAITING_REQUESTER como respuesta pública, y el residente recibe un correo; asignar avisa al responsable. RESOLVED y CANCELED solo vuelven a OPEN. URGENT solo se define aquí. Cada cambio entra en la conversación. Rol: moderador o financiero, y responder la categoría.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | |
status | estado | No | |
priority | prioridad | No | |
kind, category | valores | No | La categoría solo cambia a una que tú también respondes |
assignee_profile_id | id o null | No | Tiene que responder la categoría; null quita el responsable |
resource_id | id o null | No | El elemento de Reservas |
location_text | texto o null | No | |
title | texto | No | |
message | texto | No | Junto con RESOLVED o WAITING_REQUESTER |
Pídelo así: "Asigna el ticket #42 a Pedro y resuélvelo diciendo que cambiamos la bombilla."
add_support_comment
Modifica
Comentar, con fotos. El residente comenta en los suyos (en Esperando respuesta vuelve a En curso; en uno Resuelto, lo reabre); quien responde también, y el residente recibe un correo (dos respuestas en 10 minutos generan un solo correo). Con internal: true es una nota interna: solo quien responde puede escribirla, el residente nunca la ve y no envía correo. Los comentarios no se editan. Rol: cualquiera (la nota, solo quien responde).
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | |
body | texto | Sí | Hasta 10000 caracteres |
internal | verdadero o falso | No | Nota interna |
photos | lista | No | Hasta 5, como en create_support_ticket |
Pídelo así: "En el ticket #42, anota de forma interna que el técnico viene el jueves."
cancel_support_ticket
Pide confirmación
Cancelar un ticket abierto. Pasa a Cancelado; no se borra nada. El residente cancela el suyo mientras no esté resuelto; quien responde la categoría también (un duplicado, por ejemplo). Resuelto o ya cancelado: 400. Rol: cualquiera, dentro de los límites de arriba.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí |
Devuelve: en la primera llamada, el resumen (número, título, estado, residente) y el código de confirmación.
reopen_support_ticket
Modifica
Reabrir. El residente reabre su ticket Resuelto, y se avisa al equipo; quien responde reabre también el Cancelado. Otro estado: 400. El plazo de resolución empieza de nuevo. Rol: cualquiera, dentro de los límites de arriba.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí |
add_support_photo
Modifica
Adjuntar una foto (JPEG, PNG o WebP, hasta 20 MB), guardada en privado: solo el residente y el equipo la abren. Hasta 20 por ticket (409 por encima). El residente en el suyo; quien responde en cualquiera. Rol: cualquiera.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | |
image_url o image_base64 | enlace o texto | Sí | La imagen; image_base64 va con image_type |
replace_support_photo
Modifica
Cambiar una foto. Primero se adjunta la nueva; después se quita la antigua y se borra el archivo. El residente cambia las fotos de la apertura y de sus comentarios; quien responde, cualquiera. Rol: cualquiera.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | |
photo_id | id | Sí | De get_support_ticket |
image_url o image_base64 | enlace o texto | Sí | La imagen nueva |
remove_support_photo
Pide confirmación
Quitar una foto (el archivo se borra para siempre). Quien responde quita cualquiera; el residente, las de la apertura y las de sus comentarios. Rol: cualquiera, dentro de los límites de arriba.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | |
photo_id | id | Sí | De get_support_ticket |
Devuelve: en la primera llamada, el resumen y el código de confirmación.
delete_support_comment
Pide confirmación
Borrar un mensaje de la conversación, con sus fotos. Las líneas del historial no se borran. Rol: administrador.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí | |
comment_id | id | Sí | De get_support_ticket |
delete_support_ticket
Pide confirmación
Borrar un ticket y sus fotos; no se anonimiza ni se guarda nada. Para cerrar de verdad un ticket usa update_support_ticket (Resuelto) o cancel_support_ticket. Rol: administrador.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket_id | id | Sí |
Devuelve: en la primera llamada, el resumen (número, título, estado, residente, fotos) y el código de confirmación.