*MCP › Referencia › Operaciones › Tareas*

# Listar tareas

> Devuelve las tareas y los eventos de la agenda, paginados por cursor.

Aislamiento estricto por suscripción.

HERRAMIENTA `filmo_tasks_list` · `tasks:read` · 120/min · Anotación del servidor: Solo lectura · Anotación del servidor: Idempotente

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `limit` | integer | No | Tamaño de página (1-500). Por defecto es 50. = `50` |
| `cursor` | string | No | Cursor opaco de la página que se devuelve. Pasa el valor de `pagination.nextCursor` de la respuesta anterior; trátalo como opaco. |
| `sort` | string | No | Orden: hasta 3 campos separados por comas, cada uno con un "-" inicial para descendente (p. ej. "-updatedAt,name"). Campos ordenables: createdAt, updatedAt, startDate, endDate, title, isCompleted, type. Por defecto, "-createdAt". Los empates se resuelven por id, así que el orden es estable entre páginas, y un cursor queda ligado al orden con el que se emitió. |
| `from` | string<date-time> | No | Inicio de la ventana de solapamiento (ISO 8601 con desplazamiento): devuelve las tareas que se solapan con [from, to] (cuenta una tarea que empieza antes y termina dentro). |
| `to` | string<date-time> | No | Fin de la ventana de solapamiento (ISO 8601 con desplazamiento): devuelve las tareas que se solapan con [from, to]. |
| `assignedStaffId` | string | No | Filtra por miembro del personal asignado (el mismo identificador que expone assignedStaffIds en el DTO). |
| `assignedStaffIds` | string[] | No | Filtra por assignedStaffId, como lista: repite el parámetro o separa los valores con comas. Acepta hasta 50 valores y devuelve lo que coincida con cualquiera de ellos. |
| `isCompleted` | boolean | No | Filtra por finalización: "true" solo las tareas completadas, "false" solo las tareas pendientes. Omítelo para no aplicar ningún filtro. |
| `type` | string | No | Filtra por tipo de tarea: su identificador (tipos del sistema: default, delivery, return, temporaryStock; tipos personalizados: su id) o su nombre, comparado sin distinguir mayúsculas ni acentos. Un nombre que no coincide con ningún tipo devuelve una lista vacía; uno que coincide con varios se rechaza con 400. |
| `types` | string[] | No | Filtra por type, como lista: repite el parámetro o separa los valores con comas. Acepta hasta 50 valores y devuelve lo que coincida con cualquiera de ellos. |
| `relatedDocumentId` | string | No | Filtra por identificador del documento relacionado con la tarea. |
| `relatedDocumentIds` | string[] | No | Filtra por relatedDocumentId, como lista: repite el parámetro o separa los valores con comas. Acepta hasta 50 valores y devuelve lo que coincida con cualquiera de ellos. |
| `includeTotal` | boolean | No | Ponlo en true para incluir `pagination.total`, el número de resultados que coinciden con los filtros en todas las páginas. Desactivado por defecto. = `false` |
| `dateFilters` | object | No | Filtros de fecha por campo. Una fecha sin hora (YYYY-MM-DD) se lee en la zona horaria del negocio; un instante ISO 8601 con desplazamiento se aplica tal cual con gte, lte, gt y lt, mientras que on lo amplía al día completo del negocio que lo contiene. Campos: created, due, updated. |
| `dateFilters.created` | object | No |  |
| `dateFilters.created.gte` | string | No | Desde este día o instante, inclusive. |
| `dateFilters.created.lte` | string | No | Hasta este día o instante, inclusive. |
| `dateFilters.created.gt` | string | No | Estrictamente posterior; una fecha sin hora significa después del final de ese día. |
| `dateFilters.created.lt` | string | No | Estrictamente anterior; una fecha sin hora significa antes del inicio de ese día. |
| `dateFilters.created.on` | string | No | Exactamente ese día; un instante significa toda la jornada del negocio que lo contiene. |
| `dateFilters.due` | object | No |  |
| `dateFilters.due.gte` | string | No | Desde este día o instante, inclusive. |
| `dateFilters.due.lte` | string | No | Hasta este día o instante, inclusive. |
| `dateFilters.due.gt` | string | No | Estrictamente posterior; una fecha sin hora significa después del final de ese día. |
| `dateFilters.due.lt` | string | No | Estrictamente anterior; una fecha sin hora significa antes del inicio de ese día. |
| `dateFilters.due.on` | string | No | Exactamente ese día; un instante significa toda la jornada del negocio que lo contiene. |
| `dateFilters.updated` | object | No |  |
| `dateFilters.updated.gte` | string | No | Desde este día o instante, inclusive. |
| `dateFilters.updated.lte` | string | No | Hasta este día o instante, inclusive. |
| `dateFilters.updated.gt` | string | No | Estrictamente posterior; una fecha sin hora significa después del final de ese día. |
| `dateFilters.updated.lt` | string | No | Estrictamente anterior; una fecha sin hora significa antes del inicio de ese día. |
| `dateFilters.updated.on` | string | No | Exactamente ese día; un instante significa toda la jornada del negocio que lo contiene. |

