Workfeed MCP by usefulapi
Review staffing, availability and leave; create or update shifts with confirmation.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin workfeed_list_salary_supplements
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"workfeed": {
"url": "https://workfeed.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://workfeed.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (17)
🟢workfeed_list_departments
Department names and IDs. GET /departments. Unpaginated vendor response, bounded to5000rows and2MiB here.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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%.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}Community
Nachweis