Skip to main content
Glama
boldcommerce

Magento 2 MCP Server

by boldcommerce

get_related_products

Retrieve related products for a specific product using its SKU. This tool helps display cross-sell and upsell items in Magento 2 stores.

Instructions

Get products related to a specific product by SKU

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
skuYesThe SKU (Stock Keeping Unit) of the product

Implementation Reference

  • Handler function that calls Magento API endpoint `/products/{sku}/links/related` to get related product SKUs, then fetches full details for each using `formatProduct`.
    async ({ sku }) => { try { const relatedProducts = await callMagentoApi(`/products/${sku}/links/related`); if (!relatedProducts || relatedProducts.length === 0) { return { content: [ { type: "text", text: `No related products found for SKU: ${sku}` } ] }; } // Get full details for each related product const productPromises = relatedProducts.map(related => callMagentoApi(`/products/${related.linked_product_sku}`) .then(product => formatProduct(product)) .catch(err => ({ sku: related.linked_product_sku, error: err.message })) ); const products = await Promise.all(productPromises); return { content: [ { type: "text", text: JSON.stringify(products, null, 2) } ] }; } catch (error) { return { content: [ { type: "text", text: `Error fetching related products: ${error.message}` } ], isError: true }; } }
  • Input schema defining the required 'sku' parameter as a string.
    sku: z.string().describe("The SKU (Stock Keeping Unit) of the product") },
  • mcp-server.js:533-583 (registration)
    Tool registration using `server.tool()` including name, description, input schema, and handler reference.
    server.tool( "get_related_products", "Get products related to a specific product by SKU", { sku: z.string().describe("The SKU (Stock Keeping Unit) of the product") }, async ({ sku }) => { try { const relatedProducts = await callMagentoApi(`/products/${sku}/links/related`); if (!relatedProducts || relatedProducts.length === 0) { return { content: [ { type: "text", text: `No related products found for SKU: ${sku}` } ] }; } // Get full details for each related product const productPromises = relatedProducts.map(related => callMagentoApi(`/products/${related.linked_product_sku}`) .then(product => formatProduct(product)) .catch(err => ({ sku: related.linked_product_sku, error: err.message })) ); const products = await Promise.all(productPromises); return { content: [ { type: "text", text: JSON.stringify(products, null, 2) } ] }; } catch (error) { return { content: [ { type: "text", text: `Error fetching related products: ${error.message}` } ], isError: true }; } } );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/boldcommerce/magento2-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server