{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:41:45.802Z","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.md","server":{"slug":"io-usefulapi-shoprocket","name":"Shoprocket MCP by usefulapi","registryName":"io.usefulapi/shoprocket","description":"MCP server for Shoprocket — orders, products, customers, store stats and discount codes.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"shoprocket","type":"remote","identifier":"https://shoprocket.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket","version":"1.6.3","transport":null,"scoredAt":"2026-11-05T15:02:22.614Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":65},{"date":"2026-10-31","total":65}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"shoprocket","type":"remote","identifier":"https://shoprocket.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.md"}],"facts":[{"label":"Endpoint","value":"https://shoprocket.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"shoprocket_get_store","title":"Get store","description":"The Shoprocket store this key belongs to: name, address, environment (test or live), paused state, currencies and languages, setup status. The store's API keys are never returned. GET /v1/store/details.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":55},{"name":"shoprocket_get_store_stats","title":"Get store stats","description":"Sales statistics for a date range, compared with the previous period: orders, revenue, visitors, abandoned carts, conversion rate, average order value, a daily sales graph, regions, sources and popular products. GET /v1/store/stats.","inputs":[{"name":"from","type":"string","required":true,"description":"First day, yyyy-mm-dd."},{"name":"to","type":"string","required":true,"description":"Last day, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"shoprocket_list_orders","title":"List orders","description":"List or search orders with totals, customer, addresses, payment and fulfillment status, discounts, line items and shipping. Filter by payment status, fulfillment status, payment method, customer ids, amount range, sale/discount use or free text. GET /v1/orders.","inputs":[{"name":"customer","type":"string","required":false,"description":"Comma-separated customer ids (cus_...): only their orders."},{"name":"fulfillment_status","type":"string","required":false,"description":"Fulfillment status of the order."},{"name":"has_automatic_discount","type":"boolean","required":false,"description":"true: only orders where an automatic discount applied."},{"name":"has_discount_code","type":"boolean","required":false,"description":"true: only orders where a discount code applied."},{"name":"has_sale","type":"boolean","required":false,"description":"true: only orders where a sale promotion applied."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"order_amount_from","type":"number","required":false,"description":"Only orders of at least this amount."},{"name":"order_amount_to","type":"number","required":false,"description":"Only orders of at most this amount."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"payment_method","type":"string","required":false,"description":"Only orders paid with this method."},{"name":"search","type":"string","required":false,"description":"Free-text search: order number, total amount, customer email or name, dates, statuses."},{"name":"status","type":"string","required":false,"description":"Payment status of the order."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":279},{"name":"shoprocket_get_order","title":"Get order","description":"One order by id (ord_..., not the #number shown in the dashboard): totals, customer, billing and shipping address, payment and fulfillment status, discounts, line items and tracking. GET /v1/orders/{id}.","inputs":[{"name":"order_id","type":"string","required":true,"description":"Shoprocket order id, e.g. ord_646e1f65ebcad629610675. Find it with shoprocket_list_orders."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"shoprocket_update_order_status","title":"Update order status","description":"WRITE: change an order's payment status and/or fulfillment status (for example mark it shipped or paid). Shoprocket needs both values, so a value you leave out is read from the order first and kept. With send_email true Shoprocket EMAILS THE CUSTOMER an order update (optionally with custom_text); the default is no email. Cancelling can return the items to stock (release_stock). POST /v1/orders/{id}.","inputs":[{"name":"custom_text","type":"string","required":false,"description":"Extra text for the customer email. Only used when send_email is true."},{"name":"fulfillment_status","type":"string","required":false,"description":"New fulfillment status. Omit to keep the current one."},{"name":"order_id","type":"string","required":true,"description":"Shoprocket order id (ord_...)."},{"name":"payment_status","type":"string","required":false,"description":"New payment status. Omit to keep the current one."},{"name":"release_stock","type":"boolean","required":false,"description":"true = put the order's items back into stock. Only applies when fulfillment_status is cancelled."},{"name":"send_email","type":"boolean","required":false,"description":"true = email the customer about this update. Default false: no email is sent."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":225},{"name":"shoprocket_list_products","title":"List products","description":"List products with price, SKU, stock quantity, categories, images, variants (skus) and status. Search by text, filter by category slugs, product ids or slugs, and sort. GET /v1/products.","inputs":[{"name":"ids","type":"string","required":false,"description":"Comma-separated product ids (prod_...)."},{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"product_category","type":"string","required":false,"description":"Comma-separated category slugs."},{"name":"search","type":"string","required":false,"description":"Search text."},{"name":"slugs","type":"string","required":false,"description":"Comma-separated product slugs."},{"name":"sort","type":"string","required":false,"description":"product_order = store order (default), created = newest first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":173},{"name":"shoprocket_get_product","title":"Get product","description":"One product by id (prod_...): description, price, SKU, stock, dimensions, categories, media, variants (skus), add-ons. GET /v1/products/{id}.","inputs":[{"name":"product_id","type":"string","required":true,"description":"Shoprocket product id, e.g. prod_646e0498ec090321649753."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76},{"name":"shoprocket_create_product","title":"Create product","description":"WRITE: create a product in the store (visible to shoppers unless status is 0). A name and at least one category (name or slug) are required. Does not create duplicates by itself: calling twice creates two products. Variants and add-ons are not set by this tool. PUT /v1/products.","inputs":[{"name":"categories","type":"string","required":true,"description":"Comma-separated categories the product belongs to (as Shoprocket's API takes them; see shoprocket_list_categories)."},{"name":"description","type":"string","required":false,"description":"Product description (HTML allowed)."},{"name":"max_order_quantity","type":"integer","required":false,"description":"Maximum quantity per order."},{"name":"min_order_quantity","type":"integer","required":false,"description":"Minimum quantity per order."},{"name":"name","type":"string","required":true,"description":"Product name."},{"name":"price","type":"integer","required":false,"description":"Price as an integer in the smallest currency unit (cents: 1999 = 19.99), as Shoprocket's API takes it. Check the reply."},{"name":"quantity","type":"integer","required":false,"description":"Stock quantity."},{"name":"sku","type":"string","required":false,"description":"SKU."},{"name":"status","type":null,"required":false,"description":"1 = active (Shoprocket returns status \"1\" for live products), 0 = inactive."},{"name":"summary","type":"string","required":false,"description":"Short summary."},{"name":"weight","type":"number","required":false,"description":"Weight, in the store's weight unit."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":256},{"name":"shoprocket_update_product","title":"Update product","description":"WRITE: change a product's fields (price, stock quantity, description, status...). Shoprocket requires the name on every update, so pass the current name to keep it. Only the fields you pass are sent. POST /v1/products/{id}.","inputs":[{"name":"categories","type":"string","required":false,"description":"Comma-separated categories for the product, in the same form as shoprocket_create_product. Shoprocket lists it as required but leaves it out of its update example: pass it if Shoprocket answers that…"},{"name":"description","type":"string","required":false,"description":"Product description (HTML allowed)."},{"name":"max_order_quantity","type":"integer","required":false,"description":"Maximum quantity per order."},{"name":"min_order_quantity","type":"integer","required":false,"description":"Minimum quantity per order."},{"name":"name","type":"string","required":true,"description":"Product name (required by Shoprocket on every update; pass the current one to keep it)."},{"name":"price","type":"integer","required":false,"description":"Price as an integer in the smallest currency unit (cents: 1999 = 19.99), as Shoprocket's API takes it. Check the reply."},{"name":"product_id","type":"string","required":true,"description":"Shoprocket product id (prod_...)."},{"name":"quantity","type":"integer","required":false,"description":"Stock quantity."},{"name":"sku","type":"string","required":false,"description":"SKU."},{"name":"status","type":null,"required":false,"description":"1 = active (Shoprocket returns status \"1\" for live products), 0 = inactive."},{"name":"summary","type":"string","required":false,"description":"Short summary."},{"name":"weight","type":"number","required":false,"description":"Weight, in the store's weight unit."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":296},{"name":"shoprocket_list_categories","title":"List categories","description":"List product categories with id, name and slug. GET /v1/categories.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"shoprocket_get_category","title":"Get category","description":"One category by id (cat_...); with expand_products also the products in it. GET /v1/categories/{id}.","inputs":[{"name":"category_id","type":"string","required":true,"description":"Shoprocket category id, e.g. cat_646de66683dc4922710922."},{"name":"expand_products","type":"boolean","required":false,"description":"true = include the category's products."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"shoprocket_create_category","title":"Create category","description":"WRITE: create a product category (optionally assigning existing products). Calling twice with the same name may create a duplicate or be refused by Shoprocket. PUT /v1/categories.","inputs":[{"name":"name","type":"string","required":true,"description":"Category name."},{"name":"products","type":"string","required":false,"description":"Comma-separated product ids (prod_...) to put in the category."},{"name":"slug","type":"string","required":false,"description":"Unique slug. Default: the name, lowercase and hyphenated."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"shoprocket_update_category","title":"Update category","description":"WRITE: rename a category, change its slug, or set the products in it. Only the fields you pass are sent. POST /v1/categories/{id}.","inputs":[{"name":"category_id","type":"string","required":true,"description":"Shoprocket category id (cat_...)."},{"name":"name","type":"string","required":false,"description":"New name."},{"name":"products","type":"string","required":false,"description":"Comma-separated product ids (prod_...) assigned to the category."},{"name":"slug","type":"string","required":false,"description":"New slug."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"shoprocket_list_customers","title":"List customers","description":"List customers with name, email, phone, company, tax number, country and marketing opt-in. GET /v1/customers.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"shoprocket_get_customer","title":"Get customer","description":"One customer by id (cus_...). GET /v1/customers/{id}.","inputs":[{"name":"customer_id","type":"string","required":true,"description":"Shoprocket customer id, e.g. cus_646dec8c0e3a4390458285."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":57},{"name":"shoprocket_create_customer","title":"Create customer","description":"WRITE: add a customer record (it does not email the customer). marketing_subscribed records newsletter consent: set it to true only if the customer actually opted in. PUT /v1/customers.","inputs":[{"name":"company_name","type":"string","required":false,"description":"Company name."},{"name":"customer_contact","type":"string","required":false,"description":"Phone number."},{"name":"customer_email","type":"string","required":true,"description":"Customer email address."},{"name":"customer_name","type":"string","required":false,"description":"Full name."},{"name":"marketing_subscribed","type":"boolean","required":false,"description":"true only if the customer opted in to the newsletter."},{"name":"tax_number","type":"string","required":false,"description":"Tax number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":120},{"name":"shoprocket_update_customer","title":"Update customer","description":"WRITE: change a customer's email, name, phone, company, tax number or newsletter consent. Only the fields you pass are sent. Set marketing_subscribed true only if the customer actually opted in. POST /v1/customers/{id}.","inputs":[{"name":"company_name","type":"string","required":false,"description":"Company name."},{"name":"contact","type":"string","required":false,"description":"Phone number."},{"name":"customer_id","type":"string","required":true,"description":"Shoprocket customer id (cus_...)."},{"name":"email","type":"string","required":false,"description":"New email address."},{"name":"marketing_subscribed","type":"boolean","required":false,"description":"true only if the customer opted in to the newsletter."},{"name":"name","type":"string","required":false,"description":"Full name."},{"name":"tax_number","type":"string","required":false,"description":"Tax number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":142},{"name":"shoprocket_list_discount_codes","title":"List discount codes","description":"List discount codes with type, value, what they apply to, usage limit and count, minimum order, dates and status. GET /v1/discount-codes.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"shoprocket_get_discount_code","title":"Get discount code","description":"One discount code by id (ofr_...). GET /v1/discount-codes/{id}.","inputs":[{"name":"discount_code_id","type":"string","required":true,"description":"Shoprocket discount code id, e.g. ofr_646dfea0b2880691674525."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":63},{"name":"shoprocket_create_discount_code","title":"Create discount code","description":"WRITE: create a live discount code that shoppers can use at checkout and that reduces the store's revenue. Type fixed or percentage needs coupon_value; free_shipping does not. Use usage_limit and dates to bound it. Calling twice creates two codes. PUT /v1/discount-codes.","inputs":[{"name":"coupon_applies_to","type":"string","required":true,"description":"What it applies to. free_shipping allows only all_orders and all_orders_over."},{"name":"coupon_applies_to_value","type":"string","required":false,"description":"Required for multiple_products (comma-separated product ids) and categories (comma-separated category slugs)."},{"name":"coupon_code","type":"string","required":false,"description":"The code shoppers type. Default: Shoprocket generates a random one."},{"name":"coupon_type","type":"string","required":true,"description":"fixed = amount off, percentage = percent off, free_shipping."},{"name":"coupon_value","type":"integer","required":false,"description":"Required for fixed and percentage. Shoprocket documents 'a positive integer in cents': for fixed 500 = 5.00; for percentage send the whole percent (10 = 10%) and check the reply."},{"name":"description","type":"string","required":true,"description":"What the code is for (shown in the dashboard)."},{"name":"expire_date","type":"string","required":false,"description":"Last valid day, yyyy-mm-dd. Required together with start_date."},{"name":"limit_per_user","type":null,"required":false,"description":"1 = one use per customer."},{"name":"minimum_order_value","type":"integer","required":false,"description":"Minimum order value in cents (as Shoprocket takes it); used with all_orders_over."},{"name":"start_date","type":"string","required":false,"description":"First valid day, yyyy-mm-dd. Required together with expire_date."},{"name":"usage_limit","type":"integer","required":false,"description":"Maximum number of uses in total."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":327},{"name":"shoprocket_list_automatic_discounts","title":"List automatic discounts","description":"List automatic discounts (applied at checkout without a code) with type, value, conditions, dates and status. GET /v1/automatic-discounts.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"shoprocket_list_sales","title":"List sale promotions","description":"List sale promotions (price reductions on products) with type, value, what they apply to, dates and status. GET /v1/sale-promotions.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":86},{"name":"shoprocket_list_shipping_methods","title":"List shipping methods","description":"List the store's shipping methods and rates. GET /v1/shippings.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":71},{"name":"shoprocket_list_taxes","title":"List taxes","description":"List the store's tax rules. GET /v1/taxes.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":69},{"name":"shoprocket_list_zones","title":"List shipping zones","description":"List the store's shipping zones (the regions it ships to). GET /v1/zones.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":75},{"name":"shoprocket_list_payment_methods","title":"List payment methods","description":"List the store's payment gateways (Stripe, PayPal, manual...) and whether they are enabled. Gateway credentials are never returned. GET /v1/payment-methods.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:02:22.000Z","track":"remote","endpoint":"https://shoprocket.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"shoprocket.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a19b10-05f1-7237-84ab-7fb88763577d","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f1-7237-84ab-7fb88763577d"},{"id":"chg_01a19b10-05f1-7f00-9605-3e2ba7418dd0","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f1-7f00-9605-3e2ba7418dd0"},{"id":"chg_01a19b10-05f2-753f-a95a-a6dcedec562b","kind":"check.unverifiable","summary":"Stability (0.03 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f2-753f-a95a-a6dcedec562b"},{"id":"chg_01a19b10-05f3-7c27-8544-8bc322c92f10","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f3-7c27-8544-8bc322c92f10"},{"id":"chg_01a19b10-05f4-7204-a23c-cbc502067097","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f4-7204-a23c-cbc502067097"},{"id":"chg_01a19b10-05f4-7644-9031-a9d8e911d210","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f4-7644-9031-a9d8e911d210"},{"id":"chg_01a19b10-05f4-7ada-9fe5-7b39fc0c85f1","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f4-7ada-9fe5-7b39fc0c85f1"},{"id":"chg_01a19b10-05f5-702b-ac4c-b63bc586745d","kind":"score.total_changed","summary":"Trust score (65 → 18)","materiality":"functional","direction":"regression","scoreDelta":-47,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a19b10-05f5-702b-ac4c-b63bc586745d"},{"id":"chg_01a195e9-07be-7ede-a558-906efa6a5b4d","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a195e9-07be-7ede-a558-906efa6a5b4d"},{"id":"chg_01a193fa-2e81-76c5-8db7-056d81351bda","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a193fa-2e81-76c5-8db7-056d81351bda"},{"id":"chg_01a18fe7-77c5-7e65-b463-420aae550655","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket#chg-chg_01a18fe7-77c5-7e65-b463-420aae550655"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket","markdown":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-shoprocket/shoprocket.xml","external":[{"label":"Remote endpoint","href":"https://shoprocket.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/shoprocket/"}]}}