Skip to main content
Glama

List shift swaps and drops

wheniwork_list_shift_swaps
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNoEnd of the shift window (give with start). Date-time, e.g. 2026-10-05T08:00:00-05:00 (When I Work's own examples also use RFC 2822, e.g. "Mon, 05 Oct 2026 08:00:00 -0500").
pageNoPage of results to load (the response says whether there are `more`).
typeNoOne or more types.
limitNoMaximum number of results.
startNoStart of the shift window (give with end). Date-time, e.g. 2026-10-05T08:00:00-05:00 (When I Work's own examples also use RFC 2822, e.g. "Mon, 05 Oct 2026 08:00:00 -0500").
statusNoOne or more statuses.
user_idNoOne or more user ids.
shift_idNoOne or more shift ids.
open_onlyNoOnly open swaps.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the description's burden is lighter. It usefully discloses the start/end pairing constraint and the upstream endpoint (GET /2/swaps), but says nothing about result ordering, pagination behavior beyond what the schema notes, or the shape of the returned records beyond 'shifts and users involved'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then the code tables and the start/end constraint in tight sentences. Dense but every sentence carries information; the only mild cost is that the enumeration lists read as a run-on rather than structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter, zero-required list tool with no output schema, the description covers what is listed, the filter vocabularies, and the one cross-parameter constraint. What remains thin — default time window behavior and pagination/result-shape detail — is either in the schema or minor for a read-only listing call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: it decodes the integer status values (0 pending through 5 expired) and type values (1 swap, 2 drop, 3 alert), which the schema only labels generically as 'One or more statuses/types'. It also reinforces the start/end coupling constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list shift requests) and immediately narrows scope to the three record kinds — swaps, drops, alerts — plus the related shifts and users. This clearly separates it from siblings like wheniwork_list_shifts and wheniwork_list_time_off_requests without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer that this is the tool for swap/drop/alert records, and the status/type enumerations hint at filtering. There is no explicit when-to-use versus wheniwork_list_shifts or wheniwork_get_shift, and no stated prerequisites (e.g. required permissions or whether a window is mandatory in practice).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.