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 集成