Storefront MCP Server
Connect your AI agent to a specific Fynd store's catalog, shopping cart, and policies. The Storefront MCP server helps customers browse and buy with their selected merchant.
How it works
The Storefront MCP server lets your AI agent handle shopping tasks for the selected store:
- A shopper asks about products while browsing a store
- Your agent searches the store's catalog and manages carts
- The shopper adds items and completes checkout
Connect to the server
Each Fynd store has its own MCP server endpoint that exposes storefront features. This endpoint handles all server calls for product search, cart operations, and policy questions:
https://storedomain.com/api/mcp
This endpoint is unique to each store and gives access to all storefront commerce capabilities. Your app needs to configure this endpoint based on which store the customer is shopping with.
By using the Fynd MCP servers, you agree to the Fynd API License and Terms of Use.
Create an API request to the Storefront MCP server
Storefront MCP servers don't require authentication:
- Replace
storedomainwith the store's actual domain - Send requests to the store's MCP endpoint
- Include the
Content-Typeheader
Here's how to set up a request:
// Basic setup for Storefront MCP server requests
const storeDomain = 'your-store.fynd.com';
const mcpEndpoint = `https://${storeDomain}/api/mcp`;
// Example request using the endpoint
fetch(mcpEndpoint, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'tools/call',
id: 1,
params: {
name: 'catalog_getProducts',
arguments: {
q: 'coffee',
pageSize: 20,
sortOn: 'popularity',
filters: true
}
}
})
});
Available Tools
The Storefront MCP server provides access to the following tools organized by service categories:
Cart Management
cart_getCart
Get details of a cart linked to a specific customer using a unique cart ID. It offers an overview of the items, quantities, prices, and other relevant information associated with the cart.
Parameters:
id(required): The unique identifier of an existing cart. If provided, it will be used to get the existing cart details.xOrderingSource(optional): Ordering source header, to be used to identify source of order creation.i(optional): Selecttrueto retrieve all the items added in the cart.b(optional): Selecttrueto retrieve the price breakup of cart items.c(optional): Selecttrueto retrieve the cod charges in breakup of cart items.areaCode(optional): A standardized code (typically a pincode, ZIP code, or postal code) representing a geographic area where services are currently available to customers.buyNow(optional): Selecttrueto set/initialize buy now cart.orderType(optional): The order type of shipment HomeDelivery - If the customer wants the order home-delivered, PickAtStore - If the customer wants the handover of an order at the store itself.
cart_addItems
Add products to your shopping cart. If you don't have an existing cart, a new one will be created automatically.
Parameters:
xOrderingSource(optional): Ordering source header, to be used to identify source of order creation.i(optional): Selecttrueto retrieve all the items added in the cart.b(optional): Selecttrueto retrieve the price breakup of cart items.areaCode(optional): A standardized code (typically a pincode, ZIP code, or postal code) representing a geographic area where services are currently available to customers.buyNow(optional): Selecttrueto set/initialize buy now cart.id(optional): The unique identifier of an existing cart. If provided, the operation will be performed on this cart instead of creating a new one.orderType(optional): The order type of shipment HomeDelivery - If the customer wants the order home-delivered, PickAtStore - If the customer wants the handover of an order at the store itself.
Body Parameters:
items(required): Array of items to add to cartnew_cart(optional): Boolean to create a new cart
cart_updateCart
Update attributes of existing items in your shopping cart. Unlike addItems which adds new products to cart, this method modifies existing cart items. This endpoint requires your cart ID to perform the updates.
Parameters:
xOrderingSource(optional): Ordering source header, to be used to identify source of order creation.id(optional): The unique identifier of an existing cart. If provided, the operation will be performed on this cart items.i(optional): Selecttrueto retrieve all the items added in the cart.b(optional): Selecttrueto retrieve the price breakup of cart items.areaCode(optional): A standardized code (typically a pincode, ZIP code, or postal code) representing a geographic area where services are currently available to customers.buyNow(optional): Selecttrueto set/initialize buy now cart.orderType(optional): The order type of shipment HomeDelivery - If the customer wants the order home-delivered PickAtStore - If the customer wants the handover of an order at the store itself.
Body Parameters:
items(required): Array of items to update in cartfree_gift_items(optional): Array of free gift itemsoperation(required): Operation type - "update_item" or "remove_item"free_gift_items_operation(optional): Operation for free gift items - "add" or "remove"
cart_deleteCart
Delete all items from the user's cart and resets it to its initial state, providing a clean slate for new selections.
Parameters:
id(required): The unique identifier of an existing cart. If provided, it will be used to get the existing cart items to be deleted.
cart_getItemCount
Get total count of items currently present in the customer's cart.
Parameters:
id(required): The unique identifier of an existing cart. If provided, it will be used to get the existing cart items count.buyNow(optional): Boolean value to get buy_now cart.
cart_getCoupons
List all available coupons that customer can apply to their carts. It provides details about each coupon, including its code, discount amount, and applicable conditions.
Parameters:
id(optional): The unique identifier of an existing cart. If provided, the operation will be performed on this cart items.buyNow(optional): Whether to get buy_now cart.productSlug(optional): Product slug to fetch the available coupons.storeId(optional): The unique identifier of a store.
cart_applyCoupon
Apply a coupon code to the cart to trigger discounts on eligible items. There can be coupons which may not be listed in the get coupons API but can still be applied directly to the cart using this endpoint.
Parameters:
xOrderingSource(optional): Ordering source header, to be used to identify source of order creation.i(optional): Selecttrueto retrieve all the items added in the cart.b(optional): Selecttrueto retrieve the price breakup of cart items.p(optional): Selecttruefor getting a payment option in response.buyNow(optional): Boolean value to get buy_now cart.
Body Parameters:
coupon_code(required): The coupon code to applyuid(required): User ID for the cart
cart_removeCoupon
Remove an applied coupon from the customer's cart, thereby removing the associated discount from the cart total.
Parameters:
xOrderingSource(optional): Ordering source header, to be used to identify source of order creation.uid(optional): The unique identifier of an existing cart. If provided, the operation will be performed on this cart items.buyNow(optional): Whether to get buy_now cart.
cart_getCartShareLink
Generate a unique shareable link for the customer's cart for a specific sales channel. This link enables easy sharing of the cart contents with other users, facilitating collaborative shopping experiences.
Body Parameters:
id(required): The cart ID to generate share link formeta(optional): Additional metadata for the share link
Catalog Management
catalog_getProductDetailBySlug
Get product details such as price, attributes, HSN code, SKU code, etc.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a product. You can get slug value from the endpoint /service/application/catalog/v1.0/products/.
catalog_getProductSizesBySlug
Provides detailed information about a product, including its availability (sellable), available sizes with quantities, dimensions, weight, availability status, price details (marked, effective, selling), minimum order quantity (MOQ).
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a product. You can get slug value from the endpoint /service/application/catalog/v1.0/products/.storeId(optional): The ID of the store that is selling the product, e.g. 1,2,3.
catalog_getProductVariantsBySlug
Get all available variants of a specific product identified by its slug.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a product. You can get slug value from the endpoint /service/application/catalog/v1.0/products/.
catalog_getProductStockByIds
Get the current stock status for products identified by their IDs, such as SKU, ALU, EAN, etc.
Parameters:
itemId(optional): The Item ID of the product (Max. 50 allowed).alu(optional): ALU of the product (limited upto 50 ALU identifier in a single request).skuCode(optional): Stock-keeping Unit of the product (limited upto 50 SKU Code in a single request).ean(optional): European Article Number of the product (limited upto 50 EAN identifier in a single request).upc(optional): Universal Product Code of the product (limited upto 50 UPC identifier in a single request).
catalog_getProducts
List all products available in the catalog. It supports filtering based on product name, brand, department, category, collection, and more, while also offering sorting options based on factors like price, ratings, discounts, and other relevant criteria.
Parameters:
q(optional): The search query for entering partial or full name of product, brand, category, or collection.f(optional): Filter products using available filter keys and values. The response includes available filters in thefiltersarray. Use||to separate multiple values for the same key (OR logic) and:::to separate different keys (AND logic). Available filter keys are dynamic and can be retrieved by setting thefiltersparameter totrue. Example:f=brand:nike||adidas:::department:fashionfilters for Nike or Adidas brands in the Fashion department.filters(optional): True for fetching all filter parameters and False for disabling the filter parameters.sortOn(optional): The order in which the list of products should be sorted, e.g. popularity, price, latest and discount, in either ascending or descending order. See the supported values below.pageId(optional): Page ID to retrieve next set of results.pageSize(optional): The number of items to retrieve in each page.pageNo(optional): The page number to navigate through the given set of results.pageType(optional): Available pagination types are cursor or number.
catalog_getBrands
Get a list of all the available brands. Filtering can be applied to the department.
Parameters:
department(optional): The name of the department. Use this parameter to filter products by a particular department. See the list of available departments below. Also, you can get available departments from the endpoint /service/application/catalog/v1.0/departments/.pageNo(optional): The page number to navigate through the given set of results.pageSize(optional): The number of items to retrieve in each page.
catalog_getBrandDetailBySlug
Get metadata of a brand such as name, information, logo, banner, etc.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a brand. You can get slug value from the endpoint /service/application/catalog/v1.0/brands/.
catalog_getCategories
List all available product categories. Also, users can filter the categories by department.
Parameters:
department(optional): The name of the department. Use this parameter to filter products by a particular department. See the list of available departments below. Also, you can get available departments from the endpoint /service/application/catalog/v1.0/departments/.
catalog_getCategoryDetailBySlug
Get detailed information about a specific product category using its slug and get metadata of a category such as name, information, logo, banner, etc.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a brand. You can get slug value from the endpoint /service/application/catalog/v1.0/brands/.
catalog_getDepartments
List all departments associated with available products.
Parameters: None
catalog_getCollections
List of curated product collections with filtering options based on tags and collection names.
Parameters:
pageNo(optional): The page number to navigate through the given set of results.pageSize(optional): The number of items to retrieve in each page.tag(optional): List of tags to filter collections.q(optional): Name of the collection to filter collection.
catalog_getCollectionItemsBySlug
Fetch items within a particular collection identified by its slug.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a collection. You can get slug value from the endpoint /service/application/catalog/v1.0/collections/.f(optional): The search filter parameters. Filter parameters will be passed in f parameter as shown in the example below. Double Pipe (||) denotes the OR condition, whereas Triple-colon (:::) indicates a new filter parameter applied as an AND condition.q(optional): The search query for entering partial or full name of product, brand, category, or collection.filters(optional): True for fetching all filter parameters and False for disabling the filter parameters.sortOn(optional): The order in which the list of products should be sorted, e.g. popularity, price, latest and discount, in either ascending or descending order. See the supported values below.pageId(optional): Page ID to retrieve next set of results.pageSize(optional): The number of items to retrieve in each page.pageNo(optional): Page Number to retrieve next set of results.pageType(optional): Page Type to retrieve set of results can be cursor or number.
catalog_getCollectionDetailBySlug
Get detailed information about a specific collection using its slug.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a collection. You can get slug value from the endpoint /service/application/catalog/v1.0/collections/.
catalog_getStores
List all stores associated with the sales channel.
Parameters:
pageNo(optional): The page number to navigate through the given set of results.pageSize(optional): Number of items to retrieve in each page.q(optional): Search a store by its name or store_code.city(optional): Search stores by the city in which they are situated.range(optional): Use this to retrieve stores within a particular range in meters, e.g. 10000, to indicate a 10km range.latitude(optional): Latitude of the location from where one wants to retrieve the nearest stores, e.g. 72.8691788.longitude(optional): Longitude of the location from where one wants to retrieve the nearest stores, e.g. 19.1174114.tags(optional): Search stores based on tags.
catalog_getProductPriceBySlug
Get the price of a product size at all the selling locations near to a PIN Code.
Parameters:
slug(required): A short, human-readable, URL-friendly identifier of a product. You can get slug value from the endpoint /service/application/catalog/v1.0/products/.size(required): A string indicating the size of the product, e.g. S, M, XL. You can get slug value from the endpoint /service/application/catalog/v1.0/products/sizes.storeId(optional): The ID of the store that is selling the product, e.g. 1,2,3.moq(optional): An Integer indication the Minimum Order Quantity of a product, e.g. 100.fulfillmentOptionSlug(optional): specifies the fulfillment method, indicating whether an order is for home delivery or store pickup.
Content Management
content_getLegalInformation
Get legal policies for an application which includes Terms and conditions, return policy, shipping policy and privacy policy.
Parameters: None
Tool Categories Summary
| Category | Tool Count | Description |
|---|---|---|
| Cart Management | 9 | Complete shopping cart operations including add, update, delete, coupons, and sharing |
| Catalog Management | 15 | Product search, filtering, categories, brands, collections, stores, and pricing |
| Content Management | 1 | Legal information and store policies |