When I Work MCP by usefulapi

io.usefulapi由 usefulapi.io 發布官方發布者v1.39.1更新於 Nov 14, 2026

Check shifts, time clock entries, time-off requests, swaps and availability, and manage shifts.

發布方自己的服務:Ably MCP by usefulapi

已驗證Streamable HTTP可網頁執行效率與工作流商業與電商

概覽

AI 產生的概覽

針對 When I Work 的託管 MCP 伺服器,讓助理讀取排班、班次、打卡紀錄、休假、換班與可用時間,並可建立或發布班次。

可以做什麼
  • 讀取帳戶、使用者、排班地點與職位
  • 列出並檢視班次,以及可填補空缺班次的使用者
  • 列出打卡紀錄、休假申請與休假類型
  • 列出換班與棄班、可用時間及排班備註
  • 建立、更新、發布與取消發布班次
  • 建立休假申請,並核准、拒絕或修改申請
適用情境
適合在聊天用戶端中管理或查看 When I Work 工作場所:詢問明天誰上班、哪些班次仍空缺、待處理的休假申請,或不必開啟 When I Work 後台就能調整排班。
執行需求
僅需遠端端點,無須本機安裝;以伺服器網址連線並透過 OAuth 登入。首次連線需提供 When I Work 開發者金鑰(W-Key)、電子郵件與密碼,以及選填的工作場所使用者 ID。免費方案每月 50 次工具呼叫,付費方案提高上限。
安裝前請注意
登入頁會收集 When I Work 開發者金鑰、電子郵件與密碼,並由該服務依使用者儲存。寫入類工具會建立、修改、發布或取消發布班次,以及建立或審核休假申請,執行前應先確認。付費方案為每位使用者每月 9 或 39 美元,升級會回傳 Stripe 結帳連結;取消後當期不退款。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 When I Work MCP by usefulapi,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.usefulapi%2Fwhen-i-work/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "when-i-work-by-usefulapi": {
      "type": "http",
      "url": "https://when-i-work.usefulapi.io/mcp"
    }
  }
}

README

When I Work MCP by usefulapi

Use When I Work from Claude, Cursor, or any MCP client — check schedules, shifts, clocked times, time-off requests, shift swaps and availability, and create, publish or update shifts. Hosted, no local install: connect with your own When I Work credentials.

Live endpoint: https://when-i-work.usefulapi.io/mcp · Homepage: https://usefulapi.io/when-i-work

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://when-i-work.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http when-i-work https://when-i-work.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "when-i-work": {      "url": "https://when-i-work.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your When I Work credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/when-i-work/

On first connect you'll provide your When I Work developer key (W-Key), email and password, plus an optional workplace user id. They're validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
wheniwork_get_accountreadGet the account
wheniwork_list_usersreadList users
wheniwork_get_userreadGet one user
wheniwork_list_locationsreadList schedules (locations)
wheniwork_list_positionsreadList positions
wheniwork_list_shiftsreadList shifts
wheniwork_get_shiftreadGet one shift
wheniwork_list_eligible_users_for_shiftreadList users eligible for an open shift
wheniwork_list_timesreadList clocked times (timesheets)
wheniwork_list_time_off_requestsreadList time-off requests
wheniwork_get_time_off_requestreadGet one time-off request
wheniwork_list_time_off_typesreadList time-off types
wheniwork_list_shift_swapsreadList shift swaps and drops
wheniwork_list_availabilityreadList availability
wheniwork_list_annotationsreadList schedule annotations
wheniwork_create_shiftwriteCreate a shift
wheniwork_update_shiftwriteUpdate a shift
wheniwork_publish_shiftswritePublish shifts
wheniwork_unpublish_shiftswriteUnpublish shifts
wheniwork_create_time_off_requestwriteCreate a time-off request
wheniwork_update_time_off_requestwriteApprove, deny or change a time-off request
wheniwork_usage_statusmetaUsage status (free-tier meter)
wheniwork_request_featuremetaRequest a missing feature
wheniwork_upgrademetaUpgrade to Pro or Pro+
wheniwork_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)10,000 tool calls / month
Pro+ (per user)$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run wheniwork_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with wheniwork_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with wheniwork_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by When I Work.

來源:servers/when-i-work/README.md,提交 f22f848

工具

21

wheniwork_get_account

Get the account

Fetch the When I Work account (workplace) the token acts on — company name, plan and settings; for a parent account also its child accounts. A cheap way to confirm the credentials work. When I Work: GET /2/account.

無需輸入參數。

wheniwork_list_users

List users

List the employees, supervisors, managers and admins in the account, optionally limited to some schedules or searched by name/email. Role codes: 1 admin, 2 manager, 3 employee, 5 supervisor. When I Work: GET /2/users.

輸入參數searchlocation_idonly_deletedonly_pendingshow_deletedshow_pending

wheniwork_get_user

Get one user

Fetch one user by id — name, email, role, positions, schedules, wage. When I Work: GET /2/users/{id}.

輸入參數user_id必填

wheniwork_list_locations

List schedules (locations)

List the schedules in the account. The API calls a schedule a "location"; its id is the location_id every shift belongs to. When I Work: GET /2/locations.

輸入參數only_unconfirmed

wheniwork_list_positions

List positions

List the positions (job roles such as Cashier or Dishwasher) in the account. When I Work: GET /2/positions.

輸入參數show_deleted

wheniwork_list_shifts

List shifts

List scheduled shifts in a time window — who works when, where and in which position — optionally including open shifts and unpublished drafts. Answers "who is on on Friday?" and "what open shifts are left?". When I Work: GET /2/shifts.

輸入參數endlimitstartdeleteduser_idlocation_idunpublishedinclude_openall_locationsinclude_swapsinclude_allopeninclude_onlyopen另有 1 個

