starshipit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port when TRANSPORT=http | 3000 |
| MCP_HOST | No | HTTP bind address when TRANSPORT=http | 127.0.0.1 |
| TRANSPORT | No | Transport mode: stdio or http | stdio |
| STARSHIPIT_API_KEY | Yes | StarShipIt API key (found in StarShipIt under Settings > Settings > API) | |
| STARSHIPIT_SUBSCRIPTION_KEY | Yes | StarShipIt subscription key (found in StarShipIt Settings > API) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| starshipit_list_unshipped_ordersA | List unshipped orders from StarShipIt. Returns orders that have been imported but not yet shipped. When to use: Call this to see your pending fulfilment queue. It is read-only and safe to call multiple times. Parameters:
Returns: List of Order objects including destination, items, packages, and carrier assignment. The response includes a Example response (JSON): Errors: 401 if API keys are missing or invalid; 429 if rate-limited. |
| starshipit_list_printed_ordersA | List printed (label generated) orders from StarShipIt. Use this to review orders where labels have been printed but may not yet be manifested. When to use: Use to audit recently-printed shipments or find orders still awaiting manifesting before a carrier pickup. Parameters:
Returns: List of Shipment/Order objects including tracking numbers and carrier info. Includes Errors: 401 if API keys invalid; 400 if |
| starshipit_list_shipped_ordersA | List shipped orders from StarShipIt. Returns orders that have been manifested and dispatched to the carrier. When to use: Use to check dispatch history or to feed downstream tracking workflows. Parameters:
Returns: List of shipped Order objects with tracking numbers and carrier details. Includes Errors: 401 if API keys invalid. |
| starshipit_list_delivered_ordersA | List delivered orders from StarShipIt. Returns orders where the carrier has confirmed delivery. When to use: Use for post-delivery reporting, customer-service lookups, or reconciliation workflows. Parameters:
Returns: List of delivered Order objects including carrier and destination details. Errors: 401 if API keys invalid. |
| starshipit_get_orders_summaryA | Get a summary of orders filtered by status from StarShipIt. Useful for dashboards and reporting. When to use: Use when you need a status-specific count or listing for reporting, not fulfilment operations. Supports sorting and pagination. Parameters:
Returns: Summary list of orders for the given status. Includes Errors: 400 if |
| starshipit_search_ordersA | Search orders in StarShipIt by a free-text phrase. Searches across order numbers, references, recipient names, tracking numbers, and other indexed fields. When to use: Use when you need to find a specific order but don't have the exact order_id. Supports partial matches. Parameters:
Returns: List of matching Order objects. Includes Errors: 400 if |
| starshipit_get_orderA | Retrieve a single order from StarShipIt by its internal ID or merchant order number. At least one of When to use: Use when you need the full detail of a specific order — destination, items, packages, carrier assignment, and metadata. Parameters:
At least one of Returns: Full Order object. Example response (JSON): Errors: 400 if neither identifier provided; 404 if order not found; 401 if API keys invalid. |
| starshipit_create_orderA | Create a new order in StarShipIt. The order will appear in the unshipped queue ready for label generation. When to use: Call this when a new order has been placed and needs to be imported into StarShipIt for fulfilment. Parameters (all under
Returns: Created Order object with assigned Errors: 400 if required fields missing or invalid; 409 if order_number already exists; 401 if API keys invalid. |
| starshipit_create_orders_bulkA | Import multiple orders into StarShipIt in a single API call. Use this for batch fulfilment import from external systems. When to use: Use instead of calling Parameters:
Returns: Summary of created orders including any per-order failures with error details. Errors: 400 if any order payload is malformed; 409 if any order number already exists; 401 if API keys invalid. |
| starshipit_update_orderA | Update an existing unshipped order in StarShipIt. Only fields provided in the payload will be updated; others remain unchanged (partial patch semantics). When to use: Use to correct order data, change carrier or shipping method, update the destination address, or add/replace items/packages before a label is printed. Parameters (all under
Returns: Updated Order object. Errors: 400 if payload is invalid; 404 if order not found; 409 if order is already shipped (cannot update shipped orders); 401 if API keys invalid. |
| starshipit_update_orders_bulkA | Update multiple existing orders in StarShipIt in a single API call. Each entry must include When to use: Use to patch many orders at once — e.g. re-assigning carriers, correcting addresses in bulk, or adding packages to a batch of orders. Parameters:
Returns: Summary of update results including any per-order errors. Errors: 400 if any payload is malformed; 404 if any order not found; 401 if API keys invalid. |
| starshipit_batch_update_ordersA | Apply the same carrier or shipping service product to a batch of orders in StarShipIt. Use this to reassign carrier/service for multiple orders in a single call. When to use: Use when you want to reassign the same carrier or product code across many orders at once — e.g. after a carrier rate change or when bulk-selecting a service level in your fulfilment workflow. Parameters:
At least one of Returns: Confirmation of how many orders were updated. Errors: 400 if |
| starshipit_delete_orderA | Permanently delete an order from StarShipIt. This action is irreversible — the order will be removed from the system entirely. When to use: Only use on unshipped orders that were created in error and must be removed. For orders you want to retain but hide from the queue, use Parameters:
Returns: Confirmation message on success. Warning: This is a destructive, permanent action. The order cannot be recovered after deletion. Errors: 404 if order not found; 409 if the order has already been shipped (cannot delete shipped orders — use archive instead); 401 if API keys invalid. |
| starshipit_archive_orderA | Archive an order in StarShipIt. Archived orders are hidden from the main fulfilment queue but remain in the system and can be restored at any time. When to use: Use this instead of deleting when you want to remove an order from the active queue while retaining its record for auditing, reporting, or potential restoration. Parameters:
Returns: Confirmation message on success. Errors: 404 if order not found; 401 if API keys invalid. |
| starshipit_restore_orderA | Restore a previously archived order in StarShipIt, returning it to the active fulfilment queue. When to use: Use to undo an Parameters:
Returns: Confirmation message on success. Errors: 404 if order not found or not currently archived; 401 if API keys invalid. |
| starshipit_merge_ordersA | Merge one or more child orders into a parent order in StarShipIt. After merging, the child orders are absorbed into the parent and the combined shipment will be dispatched as a single package. When to use: Use when a customer has placed multiple orders that should ship together in one box. Use Parameters:
Returns: Confirmation of the merged order. Warning: This is a destructive operation — child orders will no longer exist as independent orders after the merge. Errors: 400 if |
| starshipit_get_suggested_mergesA | Get a list of orders that StarShipIt suggests can be merged — typically orders from the same customer with the same destination address. Use this before calling When to use: Run this during order processing to find consolidation opportunities that reduce shipping costs and packaging. Parameters:
Returns: List of mergeable order groups. Each group identifies a suggested parent order and associated child orders. Includes Errors: 401 if API keys invalid. |
| starshipit_assign_ordersA | Reassign orders between StarShipIt accounts using API keys. Use this to move orders from one StarShipIt sub-account or warehouse account to another. When to use: Use in multi-account or multi-warehouse setups where orders need to be routed to a specific fulfilment account after initial import. Parameters:
Returns: Confirmation of how many orders were reassigned. Errors: 400 if any entry is malformed; 401 if any API key is invalid; 403 if you lack permission to access the source or destination account; 404 if any order not found. |
| starshipit_print_labelA | Print (or reprint) a shipping label for a single order in StarShipIt. When to use: Use this tool when you need to generate a carrier label for one specific order. If you are printing labels for multiple orders at once, prefer Parameters:
Returns: An object containing label URLs or base64-encoded label data for the order, along with the assigned tracking number, carrier, and service. On error, returns a descriptive error message. Example success response: Error cases: 400 if the order ID is invalid or required order data is missing; 404 if the order does not exist; 409 if a label has already been printed and |
| starshipit_print_labelsA | Print shipping labels for multiple orders at once in StarShipIt. When to use: Use this tool when you need to generate carrier labels for two or more orders in a single API call. For a single order, Parameters:
Returns: An array of label results — one entry per order — each containing the label URL or base64-encoded label data, the assigned tracking number, carrier, and service. Individual orders that fail will include an Example success response: Error cases: 400 if any order IDs are invalid or missing required order data; 404 if one or more orders do not exist; 409 if labels already exist and |
| starshipit_print_packing_slipsA | Generate packing slip documents for one or more orders in StarShipIt. When to use: Use this tool when warehouse staff need packing slips to pick, pack, and verify order contents before shipment. Packing slips do not require a label to have been printed first. Parameters:
Returns: A URL or base64-encoded PDF containing the packing slips for all specified orders. Multiple orders are typically combined into a single PDF document. Example success response: Error cases: 400 if order IDs are missing or invalid; 404 if one or more specified orders do not exist. |
| starshipit_manifest_shipmentA | Manifest (finalise/close) shipments by order IDs in StarShipIt. When to use: Use this tool to finalise and commit shipments to the carrier. Manifesting is typically done once at end-of-day or when a batch of orders is ready for carrier pickup. Once manifested, shipments cannot be easily reversed — ensure labels are correct before manifesting. Important: This operation is idempotent — manifesting already-manifested orders will not create duplicate manifests. Parameters:
Returns: The manifest document as a base64 PDF, with its label type. Example success response: Error cases: 400 if order IDs are invalid or orders do not have labels printed; 404 if orders do not exist; 409 if orders are in an incompatible state for manifesting. |
| starshipit_clone_shipmentA | Clone an existing shipment in StarShipIt, optionally converting it to a return shipment. When to use: Use this tool to duplicate an existing order — for example, to resend the same goods to the same recipient, or to create a return shipment (pre-paid return label) based on an outbound order. The cloned order is created in a pending/unshipped state and will need a label printed separately. Parameters:
Returns: The newly created order record including its new order ID, order number, and carrier details. Example success response: Error cases: 400 if the order ID is invalid; 404 if the source order does not exist; 409 if the order cannot be cloned in its current state. |
| starshipit_replace_shipmentA | Replace an existing shipment in StarShipIt — voids the previous label and creates a new one. When to use: Use this tool when an existing label must be voided and replaced, such as when order details have changed after a label was printed (address correction, weight change, carrier change). This is a destructive operation: the previous label is voided with the carrier. Warning: This action voids the carrier label for the existing shipment. If the package has already been dispatched with that label, do NOT use this tool. Coordinate with the carrier directly in that case. Parameters:
Returns: The updated order record including the new label URL, new tracking number, carrier, and service details. Example success response: Error cases: 400 if the order ID is invalid; 404 if the order does not exist; 409 if the order is manifested or already dispatched and cannot be replaced. |
| starshipit_track_shipmentA | Track a shipment by tracking number using StarShipIt. When to use: Use this tool to retrieve the current status, tracking events and carrier details for any shipment tracked through StarShipIt. This works for shipments created in StarShipIt as well as tracking-only orders imported via Parameters:
Returns: Tracking status, order number and status, carrier name, service, shipment date, last update, carrier tracking URL, and a list of tracking events (date, status, details). Example success response (markdown format): Error cases: 404 if the tracking number is not found in StarShipIt; 400 if the tracking number format is invalid. |
| starshipit_create_tracking_orderA | Create tracking-only orders in StarShipIt for shipments dispatched outside the platform. When to use: Use this tool when you have shipments that were booked or dispatched through a carrier directly (not via StarShipIt) and you want to import them into StarShipIt to enable centralised tracking, notifications, and reporting. At least one of Parameters:
Note: At least one of Returns: An array of created order records, each with the new StarShipIt order ID, order number, tracking number, and carrier. Individual entries that fail will include an Example success response: Error cases: 400 if carrier or tracking_number is missing for any entry; 409 if a tracking number already exists in the platform. |
| starshipit_get_ratesA | Get available shipping rates (quotes) for a shipment between a sender and destination address with the given package dimensions. When to use: Call this before creating an order when you need to compare services by price. It is read-only and safe to call multiple times. Required parameters:
Returns: An array of rate objects, each with:
Errors:
Example request body: |
| starshipit_get_delivery_servicesA | Get available delivery services (carrier + service options) for a specific order or a general route. Returns service codes that are directly usable when creating or updating orders. When to use: Prefer this over
Parameters:
Returns: An array of service objects, each with:
Errors:
Example — get services for an existing order: Example — get services for a new route: |
| starshipit_list_addressesA | List saved addresses from the StarShipIt address book, with optional text filtering and pagination. When to use: Use this to:
Parameters:
Returns: An array of address objects, each containing:
Pagination: If Errors:
|
| starshipit_add_addressA | Add a new address entry to the StarShipIt address book for reuse in future orders. When to use: Use this when a contact's details need to be saved for repeated use — e.g. a frequent supplier, warehouse, or customer. Once saved, addresses can be retrieved via Required fields:
Optional fields:
Returns: The newly created address object including its assigned Errors:
Example: |
| starshipit_update_addressA | Update an existing address book entry by its ID. When to use: Call this when a saved address needs to be corrected or updated — e.g. a contact has moved, changed phone number, or you need to add delivery instructions. Use Parameters:
Required fields inside
Optional fields inside
Returns: The updated address object. Errors:
Example: |
| starshipit_delete_addressesA | Delete one or more addresses from the StarShipIt address book by their IDs. This action is permanent and cannot be undone. When to use: Call this to remove outdated, duplicate, or unwanted address entries. You can delete multiple addresses in a single call by passing an array of IDs. CAUTION: Deletion is irreversible. Verify the IDs with Parameters:
Returns: A success confirmation. If any ID does not exist, the API may still return success for the IDs that were found. Errors:
Example — delete two addresses: Workflow tip: Always call |
| starshipit_list_manifestsA | List all manifests in your StarShipIt account. Manifests group shipments that have been closed/submitted to a carrier. A manifest is created when you "manifest" a set of shipments, signalling to the carrier that they are ready for collection. Returns: Manifest ID, name, date, carrier ID, and the number of consignments and articles in each manifest. Example response fields:
Pagination: Use Error cases:
Use this tool when:
|
| starshipit_get_manifest_filesA | Retrieve manifest documents (PDF, XML, etc.) as base64 file content. Each manifest can have one or more associated document files that you submit to the carrier at pickup. The markdown format lists file names and sizes. The full base64 content is always in structuredContent; the JSON text output is capped at 25000 characters. Query parameters:
Returns:
Error cases:
Use this tool when:
|
| starshipit_manifest_by_trackingA | Manifest (close/submit) specific shipments to the carrier by their tracking numbers or order numbers. This closes the selected shipments and submits them to the carrier, creating a manifest document. After manifesting, shipments are locked and can no longer be edited. Body parameters:
Returns:
Error cases:
Use this tool when:
|
| starshipit_manifest_by_carrierA | Manifest ALL unmanifested shipments for a specific carrier in one operation. This is a bulk operation that closes every shipment that is ready-to-manifest for the given carrier and creates a single manifest document for them. Use this at end-of-day or before carrier pickup when you want to submit everything at once. Body parameters:
Returns:
Error cases:
Use this tool when:
|
| starshipit_list_productsA | List or search products in the StarShipIt product catalogue. Products are pre-configured items used to auto-populate order line items when creating orders. Each product can carry customs details (HS code, country of origin, customs description) and physical dimensions for accurate rate calculations. Query parameters:
Note: This API uses Returns per product:
Example return fields: Error cases:
Use this tool when:
|
| starshipit_add_productA | Add a new product to the StarShipIt product catalogue. Products in the catalogue are used to auto-populate line item details (weight, dimensions, customs info) when creating orders. Adding a product here means it can be matched by SKU when orders are imported. Required fields (within the
Optional fields (all within the
Returns: The created product object including its new Error cases:
Use this tool when:
|
| starshipit_update_productA | Update an existing product in the StarShipIt product catalogue by its numeric ID. Use this to correct product details, update dimensions/weights, add customs codes, or change any other product attribute. The product Required top-level fields:
Required
Optional Returns: The updated product object. Error cases:
Use this tool when:
|
| starshipit_delete_productsA | Delete one or more products from the StarShipIt product catalogue. This operation is irreversible. Two modes:
Parameters:
Returns:
Error cases:
Use this tool when:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 40 tools
Most tools target clearly different resources or actions, but several clusters overlap: the status-specific order list tools are largely redundant with get_orders_summary, the three manifest tools all finalise shipments through different selectors, and update_orders_bulk vs batch_update_orders are easy to confuse. Descriptions help differentiate them, but the agent still faces meaningful misselection risk.
Almost all tools use the same starshipit_ prefix with snake_case verb_noun naming, which is predictable and readable. Minor deviations exist around singular/plural forms and verb choice, such as print_label vs print_labels, add_address/add_product vs create_order, and update_orders_bulk vs batch_update_orders.
The 40-tool surface is large for a single MCP server, even though StarShipIt covers several shipping subdomains. Several tools could be consolidated, especially status-specific order lists, bulk update variants, and multiple manifest entry points, so the count feels heavy rather than tightly scoped.
The surface covers the core fulfilment lifecycle well: order CRUD and bulk operations, labels, packing slips, manifests, addresses, products, rates/services, tracking, merging, cloning, and replacing shipments. Minor gaps remain, such as an explicit void-label-only operation and richer carrier/account configuration, but agents can work around most needs.