Skip to main content
Glama
swsd-mcp

swsd-mcp

by mikimatsub

swsd_change_calendar

Read-onlyIdempotent

Display a UTC change and release calendar with shared-CI/group scheduling conflicts, filtering scanned SWSD records by date, state, assignee, group, and name.

Instructions

Show a UTC change/release calendar widget and shared-CI/group scheduling conflicts. Fetches up to max_pages per kind (default 3, maximum 10); ONLY page/per_page are sent to SWSD. All date, state, assignee, group and name-search filters are client-side, over scanned rows only. Defaults to today at UTC midnight through 30 days later. Windows use overlap, with an exclusive end; missing, invalid or non-positive planned ends use start + 1 hour. Rows without a valid planned start are excluded and counted as unscheduled. Conflicts cover only returned items, not the whole tenant. At most 200 conflict details are returned; conflict_count counts all pairs and conflicts_truncated flags omitted details. scan reports pages_fetched per kind, rows_scanned, unscheduled and truncated; when truncated is true, unscanned records may contain more matches or conflicts. No server-side search or date ordering is assumed.

Input Schema

NameRequiredDescriptionDefault
toNoExclusive window end: ISO date (UTC midnight) or datetime with timezone. Defaults to 30 days after from.
fromNoInclusive window start: ISO date (UTC midnight) or datetime with timezone. Defaults to today at UTC midnight.
kindsNoRecord kinds to scan; duplicates are ignored.
queryNoClient-side case-insensitive substring search on name only.
statesNoClient-side state inclusion (case-insensitive).
per_pageNo
max_pagesNoMaximum pages fetched per kind; the calendar may be incomplete.
state_is_notNoClient-side state exclusion (case-insensitive).
assignee_emailNoClient-side assignee email equality (case-insensitive).
group_assignee_idNoClient-side group ID equality.

Output Schema

NameRequiredDescriptionDefault
daysYes
scanYes
itemsYes
windowYes
conflictsYesAt most 200 conflict details between returned items.
conflict_countYesTotal conflicting pairs between returned items, including omitted details.
applied_filtersYes
conflicts_truncatedYesTrue when some conflict details are omitted; aggregate and per-item counts remain complete for returned items.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.3.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds far more: only page/per_page reach the server, filters are client-side over scanned rows, rows missing a valid planned start are excluded and counted as unscheduled, conflict details are capped at 200 while conflict_count counts all pairs, and truncated=true means unscanned records may hold more matches. That is exactly the kind of hidden-cost disclosure an agent needs.

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?

Purpose is front-loaded in sentence one, and subsequent sentences are dense with operational facts rather than filler. The telegraphic style ('Overlap, with an exclusive end', 'scan reports pages_fetched per kind') is compact but occasionally terse enough to require a second read.

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

Completeness5/5

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

For a 10-parameter, zero-required scanning tool with an output schema, this covers the risky edges: timezone and default window, overlap semantics, invalid-data fallbacks, truncation flags, and the scan diagnostic block. An agent could call it correctly and interpret the limits of the answer without opening anything else.

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 already 90%, so the baseline is 3, but the description earns above that by explaining which parameters are actually transmitted to SWSD versus evaluated locally — a distinction absent from the schema and material to interpreting quality of results. It also restates the max_pages default/maximum and the exclusive-end overlap rule, though it does not clarify per_page's effect on scan completeness.

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?

First sentence names a specific verb and resource ('Show a UTC change/release calendar widget') plus a secondary capability ('shared-CI/group scheduling conflicts'). No sibling tool in the list produces a calendar or conflict view, so the agent can tell instantly that this is the only option for scheduled-change visibility.

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

Usage Guidelines4/5

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

The description establishes the operating envelope: page-limited scanning, client-side filtering, defaults of today-to-plus-30-days, and the caveat that conflicts cover only returned items. What it lacks is an explicit 'use this instead of X when…' routing statement, though no sibling overlaps enough to make that a serious gap.

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