*MCP › Referencia › Operaciones › Personal*

# Crear un miembro del personal

> Registra a una persona en el personal.

El cuerpo acepta SOLO la parte organizativa —nombre, tipo de relación, colección, etiquetas y si conduce—: el correo electrónico, el teléfono y el texto libre son datos personales y no viajan por el borde público, igual que no se emiten en la lectura. Devuelve el miembro creado con la misma proyección que el listado.

HERRAMIENTA `filmo_staff_create` · `staff:write` · 120/min

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `fullName` | string | Sí | Nombre completo. |
| `staffType` | string | No | Tipo de relación con la empresa. `employee`, `freelancer`, `contractor` |
| `collectionId` | string | No | Colección a la que pertenece. |
| `tags` | string[] | No | Etiquetas por nombre; un nombre que no existe CREA la etiqueta. |
| `hasDrivingLicense` | boolean | No | Si tienen carnet de conducir. Es el campo que decide quién puede conducir un vehículo. |
| `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. |
| `ifMatch` | string | No | Bloqueo optimista: el meta.etag que obtuviste de la lectura de detalle de este recurso (o "*"). Si el recurso ha cambiado desde entonces, la llamada falla con 412 precondition_failed antes de escribir nada; léelo de nuevo y reintenta. Omítelo para escribir sin condiciones. |

## 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 del miembro del personal. |
| `fullName` | string | Nombre completo. |
| `staffType` | string | Tipo de miembro del personal. `employee`, `freelancer`, `contractor` |
| `collectionId` | string | Identificador de la colección a la que pertenece; null si no está en ninguna. |
| `collectionName` | string | Ruta de la colección a la que pertenece; null si no aplica. |
| `hasDrivingLicense` | boolean | true si tienen carnet de conducir. |
| `showInPlanner` | boolean | true si aparecen en el planificador de la cuenta. |
| `externalRef` | string | Referencia externa para cruzar con sistemas de terceros; null si no tiene. |
| `createdAt` | string<date-time> | Fecha de creación en ISO 8601 UTC; null si no consta. |
| `updatedAt` | string<date-time> | Fecha de la última modificación en ISO 8601 UTC; null si no está registrada. |

*Llamada · filmo_staff_create*

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

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": {
      "id": "id_8f2a1c",
      "fullName": "Example",
      "staffType": "employee",
      "collectionId": "coll_8f2a1c",
      "collectionName": "Example",
      "hasDrivingLicense": true,
      "showInPlanner": true,
      "externalRef": "<externalRef>",
      "createdAt": "2026-09-01T08:00:00Z",
      "updatedAt": "2026-09-01T08:00:00Z"
    },
    "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/staff`](https://docs.filmo.io/es/rest-api/endpoint-reference/staff/create-a-staff-member).

---

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