Workfeed MCP by usefulapi

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

我該用這個嗎

品質與安全性

A
說明品質
99%
結構描述完整度
72%
命名品質
79%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(1)

  • LOWTool 'workfeed_list_salary_supplements' name length outside 3-30 range在 workfeed_list_salary_supplements 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,812Token(工具定義)
~1.1 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.20%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

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

遠端端點

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

它能做什麼

工具清單

工具(17)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢workfeed_list_departments

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

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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%.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本17 個工具