Skip to main content
Glama
cotletdev

Pirate Ship MCP Server

Export shipments

export_shipments
Read-onlyIdempotent

Download a CSV of shipment labels with all report columns, filtered by status, carrier, dates, batch, tracking, or search; returns a link when matches exist.

Instructions

A CSV of the shipments report with every column, as a download link.

Builds the same spreadsheet as the Export button of Reports, Shipments: one row per label with every column (recipient and address, tracking, carrier and service, cost, package, batch, ship-from, order id, rubber stamps). Takes the filters of list_shipments. Returns a link to the CSV; a filter with no matching labels returns empty true and no link. Large exports can take up to a minute.

Input Schema

NameRequiredDescriptionDefault
sortNonewest
batchNoBatch titles.
searchNoFree text, as in the report's search box.
statusNoLabel status as the report shows it, e.g. Printed, Refunded.
carrierNoUSPS or UPS.
to_dateNoLast day, YYYY-MM-DD, included.
from_dateNoFirst day, YYYY-MM-DD, in your timezone.
tracking_statusNoTracking status as the report shows it, e.g. Delivered, In Transit.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, and the description adds real behavioral value on top: the return contract (a link), the empty-result behavior (empty true and no link), and the latency warning that large exports can take up to a minute. Those are exactly the traits an agent needs before committing to the call.

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

Conciseness5/5

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

Front-loaded with the output artifact, then column composition, then filter semantics, then edge cases and latency. Every sentence carries information; nothing is restated from the schema or annotations.

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?

There is no output schema, and the description compensates fully by describing the return shape (link or empty), the failure/degenerate case, and the timeout expectation. Combined with 88% schema coverage for the 8 optional filters, an agent has everything needed to call this correctly.

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 88%, so the baseline is 3; the description earns an extra point by declaring that the entire filter set is inherited from list_shipments, which tells the agent the parameters behave identically to a sibling tool rather than being export-specific. It still does not add format hints for sort or date handling beyond what the schema documents.

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 (export), a specific artifact (CSV of the shipments report with every column) and the delivery form (download link). It anchors the tool to a known UI surface (Export button of Reports, Shipments) and enumerates the columns, so an agent can tell it apart from list_shipments and export_report without opening 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 Guidelines4/5

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

"Takes the filters of list_shipments" gives clear context for when this is the right call (same filtering, file output instead of a JSON list). It does not explicitly say when to prefer list_shipments or export_report instead, so the exclusion side is left to inference.

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