Skip to main content
Glama
cotletdev

Pirate Ship MCP Server

Create shipment

create_shipment

Creates an unpaid draft label for one package and returns USPS and UPS rates; no charge until you buy a rate.

Instructions

Unpaid draft label for one package with every rate; buy it with buy_label.

Pirate Ship's Single Shipment form up to Get Rates: makes a draft batch for one package from your ship-from address to the recipient and returns its rates (USPS and UPS services with your price, retail price, estimated delivery, possible ship dates). Nothing is charged; buy_label buys one of the rates, delete_batch drops the draft. Give the package as packaging, weight_oz and size, or package_preset_id of a saved package. When Pirate Ship suggests a corrected address and address_correction is ask, the answer is status address_correction with the suggestion and no draft: call again with accept or skip.

Input Schema

NameRequiredDescriptionDefault
toYes
width_inNo
height_inNo
length_inNo
packagingNoParcel
signatureNonone
weight_ozNoWeight in ounces.
ship_from_idNoShip-from address id; default: the account's default.
rubber_stamp_1NoExtra text printed on the label.
rubber_stamp_2No
insured_value_usdNo
package_preset_idNoA saved package: its type, size and weight replace the fields above.
address_correctionNoWhen Pirate Ship suggests a corrected address: ask returns the suggestion without a draft, accept ships to the suggestion, skip keeps the address as given.ask

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only mark this as a non-read-only, non-destructive, open-world, non-idempotent call; the description adds the material economics ('Nothing is charged'), the draft-object lifecycle (buy_label / delete_batch), and a non-obvious edge case where the call returns status address_correction and no draft at all. It stops short of warning that each call produces a new draft batch, which matters for the declared idempotentHint=false.

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 identity ('Unpaid draft label... buy it with buy_label') and then fills in the rate payload, packaging alternatives and the correction branch. Dense but every sentence carries distinct information; the 'Pirate Ship's Single Shipment form up to Get Rates' framing is slightly wordy but earns its place by anchoring the workflow.

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

Completeness3/5

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

For a 13-parameter mutation with a nested recipient object, no output schema and 38% schema coverage, the description covers the happy path and the address-correction detour well but says nothing about the shape of the returned rate list or how the remaining optional parameters (signature, insurance, rubber stamps) affect the draft. Adequate to call correctly, not complete.

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

Parameters3/5

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

Schema description coverage is only 38% across 13 parameters, and the description compensates for some of it: it explains the packaging/weight_oz/size alternative to package_preset_id, the ship-from default, and the address_correction semantics. But signature, insured_value_usd, rubber_stamp_1/2, the length/width/height relationship, and the nested `to` fields are left entirely to an under-documented schema.

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?

The first sentence gives a specific verb+resource+state ('Unpaid draft label for one package with every rate') and immediately names the follow-up tool (buy_label). The second sentence pins it to a concrete workflow ('Single Shipment form up to Get Rates') and states what comes back (USPS/UPS services with your price, retail price, delivery estimate, ship dates). An agent can separate this from get_rates, buy_label and delete_batch without opening any schema.

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

Usage Guidelines5/5

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

Explicitly states when this tool is the right one ('up to Get Rates'), what it does not do ('Nothing is charged'), and which siblings handle the next steps ('buy_label buys one of the rates, delete_batch drops the draft'). It also spells out the address-correction branch: call with ask to get a suggestion, then re-call with accept or skip. That is a full when/when-not/alternatives map.

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