wheniwork_get_shift

Get one shift

Fetch one shift by id, including its breaks and publish state. When I Work: GET /2/shifts/{id}.

輸入參數shift_id必填include_repeating_shifts_to

wheniwork_list_eligible_users_for_shift

List users eligible for an open shift

Find who could take an open shift — either an existing shift (shift_id) or a hypothetical one (start, end, position_id and location_id all required). When I Work: GET /2/shifts/eligible.

輸入參數endstartshift_idis_sharedlocation_idposition_idinclude_objects

wheniwork_list_times

List clocked times (timesheets)

List clocked time entries — actual hours worked, clock-in/out times, length and approval state. Use only_open to see who is clocked in right now. When I Work: GET /2/times.

輸入參數endstartuser_idonly_openupdated_at

wheniwork_list_time_off_requests

List time-off requests

List time-off requests in a date range, with the requesting users. Status: 0 pending, 1 canceled, 2 accepted, 3 expired, 4 denied. When I Work: GET /2/requests.

輸入參數endpagetypelimitstartmax_idsortbystatususer_idsince_idlocation_idinclude_deleted_users

wheniwork_get_time_off_request

Get one time-off request

Fetch one time-off request by id, with its message thread and users. When I Work: GET /2/requests/{request_id}.

輸入參數request_id必填

wheniwork_list_time_off_types

List time-off types

List the time-off types (e.g. Personal, Sick, Holiday) and whether each allows paid time. Their ids are the type_id for a new request. When I Work: GET /2/requesttypes.

無需輸入參數。

wheniwork_list_shift_swaps

List shift swaps and drops

List shift requests: swaps, drops and alerts, with the shifts and users involved. Status: 0 pending, 1 approved, 2 declined, 3 completed, 4 canceled, 5 expired. Type: 1 swap, 2 drop, 3 alert. start and end must be given together. When I Work: GET /2/swaps.

輸入參數endpagetypelimitstartstatususer_idshift_idopen_only

wheniwork_list_availability

List availability

List availability events — when people said they can or cannot work, including recurring patterns that fall in the window. Defaults to the caller, from now to two weeks out. When I Work: GET /2/availabilityevents.

輸入參數endstartuser_idinclude_all

wheniwork_list_annotations

List schedule annotations

List schedule annotations — announcements, business-closed days and blackout dates when time off is not allowed. Defaults to today through one year out. When I Work: GET /2/annotations.

輸入參數end_datestart_dateno_time_off

wheniwork_create_shift

Create a shift

Create one shift on a schedule — assigned to a user, or open (user_id 0). Created as a draft unless published is true. Undo by editing it or unpublishing. When I Work: POST /2/shifts.

輸入參數colornotessite_iduser_idend_time必填is_sharedpublishedbreak_timestart_time必填location_id必填position_id

wheniwork_update_shift

Update a shift

Change a shift — reassign it, move it, change position or notes. When I Work requires start_time, end_time and location_id on every update, so fetch the shift first and pass them back. This tool never sends a breaks array; When I Work documents that breaks omitted from an update's breaks list are removed, so re-check the shift's breaks afterwards. When I Work: PUT /2/shifts/{id}.

輸入參數colornotessite_iduser_idend_time必填shift_id必填is_sharedpublishedbreak_timestart_time必填location_id必填position_id

wheniwork_publish_shifts

Publish shifts

Publish draft shifts so employees can see them. Publishing does not itself send notifications. Undo with wheniwork_unpublish_shifts. When I Work: POST /2/shifts/publish.

輸入參數ids必填

wheniwork_unpublish_shifts

Unpublish shifts

Return published shifts to draft, hiding them from employees. Undo with wheniwork_publish_shifts. When I Work: POST /2/shifts/unpublish.

輸入參數ids必填

wheniwork_create_time_off_request

Create a time-off request

Create a time-off request for a user (default the calling user). It starts pending; cancel it with wheniwork_update_time_off_request (status 1). Get type ids from wheniwork_list_time_off_types. When I Work: POST /2/requests.

輸入參數paidhourstype_iduser_idend_time必填start_time必填

wheniwork_update_time_off_request

Approve, deny or change a time-off request

Change a time-off request: set its status (0 pending, 1 canceled, 2 accepted/approved, 3 expired, 4 denied) and/or its dates or hours. Reversible — set the status back. start_time and end_time must be given together. When I Work: PUT /2/requests/{request_id}.

輸入參數hoursstatusend_timerequest_id必填start_time

版本歷史

24
  1. v1.39.1最新Nov 13, 2026
  2. v1.38.0Nov 12, 2026
  3. v1.37.3Nov 11, 2026
  4. v1.36.3Nov 7, 2026
  5. v1.35.3Nov 5, 2026
  6. v1.35.2Nov 5, 2026
  7. v1.35.1Nov 4, 2026
  8. v1.35.0Nov 3, 2026
  9. v1.34.1Nov 3, 2026
  10. v1.33.0Nov 1, 2026
  11. v1.31.0Oct 31, 2026
  12. v1.30.0Oct 31, 2026
  13. v1.29.2Oct 30, 2026
  14. v1.29.0Oct 30, 2026
  15. v1.24.0Oct 26, 2026
  16. v1.21.3Oct 25, 2026
  17. v1.21.0Oct 25, 2026
  18. v1.20.0Oct 24, 2026
  19. v1.17.0Oct 23, 2026
  20. v1.16.4Oct 22, 2026
  21. v1.16.3Oct 21, 2026
  22. v1.11.1Oct 9, 2026
  23. v1.10.0Oct 9, 2026
  24. v1.0.0Sep 30, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Usefulapi 整合