Workfeed MCP by usefulapi

Review staffing, availability and leave; create or update shifts with confirmation.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
99%
Integridad del esquema
72%
Calidad de los nombres
79%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'workfeed_list_salary_supplements' name length outside 3-30 rangeen workfeed_list_salary_supplements

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,812Tokens (definiciones de herramientas)
~1.1 KBTamaño de respuesta típico
Impacto significativo en la atención (2.20% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "workfeed": {
      "url": "https://workfeed.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://workfeed.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (17)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢workfeed_list_departments

Department names and IDs. GET /departments. Unpaginated vendor response, bounded to5000rows and2MiB here.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_roles

Roles and their department IDs. GET /roles. Unpaginated vendor response, bounded to5000rows and2MiB here.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_employees

Scheduling/contact fields only; excludes national IDs, banking, tax, emergency contacts, wages, addresses and custom fields. GET /employees. Unpaginated vendor response, bounded to5000rows and2MiB here.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_settings

Pay-period and shift-break settings. GET /settings. Unpaginated vendor response, bounded to5000rows and2MiB here.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_salary_supplements

Read supplement definitions, not flex-hour supplements. Duration days are inclusive in company timezone. GET /salary-supplements. Unpaginated vendor response, bounded to5000rows and2MiB here.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_employee(id)

Read one selected employee. Staff responses exclude payroll identifiers; leave notes are omitted.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_shift(id)

Read one selected shift. Staff responses exclude payroll identifiers; leave notes are omitted.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_leave(id)

Read one selected leave. Staff responses exclude payroll identifiers; leave notes are omitted.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_availability(id)

Read one selected availability. Staff responses exclude payroll identifiers; leave notes are omitted.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_shifts(startFrom, startTo, employeeID, released, roleID, ...)

Read shifts whose start>=startFrom and start<startTo (not overlap). Maximum93days per request here. Optional role and department must agree. No vendor pagination parameter is invented.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "startFrom": {
      "type": "string",
      "maxLength": 40
    },
    "startTo": {
      "type": "string",
      "maxLength": 40
    },
    "employeeID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "released": {
      "type": "boolean"
    },
    "roleID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "departmentID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    }
  },
  "required": [
    "startFrom",
    "startTo"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_leaves(from, to, employeeIDs, typeIDs, includeDeleted)

Read any leave overlapping from/to, including leave beginning before the range. Max93days here. Free-text leave notes omitted. Repeated employeeIDs/typeIDs filters; includeDeleted defaults true upstream.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "maxLength": 40
    },
    "to": {
      "type": "string",
      "maxLength": 40
    },
    "employeeIDs": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_-]+$",
        "description": "Opaque Workfeed ID from a preceding read; not a UUID."
      }
    },
    "typeIDs": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_-]+$",
        "description": "Opaque Workfeed ID from a preceding read; not a UUID."
      }
    },
    "includeDeleted": {
      "type": "boolean"
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_availabilities(from, to, employeeID, type)

Read contained records: start>=from AND end<to, max93days here. End exactly at to is excluded; allow an extra second beyond the last desired end. This differs from leave overlap.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "maxLength": 40
    },
    "to": {
      "type": "string",
      "maxLength": 40
    },
    "employeeID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "type": {
      "type": "string",
      "enum": [
        "WORK",
        "NO_WORK"
      ]
    }
  },
  "required": [
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_list_department_days(departmentID, from, to)

Read stored daily notes, manual revenue, extra labor and targets; from inclusive/to exclusive company-zone days, max93days here. Array may include null for unstored days. Calculated labor totals use get_department_stats.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "departmentID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    }
  },
  "required": [
    "departmentID",
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_department_day(departmentID, date)

Read one stored daily record; a successful null means no data is stored for that day.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "departmentID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "date": {
      "type": "string"
    }
  },
  "required": [
    "departmentID",
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢workfeed_get_department_stats(departmentID, from, to)

Calculated per-day laborCost/revenue, with from/to inclusive company-zone days, at most31days. Prefer laborCost here: shift grossPay is0 for monthly-paid staff. laborPercentage null when revenue0 is not0%.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "departmentID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    }
  },
  "required": [
    "departmentID",
    "from",
    "to"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴workfeed_create_shift(confirm, roleID, start, end, employeeID, ...)

Create one shift after the user approves its exact staff, role and times. confirm:true is mandatory. released:true publishes it and cannot be undone through this connector. employeeID:null creates an unassigned shift. No automatic retry; inspect before retrying an uncertain outcome.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "confirm": {
      "type": "boolean",
      "const": true
    },
    "roleID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "start": {
      "type": "string",
      "maxLength": 40
    },
    "end": {
      "type": "string",
      "maxLength": 40
    },
    "employeeID": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9_-]+$",
          "description": "Opaque Workfeed ID from a preceding read; not a UUID."
        },
        {
          "type": "null"
        }
      ]
    },
    "released": {
      "type": "boolean"
    },
    "comment": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "tagIDs": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_-]+$",
        "description": "Opaque Workfeed ID from a preceding read; not a UUID."
      }
    }
  },
  "required": [
    "confirm",
    "roleID",
    "start",
    "end",
    "employeeID",
    "released",
    "comment"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴workfeed_update_shift(id, confirm, expectedUpdateTime, roleID, start, ...)

Update one shift after user review; confirm:true required. Pre-reads current shift, optionally rejects stale expectedUpdateTime, and never changes either original UTC calendar day. Vendor additionally enforces company-date rules. Published shifts cannot be unpublished. No deletes or automatic write retries; inspect uncertain outcomes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "confirm": {
      "type": "boolean",
      "const": true
    },
    "expectedUpdateTime": {
      "type": "string",
      "maxLength": 40
    },
    "roleID": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque Workfeed ID from a preceding read; not a UUID."
    },
    "start": {
      "type": "string",
      "maxLength": 40
    },
    "end": {
      "type": "string",
      "maxLength": 40
    },
    "employeeID": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 128,
          "pattern": "^[A-Za-z0-9_-]+$",
          "description": "Opaque Workfeed ID from a preceding read; not a UUID."
        },
        {
          "type": "null"
        }
      ]
    },
    "released": {
      "type": "boolean"
    },
    "comment": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "tagIDs": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_-]+$",
        "description": "Opaque Workfeed ID from a preceding read; not a UUID."
      }
    }
  },
  "required": [
    "id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada17 herramientas