Skip to main content
Glama

Server Details

Find, size, price and order packaging: boxes, mailers, poly bags, tape. Live price and stock.

Ownership verified
Status
Healthy
Uptime
99.9% over 61 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
Packrift/packrift-mcp
GitHub Stars
1
Server Listing
Packrift MCP Server

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation4/5

Each tool targets a distinct action: search, product detail, item-based packaging recommendation, checkout link, shipping estimate, and bulk quote. The main risk is overlap between search_products, find_packaging_for_item, and get_product, but the descriptions explicitly state when to use each, so boundaries are clear.

Naming Consistency5/5

All six tools use a consistent snake_case verb_noun pattern (create_cart_url, find_packaging_for_item, get_bulk_quote_link, get_product, get_shipping_estimate, search_products). Verbs are predictable and aligned to the action performed.

Tool Count5/5

Six tools is well-scoped for a pre-sales packaging commerce helper. Each tool covers a distinct step (search, detail, fit-finding, quote, cart, shipping) with no redundant entries.

Completeness4/5

The surface covers the key pre-purchase lifecycle: discovery, detail lookup, fit recommendation, cost estimation, checkout link creation, and bulk/custom quoting. Minor gaps exist around post-order concerns (order status, tracking) and tax-inclusive totals, but these fall outside the apparent pre-sales scope.

Available Tools

6 tools
create_cart_urlCreate Packrift checkout linkA
Read-onlyIdempotent
Inspect

Create a checkout link on packrift.com for items the buyer has chosen. Give each item as SKU and quantity (number of packs); up to 25 lines. The link opens packrift.com checkout with those items and automatic volume discounts applied; the buyer adds their address and pays there. Returns the subtotal after volume discounts. This tool never places an order or charges anyone. Call it only after the buyer confirms the items and quantities.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes
discount_codeNoOptional discount code the buyer has.
response_formatNoconcise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
linesNo
cart_urlNo
checkout_urlNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotent/non-destructive, and the description adds real context beyond them: the 25-line cap, that volume discounts are applied automatically, that the buyer supplies address and pays on the site, and what is returned (subtotal after discounts). This is exactly the extra behavioral detail annotations cannot carry.

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?

Four tightly packed sentences with zero filler, and the core action plus item format are front-loaded ahead of the safety caveat and precondition. Nothing can be removed without losing information an agent needs.

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?

An output schema exists, so return values need not be explained, yet the description still names the returned subtotal. Preconditions, hard limits, side-effect boundaries, and the buyer-side flow are all covered for a single-required-parameter tool.

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 coverage is 67%, a middling level. The description usefully re-frames items as SKU + quantity in packs and repeats the 25-line limit, but says nothing about the optional discount_code or the response_format enum's concise/detailed tradeoff beyond what the schema already 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 and resource ("Create a checkout link on packrift.com for items the buyer has chosen") and immediately scopes it as a link-generation step, not an order. An agent can tell this apart from siblings like get_bulk_quote_link or get_shipping_estimate without opening schemas.

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?

Gives an explicit precondition: "Call it only after the buyer confirms the items and quantities," plus a clear non-goal ("never places an order or charges anyone"). It does not name alternative tools for the quote/estimate paths, so it falls short of a full when/when-not/alternatives treatment.

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

find_packaging_for_itemFind packaging that fits an itemA
Read-onlyIdempotent
Inspect

