Migration aid · Shopify Global Catalog

Shopify Global Catalog REST to MCP Migration Checker

Check a legacy Global Catalog REST request and get its UCP MCP tool mapping, JSON-RPC starting point, and a manual review checklist.

Announced cutoff: . Shopify’s October 9 announcement says requests to discover.shopifyapps.com/global/… stop being served on that date, including saved catalogs.

For integrations calling that host directly. This retirement does not mean that every Shopify REST API or merchant admin stops working. Verified and updated .

Check your old request

Runs locally in your browser. No requests are sent to Shopify. Do not paste tokens or authorization headers. Inputs are not saved or collected by this tool.

Legacy request and MCP example settings
Try an example:

Absolute HTTPS URL only (8 KB maximum). For cURL, copy just its URL and select the method; shell text is not supported.

Bulk body and optional MCP settings

A JSON object with 1–50 string IDs. Unknown fields are listed for review. 32 KB maximum.

HTTPS only. If empty, the output uses Shopify’s example profile to explain structure. Replace it for production. No profile is fetched or validated.

Copy the exact ID from Shopify Dev Dashboard. Unknown legacy saved-catalog paths are not guessed.

What the four routes become

The destination is Global Catalog MCP implementing UCP Catalog. GraphQL Admin’s catalog query and a single store’s Storefront Catalog MCP serve different purposes.

Legacy callMCP toolVerified starting point
GET /global/v2/searchsearch_catalogSearch query; explicitly supplied valid limit and shipping countries.
GET /global/v2/p/{upid}get_productcatalog.id = gid://shopify/p/{upid}
GET /global/v2/p/by-variant/{vid}get_productcatalog.id = gid://shopify/ProductVariant/{vid}
POST /global/v2/lookuplookup_catalogPreserve the body’s 1–50 ids strings; confirm supported formats.

Shopify’s official route mappings.

Use this as an audit, then test your integration

  1. Locate old Global Catalog calls in your code, scheduled jobs, workers, and saved-catalog integrations. Select their legacy method and paste one URL.
  2. For lookup, expand settings and supply the old JSON body. Search values are edited in the URL; supply a saved catalog ID only when you know the Dev Dashboard value.
  3. Read every unprocessed field, validate your agent profile and authentication, and test the new request in your own environment. This page never executes generated requests.

Why some parameters stay in review

Only query, legacy limit (1–10), ships_to, and ships_from have automatic search mappings here. Unsupported filters, prices, extra product context, and repeated parameters need review. A missing input is not replaced with a made-up production value.

For example, available_for_sale=0 is not assumed equivalent to filters.available=false. Decimal legacy prices require a currency-aware minor-unit conversion; multiplying every amount by 100 would be unsafe. Unknown parameters remain visible in the review list. Compare omitted defaults too: the legacy search reference defaults ships_to to US, whereas a migration should explicitly confirm the new filter and buyer context.

What still needs end-to-end verification

An agent profile is distinct from a bearer token. Shopify’s announcement says existing Dev Dashboard client-credential bearer tokens can continue to be used; a production agent still needs a valid UCP profile declaring the relevant base capabilities and Shopify’s extension. The checker validates URL syntax only. See profile setup and authentication rules.

Check the new response envelope, field availability, price representation, pagination behavior, and your consumers with real authenticated tests. Consult the Global Catalog extension for enriched fields. A local request draft proves neither a successful Shopify call nor a completed migration.

When the official tools are enough

Shopify already provides comprehensive examples and a UCP CLI through its AI Toolkit. If you are building a new integration, start with Shopify’s Global Catalog documentation. This limited checker is intended for auditing an existing old request and surfacing fields that could otherwise disappear during migration.

Official references

  1. Retirement announcement and route mappings
  2. Global Catalog MCP tools and JSON-RPC examples
  3. Authentication and shared rate limits
  4. Global Catalog extension and response fields
  5. Legacy search parameter reference
  6. Legacy bulk lookup reference
  7. Define your UCP agent profile

Related: Shopify scriptTagCreate permission errors concern a separate API change.