## Resultado

En un éxito el resultado lleva `structuredContent` con `data` y `meta`. Estos son los atributos de `data`.

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador único de la tarea. |
| `title` | string | Título de la tarea. |
| `description` | string | Descripción o notas de la tarea; null si no tiene. |
| `startDate` | string<date-time> | Fecha y hora de inicio en ISO 8601 con desplazamiento. |
| `endDate` | string<date-time> | Fecha y hora de fin en ISO 8601 con desplazamiento; null si no tiene un fin definido. |
| `isAllDay` | boolean | Si la tarea dura todo el día. |
| `isCompleted` | boolean | Si la tarea está completada. |
| `isRecurring` | boolean | Si la tarea forma parte de una serie recurrente. |
| `recurringGroupId` | string | Identificador del grupo de recurrencia al que pertenece; null si no es recurrente. |
| `recurrencePattern` | object | Patrón de recurrencia de la tarea; null si no es recurrente. |
| `recurrencePattern.frequency` | string | Frecuencia de recurrencia: daily, weekly, monthly o yearly. `daily`, `weekly`, `monthly`, `yearly` |
| `recurrencePattern.interval` | integer | Intervalo entre repeticiones según la frecuencia (p. ej. 2 con weekly = cada dos semanas). |
| `recurrencePattern.endAfterOccurrences` | integer | Número de repeticiones tras las cuales termina la recurrencia; null si no termina por número de ocurrencias. |
| `recurrencePattern.endDate` | string<date-time> | Fecha en que termina la recurrencia, en ISO 8601 con desplazamiento; null si no termina por fecha. |
| `type` | string | Tipo de tarea (identificador del tipo). |
| `assignedStaffIds` | string[] | Identificadores del personal asignado a la tarea. |
| `projectId` | string | Identificador del proyecto vinculado; null si la tarea no está vinculada. |
| `relatedDocumentId` | string | Identificador del documento relacionado; null si no tiene. |
| `relatedDocumentType` | string | Tipo del documento relacionado (contacto, pedido, factura, presupuesto, proyecto, etc.); null si no tiene. |
| `appearance` | object | Aspecto de la tarea en la agenda (color y variante). |
| `appearance.color` | string | Color de la tarea en la agenda (código hexadecimal). |
| `appearance.variant` | string | Variante visual de la tarea: primary, secondary, destructive o default. `primary`, `secondary`, `destructive`, `default` |
| `createdAt` | string<date-time> | Fecha de creación en ISO 8601 con desplazamiento. |
| `updatedAt` | string<date-time> | Fecha de la última actualización en ISO 8601 con desplazamiento. |

*Llamada · filmo_tasks_list*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_tasks_list",
    "arguments": {
      "limit": 20
    }
  }
}
```

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": [
      {
        "id": "id_8f2a1c",
        "title": "Example",
        "description": "<description>",
        "startDate": "2026-09-01T08:00:00Z",
        "endDate": "2026-09-01T08:00:00Z",
        "isAllDay": true,
        "isCompleted": true,
        "isRecurring": true,
        "recurringGroupId": "recu_8f2a1c",
        "recurrencePattern": {
          "frequency": "daily",
          "interval": 1,
          "endAfterOccurrences": 1,
          "endDate": "2026-09-01T08:00:00Z"
        },
        "type": "<type>",
        "assignedStaffIds": [
          "assi_8f2a1c"
        ],
        "projectId": "proj_8f2a1c",
        "relatedDocumentId": "rela_8f2a1c",
        "relatedDocumentType": "<relatedDocumentType>",
        "appearance": {
          "color": "<color>",
          "variant": "primary"
        },
        "createdAt": "2026-09-01T08:00:00Z",
        "updatedAt": "2026-09-01T08:00:00Z"
      }
    ],
    "pagination": {
      "nextCursor": "eyJvIjo1MH0",
      "hasMore": true,
      "total": 1
    },
    "meta": {
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## Prompts de ejemplo

*Prompt*

```text
Enséñame las tareas abiertas que vencen esta semana, agrupadas por responsable.
```

## La misma operación por REST

Esta herramienta ejecuta [`GET /api/v1/tasks`](https://docs.filmo.io/es/rest-api/endpoint-reference/tasks/list-tasks).

---

URL canónica: https://docs.filmo.io/es/mcp/tools/tasks/filmo-tasks-list  
Última actualización: 2026-10-25