Find the right Packrift box or mailer for an item the buyer ships. Give the item's length, width and height in inches, its weight, and what it is (for example "ceramic mug", "t-shirt", "hardcover book", "laptop"). Applies cushioning space by item type (2 in per side for fragile items), checks box strength against the weight, and compares billable shipping weight (UPS/FedEx and USPS dimensional weight). Returns up to 5 in-stock options with inside size, fit, strength, live price and a product link. Use search_products instead when the buyer already knows the packaging size they want.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of options to return.
use_caseNoWhat the item is or how it ships, in plain words: "fragile glass jar", "folded hoodie", "paperback book", "electronics", "heavy auto parts". Free text is fine.
packagingNoLimit results to boxes or mailers.any
item_depth_inYesItem height or depth in inches.
item_width_inYesItem width in inches.
item_length_inYesItem length in inches.
item_weight_lbNoItem weight in pounds. Use your best estimate; defaults to 1.
response_formatNoconcise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
adviceNo
resultsNo
quote_urlNo
required_inside_inNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare this as a read-only, idempotent, non-destructive, non-open-world operation, and the description adds substantial behavioral context beyond that: cushioning logic by item type (2 in/side for fragile), strength-vs-weight checks, dimensional billable weight comparison, and an 'up to 5 in-stock options' cap. This goes well past what the annotations convey.

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?

Four sentences, all front-loaded: purpose, required inputs, internal behavior, then the sibling exclusion and return shape. No filler; each sentence adds decision-relevant information.

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?

An output schema exists, yet the description still summarizes the return shape (inside size, fit, strength, live price, product link) and the option cap. Combined with the rich schema and annotations, nothing an agent needs to call this correctly is missing.

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 baseline is 3, but the description adds meaning: units for dimensions and weight (inches, pounds), that weight defaults to an estimate, and examples of plain-language use_case values like 'ceramic mug' and 'laptop'. It supports rather than duplicates the 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?

States a specific verb and resource ('find the right Packrift box or mailer for an item') and scopes it to the buyer's shipping use case. It is clearly distinguishable from generic siblings like search_products or get_product.

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 names the alternative and the condition that selects it: 'Use search_products instead when the buyer already knows the packaging size they want.' It also states the required inputs, so the agent knows what must be gathered before calling.

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

get_productGet Packrift product detailsA
Read-onlyIdempotent
Inspect

Get one Packrift product by SKU (or product handle): specs such as inside size, material, strength and pack count, live price and price per unit, stock, whether a quantity can ship now, volume pricing, nearby sizes and the product link. Use after search_products or find_packaging_for_item when the buyer wants more detail before choosing.

ParametersJSON Schema
NameRequiredDescriptionDefault
skuNoPackrift SKU, e.g. "1066".
handleNoProduct handle from a product URL, if you have it instead of a SKU.
quantityNoOptional number of packs the buyer wants, to check it can ship now.
response_formatNoconcise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
skuNo
urlNo
specsNo
titleNo
nearby_sizesNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds useful behavioral context: it returns live price, live stock, ship-now feasibility for a given quantity, and volume pricing. It does not cover failure behavior (e.g., unknown SKU, or neither identifier supplied).

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?

Two sentences, front-loaded with the identifier and the payoff, with the routing guidance second. The long field enumeration in sentence one is dense but all of it is informative rather than filler.

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?

An output schema exists, so return values need not be explained, yet the description summarizes them helpfully and routes the agent correctly. The one remaining gap is that zero parameters are required, and the description never says what to do if neither sku nor handle is available.

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 meaning beyond the schema: it frames sku/handle as alternatives, explains that quantity exists to check whether that amount can ship now, and notes the product link is returned. It does not clarify the SKU-vs-handle precedence when both are passed.

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 ('Get one Packrift product by SKU (or product handle)') and enumerates the returned content area (specs, price, stock, volume pricing, link). It is clearly distinguishable from the sibling retrieval tools search_products and find_packaging_for_item, which it names.

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 says to use it 'after search_products or find_packaging_for_item when the buyer wants more detail before choosing,' naming both alternatives and the condition that selects this tool. The retrieval-then-detail sequencing is unambiguous.

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

get_shipping_estimateEstimate delivered cost of a Packrift orderA
Read-onlyIdempotent
Inspect

