About Packrift MCP Server
Packrift MCP Server is an MCP server published by Packrift in the Search category: enables AI agents to search a Shopify packaging-supplies catalog, get live pricing and inventory, recommend boxes, estimate shipping, and generate checkout URLs.
The repository has 1 stars and 1 forks, with the last commit 26 days ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/Packrift/packrift-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (15)
check_inventory(variant_ids[])Live inventory check before recommending or building a cart. `variant_ids` must be numeric Shopify variant IDs encoded as strings. Never cached.
Parameters not published.
compare_alternatives(requested_spec, family?, competitor_reference?, limit?)Ranks curated Packrift alternatives for open-ended buyer requests, including competitor-style packaging specs.
Parameters not published.
create_cart_url(items[], discount_code?, ref?)Final cart handoff. Builds a GA4-visible Packrift cart landing URL plus the final `packrift.com/cart/...` permalink with `ref=mcp` and AI-commerce attribution fields.
Parameters not published.
explain_no_exact_match(requested_spec, missing_or_mismatched_fields?)Explains why a nearby product should not be presented as exact, then routes to safe next actions and quote recovery.
Parameters not published.
find_packaging_for_item(item_length_in, item_width_in, item_depth_in, item_weight_lb, use_case)Hero. Item L/W/D + weight + use case -> ranked packaging SKUs that fit. Use for smallest-fit, box-vs-mailer, and Uline-by-size style questions.
Parameters not published.
get_bulk_quote_link(requested_spec, family?, sku?, quantity?)Tracked bulk quote URL for no-exact-match, large-volume, or procurement-review workflows.
Parameters not published.
get_cart_handoff_candidates(limit?, family?, sku?)Priority curated SKUs with ready `create_cart_url` arguments, SKU/product/reorder/quote/cart links, and required live-confirmation sequence.
Parameters not published.
get_pricing(variant_ids[], quantity?)Live unit price and line total before purchase handoff. `variant_ids` must be numeric Shopify variant IDs encoded as strings. Never cached.
Parameters not published.
get_product(handle)Full product detail including variants, dimensions/metafields, weight, stock, and product URL.
Parameters not published.
get_reorder_link(sku, handle?)Reorder URL, product URL, and copy-procurement-spec text for a catalog SKU or handle.
Parameters not published.
Show all 15 tools
get_shipping_estimate(zip, country, items[])Carrier rates for a chosen cart via Shopify `draftOrderCalculate`.
Parameters not published.
inventory_status(variant_ids?, sku?, handle?, quantity?)Live total and location-level Shopify inventory status for exact SKUs, handles, or variant IDs.
Parameters not published.
pack_calculator(item, padding?, use_case?, limit?)Calculates protected inside dimensions and returns fitted box or mailer candidates with void-fill guidance.
Parameters not published.
prepare_purchase_handoff(sku, quantity?, buyer_confirmed?)Fast exact-SKU path. Confirms the product, live price, and inventory, then returns a tracked cart URL only when `buyer_confirmed=true`.
Parameters not published.
search_products(query, limit?)Keyword fallback when dimensions are unknown, such as kraft tape, bubble mailer, starter kit, or weather-resistant labels. Cached 5 min in KV.
Parameters not published.
Ask AI
Ask AI about Packrift MCP Server
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Packrift MCP Server
Production MCP (Model Context Protocol) server for Packrift, a Shopify packaging-supplies store. Lets AI agents search the catalog, get live pricing and inventory, recommend a box for an item, estimate shipping, and produce checkout URLs.
- Stack: Cloudflare Workers, TypeScript (strict), Hono, Zod, Streamable HTTP transport
- Backing: Shopify Admin GraphQL API (
2025-04), storepackrift.myshopify.com - Endpoint:
POST /mcp,GET /mcp(SSE),GET /(health),GET /.well-known/mcp/server-card.json
Tools
| Tool | Purpose |
|---|---|
search_products(query, limit?) |
Keyword search across the catalog. Cached 5 min in KV. |
get_product(handle) |
Full product detail incl. variants, dimensions metafield, weight. |
get_pricing(variant_ids[], quantity?) |
Live unit price + line total. Never cached. |
check_inventory(variant_ids[]) |
Live inventory count. Never cached. |
recommend_packaging(dims, weight, use_case) |
Up to 5 ranked variant suggestions with 0.5–2 in padding. |
get_shipping_estimate(zip, country, items[]) |
Carrier rates via Shopify draftOrderCalculate. |
create_cart_url(items[], discount_code?, ref?) |
Builds packrift.com/cart/...?ref=mcp[&discount=...]. |
Local development
Install Node 24+ and the deps:
cd ~/Downloads/packrift-mcp-server
npm install
Local secrets — already created at .dev.vars (gitignored):
SHOPIFY_PACKRIFT_TOKEN=shpat_...
Run the server:
npx wrangler dev --port 8787 --local
Smoke-test the MCP endpoint with curl:
# initialize
curl -s -X POST http://127.0.0.1:8787/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
# list tools
curl -s -X POST http://127.0.0.1:8787/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# search
curl -s -X POST http://127.0.0.1:8787/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_products","arguments":{"query":"poly mailer","limit":3}}}'
Type-check:
npx tsc --noEmit
Deployment
The Cloudflare account is being created in a separate process. Once it's ready and wrangler is logged in (wrangler login), run these in order:
cd ~/Downloads/packrift-mcp-server
# 1. Create the KV namespace and copy the printed id into wrangler.toml
# (replace both `id` and `preview_id` with the same value).
npx wrangler kv namespace create CATALOG_CACHE
# 2. Set the Shopify Admin token as a secret (paste shpat_... when prompted).
npx wrangler secret put SHOPIFY_PACKRIFT_TOKEN
# 3. Deploy. Initial deploy puts the worker on
# https://packrift-mcp.<account>.workers.dev
npx wrangler deploy
# 4. (Once mcp.packrift.com is CNAME'd to the worker) uncomment the [[routes]]
# block in wrangler.toml and redeploy.
npx wrangler deploy
After deploy, the MCP endpoint is https://packrift-mcp.<account>.workers.dev/mcp (and later https://mcp.packrift.com/mcp). The server card lives at /.well-known/mcp/server-card.json.
Design notes / caveats
cartCreateis a Storefront API mutation, not Admin. The brief asked forcartCreate+cartBuyerIdentityUpdatefor shipping rates, but those don't exist on the Admin GraphQL API this server uses. The supported Admin path isdraftOrderCalculate, which is whatget_shipping_estimateuses. It returns the same carrier-rate data without creating a real order.- Dimensions parsing. Packrift product dimensions live in
custom.specN_valuemetafields where the matchingcustom.specN_namesays "Dimensions" or "Size". Format is human-readable (12 1/8" L x 11 5/8" W x 2 5/8" H).src/dimensions.tsparses mixed fractions and falls back to scanning the title. - Recommend collections. The brief mentioned
mailer-boxescollection — that handle does not exist on the live store. We usemailers-envelopes,boxes-mailers,corrugated-boxes,bubble-wrap-foam,cushioning, andecommerce-fulfillment(verified viacollectionsquery 2026-04-29). - Use case mapping is in
src/tools/recommend_packaging.ts(COLLECTIONS_BY_USE_CASE). - Shipping rate
handlein the response is a long opaque JWT-style string — that's how Shopify returns rate handles; pass it through to subsequent calls if needed. - Errors: tool exceptions are returned as
{ content: [...], isError: true }per the MCP spec, not as JSON-RPC-3260xerrors. Protocol-level errors (unknown tool, bad JSON) do return JSON-RPC errors.
File map
src/
index.ts Hono app + MCP JSON-RPC dispatcher
shopify.ts Admin GraphQL client + id helpers
dimensions.ts Spec-string -> structured dimensions
server-card.ts /.well-known card
tools/
search_products.ts
get_product.ts
get_pricing.ts
check_inventory.ts
recommend_packaging.ts
get_shipping_estimate.ts
create_cart_url.ts
wrangler.toml Worker config (KV binding, vars, route)
package.json
tsconfig.json
.dev.vars Local-only secrets (gitignored)
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.