*MCP › Referencia › Operaciones › Planificador*

# Quitar un recurso de un servicio

> Deshace una asignación.

> **Requiere confirmación humana:** Pon esta herramienta en la lista de «preguntar antes de ejecutar» de tu cliente. Las anotaciones son pistas que declara el servidor, no garantías: no decidas la aprobación solo por `destructiveHint`.

Es un POST a un subrecurso y no un DELETE porque el destino se identifica con hasta cuatro campos y el recurso con tres (`assignmentId`, `staffId` o `vehicleId`): eso no cabe en una ruta, y un DELETE con cuerpo obligatorio es un contrato peor. En una tarea el recurso es siempre `staffId`: una tarea no tiene ni vehículos ni identificadores de asignación, y enviar uno de esos responde 400 `validation_error` en ese campo. Un destino que no existe o que pertenece a otra cuenta también responde 400 `validation_error`, con `errors[].path` en su campo; un recurso que no está asignado a ese destino responde 404 `not_found`: no hay nada que quitar.

HERRAMIENTA `filmo_planner_assignment_remove` · `planner:write` · 120/min · Anotación del servidor: Destructiva · Requiere confirmación humana

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `orderId` | string | No | Pedido al que está asociado el servicio. |
| `orderServiceId` | string | No | Línea de servicio dentro de ese pedido. |
| `taskId` | string | No | Tarea del planificador de la que quitar el recurso. |
| `internalServiceId` | string | No | Asignación interna de la que se va a quitar. |
| `assignmentId` | string | No | Identificador de la asignación concreta, si lo tienes. |
| `staffId` | string | No | Miembro del personal que se quita. |
| `vehicleId` | string | No | Vehículo que se quita. |
| `idempotencyKey` | string | No | Clave de idempotencia elegida por el cliente (se recomienda un UUID). Repetir la misma clave con los mismos argumentos en 24 h devuelve la respuesta almacenada sin volver a ejecutar; con argumentos distintos responde 422. Es la forma segura de reintentar tras un fallo de red. |

## Resultado

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

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `status` | string | Resultado de la operación. |

*Llamada · filmo_planner_assignment_remove*

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

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": {
      "status": "<status>"
    },
    "meta": {
      "idempotencyKey": "<the key you sent, or the one the server generated>",
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## La misma operación por REST

Esta herramienta ejecuta [`POST /api/v1/planner/assignments/remove`](https://docs.filmo.io/es/rest-api/endpoint-reference/planner/remove-a-resource-from-a-service).

---

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