Estimate the delivered cost of a Packrift order to a US ZIP code, using the same shipping rates and automatic volume discounts as Packrift checkout. Give the items as SKU and quantity (number of packs). Returns the subtotal after discounts, the shipping charge (free only when the order qualifies), the delivered total and the delivered cost per unit. Tax is not included; checkout shows the final amount. Not for carrier rate shopping or postage.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesItems to price.
response_formatNoconcise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.concise
destination_stateNoOptional two-letter state code, e.g. "TX", for a more precise estimate.
destination_postal_codeYesUS delivery ZIP code, e.g. "75201".

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsNo
shipping_optionsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and non-open-world, so the safety profile is largely covered. The description adds genuine behavioral context beyond that: discounts are applied automatically, shipping is free only when the order qualifies, and tax is excluded. Return shape is also summarized, though no rate limits or failure modes are mentioned.

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?

The core purpose is front-loaded in the first sentence, followed by input format, return fields, and limits. Every sentence carries information, though the enumeration of returned fields is slightly list-like. No filler or redundancy.

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?

An output schema exists and the description still summarizes the key returned values (discounted subtotal, shipping charge, delivered total, per-unit cost). Combined with annotations covering safety and idempotency, and the schema covering inputs, an agent has everything needed to call this correctly and interpret the result.

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 100%, so every parameter is already documented in the schema, and the description adds little syntax beyond restating that items are SKU + quantity (number of packs). The response_format tradeoff (concise vs detailed) is explained in the schema rather than the description. Baseline 3 is appropriate when the schema carries the parameter burden.

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 (Estimate) plus the exact resource (delivered cost of a Packrift order to a US ZIP), and immediately scopes it with 'using the same shipping rates and automatic volume discounts as Packrift checkout.' It also distinguishes itself from adjacent concerns by excluding carrier rate shopping and postage, so an agent can tell it apart from siblings like get_product or create_cart_url.

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?

Clearly signals when to use it (pre-checkout delivered-cost estimation against real Packrift rates) and adds an explicit exclusion ('Not for carrier rate shopping or postage'). It also warns that tax is excluded and checkout shows the final amount. It stops short of naming a sibling alternative for the checkout/final-amount case, so it is clear context without full when-not routing.

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

search_productsSearch Packrift packagingA
Read-onlyIdempotent
Inspect

Search Packrift's in-stock packaging catalog: corrugated shipping boxes, mailer boxes, poly and bubble mailers, poly bags, labels, packing tape, stretch film and void fill. The query can be a product type, an exact size or spec ("12x12x12 ECT-32 box", "10x13 poly mailer", "3 inch packing tape"), or a Packrift SKU. Returns up to 10 matches with live price, pack size, price per unit, stock and a product link. A different size is never labeled exact; when nothing matches exactly it returns the closest sizes marked as not exact and a quote link. If the buyer describes the item they are shipping rather than the packaging they want, use find_packaging_for_item instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return.
queryYesWhat the buyer wants, e.g. "12x12x12 boxes", "white poly mailers 14.5x19", "SKU 1066".
response_formatNoconcise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.concise

Output Schema

ParametersJSON Schema
NameRequiredDescription
queryNo
resultsNo
quote_urlNo
closest_sizesNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotentHint, so safety is covered. The description adds genuinely useful behavior beyond that: result cap behavior, the fields returned (live price, pack size, price per unit, stock, link), and the important guarantee that near-miss sizes are marked not exact with a quote link fallback.

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 scope and query forms before the sibling routing rule at the end, which is the right ordering. It is somewhat long, but each sentence carries distinct information (categories, query forms, return shape, non-exact behavior, alternative tool) rather than restating the title.

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?

Even though an output schema exists (so return values need not be spelled out), the description summarizes output shape and the non-exact-match fallback, and it covers query, limits, and the alternative tool. An agent has everything needed to call this correctly and interpret results.

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 100%, so the schema already documents query, limit, and response_format, and the baseline is 3. The description adds some query-shape guidance (type vs. exact spec vs. SKU) but does not clarify limit or response_format semantics beyond what the schema states, so it does not substantially exceed the baseline.

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 (search the in-stock packaging catalog) and enumerates the product categories covered, so the agent immediately understands the domain. It also names the sibling it is not (find_packaging_for_item) and the condition separating them.

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 describes acceptable query forms (product type, exact size/spec, Packrift SKU) with concrete examples, and gives a clear exclusion rule: if the buyer describes the item being shipped rather than the packaging, route to find_packaging_for_item. When-to-use and when-not-to-use are both present.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • Changedcreate_cart_url1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "cart_url": {
        +      "type": "string"
        +    },
        +    "checkout_url": {
        +      "type": "string"
        +    },
        +    "lines": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedfind_packaging_for_item1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "advice": {
        +      "type": "string"
        +    },
        +    "quote_url": {
        +      "type": "string"
        +    },
        +    "required_inside_in": {
        +      "type": "array"
        +    },
        +    "results": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_bulk_quote_link6 fields changed
      • addedInput schema / properties / delivery_zip
        Added value: +{
        +  "description": "US delivery ZIP code, if known.",
        +  "type": "string"
        +}
      • addedInput schema / properties / needed_by
        Added value: +{
        +  "description": "Date the buyer needs delivery, if known.",
        +  "type": "string"
        +}
      • changedInput schema / properties / quantity / description
        Previous value: -"Quantity in units or packs, if known."New value: +"Quantity per order and how often, e.g. \"5,000 per quarter\"."
      • changedInput schema / properties / requested_spec / description
        Previous value: -"What the buyer needs, e.g. \"2,000 18x12x12 ECT-44 boxes, printed 1 color\"."New value: +"What the buyer needs, e.g. \"18x12x12 ECT-44 kraft boxes, printed 1 color on 2 sides\". Include size, strength or thickness, color and any printing."
      • changedInput schema / properties / sku / description
        Previous value: -"Related Packrift SKU, if any."New value: +"A stocked Packrift SKU the request is for. Leave empty for custom, printed or branded packaging."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "quote_url": {
        +      "type": "string"
        +    },
        +    "requested_spec": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_product1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "nearby_sizes": {
        +      "type": "array"
        +    },
        +    "sku": {
        +      "type": "string"
        +    },
        +    "specs": {
        +      "type": "array"
        +    },
        +    "title": {
        +      "type": "string"
        +    },
        +    "url": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_shipping_estimate1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "items": {
        +      "type": "array"
        +    },
        +    "shipping_options": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsearch_products1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "closest_sizes": {
        +      "type": "array"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "quote_url": {
        +      "type": "string"
        +    },
        +    "results": {
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
  2. 15 tool updates
    • Removedcheck_inventory
    • Removedcompare_alternatives
    • Changedcreate_cart_url20 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / anyOf
        Removed value: -[
        -  {
        -    "required": [
        -      "items"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "sku"
        -    ]
        -  }
        -]
      • changedInput schema / properties / discount_code / description
        Previous value: -"Optional discount code to apply to the cart."New value: +"Optional discount code the buyer has."
      • removedInput schema / properties / items / description
        Removed value: -"Advanced path for agents that already have approved variant IDs. Most buyers should use sku plus quantity instead."
      • removedInput schema / properties / items / items / properties / qty
        Removed value: -{
        -  "description": "Buyer-confirmed quantity for this line item. The alias key quantity is also accepted.",
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • addedInput schema / properties / items / items / properties / quantity
        Added value: +{
        +  "description": "Number of packs.",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / items / items / properties / sku
        Added value: +{
        +  "description": "Packrift SKU.",
        +  "type": "string"
        +}
      • removedInput schema / properties / items / items / properties / variant_id
        Removed value: -{
        -  "description": "Numeric Shopify variant ID as a string, not a number. Example: \"53475949216112\".",
        -  "type": "string"
        -}
      • changedInput schema / properties / items / items / required
        Previous value: -[
        -  "variant_id",
        -  "qty"
        -]New value: +[
        +  "sku",
        +  "quantity"
        +]
      • addedInput schema / properties / items / maxItems
        Added value: +25
      • removedInput schema / properties / journey_id
        Removed value: -{
        -  "description": "Optional continuity ID echoed from an earlier search or pricing result in this conversation.",
        -  "type": "string"
        -}
      • removedInput schema / properties / match_type
        Removed value: -{
        -  "description": "Optional continuity label describing how the product was matched, echoed from earlier results.",
        -  "type": "string"
        -}
      • removedInput schema / properties / quantity
        Removed value: -{
        -  "default": 1,
        -  "description": "Buyer-confirmed quantity to use with sku shortcut. Ignored when items is provided.",
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / result_set_id
        Removed value: -{
        -  "description": "Optional continuity ID echoed from the result set the buyer chose from.",
        -  "type": "string"
        -}
      • removedInput schema / properties / selected_handle
        Removed value: -{
        -  "description": "Buyer-confirmed product handle. When provided, it must resolve to the same catalog item as the cart variant.",
        -  "type": "string"
        -}
      • removedInput schema / properties / selected_sku
        Removed value: -{
        -  "description": "Buyer-confirmed SKU. When provided, it must resolve to the same catalog item as the cart variant.",
        -  "type": "string"
        -}
      • removedInput schema / properties / sku
        Removed value: -{
        -  "description": "Shortcut for exact Packrift SKUs such as 1066, MFL1295, or LL251WR. When provided without items, the approved variant is resolved automatically.",
        -  "type": "string"
        -}
      • removedInput schema / properties / source_context
        Removed value: -{
        -  "description": "Optional short context label for the handoff, such as exact_match, reorder, or quote_followup.",
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "items"
        +]
    • Removedexplain_no_exact_match
    • Changedfind_packaging_for_item14 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / item_depth_in / description
        Previous value: -"Item depth/height in inches."New value: +"Item height or depth in inches."
      • addedInput schema / properties / item_depth_in / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / item_depth_in / minimum
        Removed value: -0.1
      • addedInput schema / properties / item_length_in / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / item_length_in / minimum
        Removed value: -0.1
      • changedInput schema / properties / item_weight_lb / description
        Previous value: -"Packed item weight in pounds; use 0 when unknown."New value: +"Item weight in pounds. Use your best estimate; defaults to 1."
      • addedInput schema / properties / item_width_in / exclusiveMinimum
        Added value: +0
      • removedInput schema / properties / item_width_in / minimum
        Removed value: -0.1
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 3,
        +  "description": "Number of options to return.",
        +  "maximum": 5,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / packaging
        Added value: +{
        +  "default": "any",
        +  "description": "Limit results to boxes or mailers.",
        +  "enum": [
        +    "any",
        +    "box",
        +    "mailer"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / use_case / description
        Previous value: -"Packaging context that guides fit ranking. Canonical values: mailer, box, fragile, apparel, ecommerce. Free text (e.g. 'shipping ceramic mugs') is accepted and mapped to the closest canonical context."New value: +"What the item is or how it ships, in plain words: \"fragile glass jar\", \"folded hoodie\", \"paperback book\", \"electronics\", \"heavy auto parts\". Free text is fine."
      • changedInput schema / required
        Previous value: -[
        -  "item_length_in",
        -  "item_width_in",
        -  "item_depth_in",
        -  "item_weight_lb",
        -  "use_case"
        -]New value: +[
        +  "item_length_in",
        +  "item_width_in",
        +  "item_depth_in"
        +]
    • Changedget_bulk_quote_link7 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / family
        Removed value: -{
        -  "description": "Optional product family such as boxes, labels, mailers, tape, or poly_bags.",
        -  "type": "string"
        -}
      • changedInput schema / properties / quantity / description
        Previous value: -"Optional buyer quantity. Numbers are accepted and coerced to string."New value: +"Quantity in units or packs, if known."
      • removedInput schema / properties / reason
        Removed value: -{
        -  "description": "Optional reason for quote handoff.",
        -  "type": "string"
        -}
      • changedInput schema / properties / requested_spec / description
        Previous value: -"Exact unavailable or bulk quote packaging spec."New value: +"What the buyer needs, e.g. \"2,000 18x12x12 ECT-44 boxes, printed 1 color\"."
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / sku / description
        Previous value: -"Optional Packrift SKU to prefill if the quote relates to a known product."New value: +"Related Packrift SKU, if any."
    • Removedget_cart_handoff_candidates
    • Removedget_pricing
    • Changedget_product6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / handle / description
        Added value: +"Product handle from a product URL, if you have it instead of a SKU."
      • addedInput schema / properties / quantity
        Added value: +{
        +  "description": "Optional number of packs the buyer wants, to check it can ship now.",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / sku
        Added value: +{
        +  "description": "Packrift SKU, e.g. \"1066\".",
        +  "type": "string"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "handle"
        -]
    • Removedget_reorder_link
    • Changedget_shipping_estimate19 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / country
        Removed value: -{
        -  "enum": [
        -    "US",
        -    "CA"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / destination_address
        Removed value: -{
        -  "additionalProperties": false,
        -  "description": "Optional address details used with destination_postal_code and country. Supply all three fields or omit this object. Values are passed through, not address-validated.",
        -  "properties": {
        -    "address1": {
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "city": {
        -      "minLength": 1,
        -      "type": "string"
        -    },
        -    "province_code": {
        -      "description": "State or province code, for example WI or ON.",
        -      "minLength": 1,
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "address1",
        -    "city",
        -    "province_code"
        -  ],
        -  "type": "object"
        -}
      • addedInput schema / properties / destination_postal_code / description
        Added value: +"US delivery ZIP code, e.g. \"75201\"."
      • addedInput schema / properties / destination_state
        Added value: +{
        +  "description": "Optional two-letter state code, e.g. \"TX\", for a more precise estimate.",
        +  "type": "string"
        +}
      • addedInput schema / properties / items / description
        Added value: +"Items to price."
      • removedInput schema / properties / items / items / properties / qty
        Removed value: -{
        -  "description": "Quantity for this line item. The alias key quantity is also accepted.",
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • addedInput schema / properties / items / items / properties / quantity
        Added value: +{
        +  "description": "Number of packs.",
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / items / items / properties / sku
        Added value: +{
        +  "description": "Packrift SKU.",
        +  "type": "string"
        +}
      • removedInput schema / properties / items / items / properties / variant_id
        Removed value: -{
        -  "description": "Numeric Shopify variant ID as a string, not a number. Example: \"53475949216112\".",
        -  "type": "string"
        -}
      • changedInput schema / properties / items / items / required
        Previous value: -[
        -  "variant_id",
        -  "qty"
        -]New value: +[
        +  "sku",
        +  "quantity"
        +]
      • addedInput schema / properties / items / maxItems
        Added value: +25
      • removedInput schema / properties / journey_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / match_type
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / result_set_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / selected_handle
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / selected_sku
        Removed value: -{
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "destination_postal_code",
        -  "country",
        -  "items"
        -]New value: +[
        +  "destination_postal_code",
        +  "items"
        +]
    • Removedinventory_status
    • Removedpack_calculator
    • Removedprepare_purchase_handoff
    • Changedsearch_products6 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / limit / default
        Previous value: -10New value: +5
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results to return."
      • changedInput schema / properties / limit / maximum
        Previous value: -50New value: +10
      • changedInput schema / properties / query / description
        Previous value: -"Free-text search; matches title, vendor, type, tags."New value: +"What the buyer wants, e.g. \"12x12x12 boxes\", \"white poly mailers 14.5x19\", \"SKU 1066\"."
      • addedInput schema / properties / response_format
        Added value: +{
        +  "default": "concise",
        +  "description": "concise (default) returns the essentials. detailed returns the full catalog record; use it only when a field you need is missing.",
        +  "enum": [
        +    "concise",
        +    "detailed"
        +  ],
        +  "type": "string"
        +}
  3. 1 tool update
    • Changedget_shipping_estimate1 field changed
      • addedInput schema / properties / destination_address
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Optional address details used with destination_postal_code and country. Supply all three fields or omit this object. Values are passed through, not address-validated.",
        +  "properties": {
        +    "address1": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "city": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "province_code": {
        +      "description": "State or province code, for example WI or ON.",
        +      "minLength": 1,
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "address1",
        +    "city",
        +    "province_code"
        +  ],
        +  "type": "object"
        +}
  4. 6 tool updates
    • Changedcreate_cart_url21 fields changed
      • removedInput schema / properties / ai_commerce_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / analytics_context
        Removed value: -{
        -  "description": "Internal QA context for synthetic evals.",
        -  "type": "object"
        -}
      • addedInput schema / properties / discount_code / description
        Added value: +"Optional discount code to apply to the cart."
      • addedInput schema / properties / journey_id / description
        Added value: +"Optional continuity ID echoed from an earlier search or pricing result in this conversation."
      • addedInput schema / properties / match_type / description
        Added value: +"Optional continuity label describing how the product was matched, echoed from earlier results."
      • removedInput schema / properties / mcp_install_target
        Removed value: -{
        -  "description": "Optional install target for source-aware MCP installs, such as cline, codex, or generic_streamable_http.",
        -  "type": "string"
        -}
      • removedInput schema / properties / mcp_source
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / mcp_source_context
        Removed value: -{
        -  "description": "Optional source slug for source-aware MCP installs, such as cline_mcp_marketplace or mcp_so.",
        -  "type": "string"
        -}
      • removedInput schema / properties / mcp_target
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / packrift_ai_id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / packrift_mcp_source
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / packrift_mcp_target
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / ref
        Removed value: -{
        -  "default": "mcp",
        -  "type": "string"
        -}
      • removedInput schema / properties / reorder_source
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / result_set_id / description
        Added value: +"Optional continuity ID echoed from the result set the buyer chose from."
      • changedInput schema / properties / selected_handle / description
        Previous value: -"Buyer-confirmed product handle. When provided, it must resolve to the same AI_APPROVE item as the cart variant."New value: +"Buyer-confirmed product handle. When provided, it must resolve to the same catalog item as the cart variant."
      • changedInput schema / properties / selected_sku / description
        Previous value: -"Buyer-confirmed SKU. When provided, it must resolve to the same AI_APPROVE item as the cart variant."New value: +"Buyer-confirmed SKU. When provided, it must resolve to the same catalog item as the cart variant."
      • changedInput schema / properties / source_context / description
        Previous value: -"Optional short context for analytics, such as exact_match, reorder, quote_followup, or ai_agent."New value: +"Optional short context label for the handoff, such as exact_match, reorder, or quote_followup."
      • removedInput schema / properties / source_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / suppress_analytics
        Removed value: -{
        -  "description": "Internal QA flag. When true, do not record an AI-sales cart event.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / utm_term
        Removed value: -{
        -  "type": "string"
        -}
    • Changedexplain_no_exact_match2 fields changed
      • removedInput schema / properties / analytics_context
        Removed value: -{
        -  "description": "Internal QA context for synthetic evals.",
        -  "type": "object"
        -}
      • removedInput schema / properties / suppress_analytics
        Removed value: -{
        -  "description": "Internal QA flag. When true, do not record an AI-sales no-match event.",
        -  "type": "boolean"
        -}
    • Changedget_bulk_quote_link2 fields changed
      • removedInput schema / properties / analytics_context
        Removed value: -{
        -  "description": "Internal QA context for synthetic evals.",
        -  "type": "object"
        -}
      • removedInput schema / properties / suppress_analytics
        Removed value: -{
        -  "description": "Internal QA flag. When true, do not record an AI-sales quote event.",
        -  "type": "boolean"
        -}
    • Changedget_reorder_link3 fields changed
      • removedInput schema / properties / analytics_context
        Removed value: -{
        -  "description": "Internal QA context for synthetic evals.",
        -  "type": "object"
        -}
      • changedInput schema / properties / source_context / description
        Previous value: -"Optional analytics context, e.g. ai_agent_reorder or mcp_reorder."New value: +"Optional short context label, such as reorder or procurement."
      • removedInput schema / properties / suppress_analytics
        Removed value: -{
        -  "description": "Internal QA flag. When true, do not record an AI-sales reorder event.",
        -  "type": "boolean"
        -}
    • Removedgoogle_retail_ai_finder
    • Changedprepare_purchase_handoff12 fields changed
      • removedInput schema / properties / analytics_context
        Removed value: -{
        -  "description": "Internal QA context for synthetic evals.",
        -  "type": "object"
        -}
      • addedInput schema / properties / journey_id / description
        Added value: +"Optional continuity ID echoed from an earlier search or pricing result in this conversation."
      • removedInput schema / properties / mcp_install_target
        Removed value: -{
        -  "description": "Optional install target for source-aware MCP installs, such as cline, codex, or generic_streamable_http.",
        -  "type": "string"
        -}
      • removedInput schema / properties / mcp_source
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / mcp_source_context
        Removed value: -{
        -  "description": "Optional source slug for source-aware MCP installs, such as cline_mcp_marketplace or mcp_so.",
        -  "type": "string"
        -}
      • removedInput schema / properties / mcp_target
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / packrift_mcp_source
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / packrift_mcp_target
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / result_set_id / description
        Added value: +"Optional continuity ID echoed from the result set the buyer chose from."
      • changedInput schema / properties / source_context / description
        Previous value: -"Optional analytics context, such as agent_quick_start, exact_sku_reorder, or browse_sh_first_cart_run."New value: +"Optional short context label for the handoff, such as exact_sku_reorder or quote_followup."
      • removedInput schema / properties / source_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / suppress_analytics
        Removed value: -{
        -  "description": "Internal QA flag. When true, do not record downstream cart analytics.",
        -  "type": "boolean"
        -}
  5. 4 tool updates
    • Changedcreate_cart_url1 field changed
      • changedInput schema / properties / items / items / properties / qty / description
        Previous value: -"Buyer-confirmed quantity for this line item."New value: +"Buyer-confirmed quantity for this line item. The alias key quantity is also accepted."
    • Changedfind_packaging_for_item2 fields changed
      • changedInput schema / properties / use_case / description
        Previous value: -"Packaging context that guides fit ranking."New value: +"Packaging context that guides fit ranking. Canonical values: mailer, box, fragile, apparel, ecommerce. Free text (e.g. 'shipping ceramic mugs') is accepted and mapped to the closest canonical context."
      • removedInput schema / properties / use_case / enum
        Removed value: -[
        -  "mailer",
        -  "box",
        -  "fragile",
        -  "apparel",
        -  "ecommerce"
        -]
    • Changedget_bulk_quote_link1 field changed
      • changedInput schema / properties / quantity / description
        Previous value: -"Optional buyer quantity."New value: +"Optional buyer quantity. Numbers are accepted and coerced to string."
    • Changedget_shipping_estimate1 field changed
      • changedInput schema / properties / items / items / properties / qty / description
        Previous value: -"Quantity for this line item."New value: +"Quantity for this line item. The alias key quantity is also accepted."

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Plan optimal container & truck loads: 3D layouts, right-size the container mix, and check utilization, centre of gravity, crush protection and securing across 200+ equipment types.
    9 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables creating and managing packing slips for shipments, tracking cartons, contents, weights, chargeable weight, and shortfalls, with reports and packing slip generation.
    14
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Manage shipping workflows by creating labels, tracking packages, and scheduling carrier pickups. Compare live rates from major carriers like FedEx and UPS to optimize costs for every shipment. Organize logistical operations with a centralized address book and detailed shipping analytics.
    18
    9 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Live USPS, UPS, FedEx and DHL Express parcel rates from a US origin, domestic or to Canada, the UK, Germany and Australia, from a plain-words item description: no scale, no account, no API key. Also creates checkout links, reports checkout status, tracks parcels bought on smklog.com and serves a monthly US parcel price index.
    10
    5
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.