protogrid

Search / com.beautifiedyou/store

BeautifiedYou

R0· no sign-in

Search professional skincare and supplements, see prices and stock, build a cart, and check out.

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality72new
Trust83of 100
Uptime, 30 days100%
Latency p50262 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "store": {
      "type": "http",
      "url": "https://www.beautifiedyou.com/api/mcp"
    }
  }
}
claude mcp add --transport http store https://www.beautifiedyou.com/api/mcp
[mcp_servers.store]
url = "https://www.beautifiedyou.com/api/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "store": {
      "type": "remote",
      "url": "https://www.beautifiedyou.com/api/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "store": {
      "type": "http",
      "url": "https://www.beautifiedyou.com/api/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=store&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd3d3LmJlYXV0aWZpZWR5b3UuY29tL2FwaS9tY3AifQ%3D%3D"
}
{
  "servers": {
    "store": {
      "type": "http",
      "url": "https://www.beautifiedyou.com/api/mcp"
    }
  }
}
{
  "mcpServers": {
    "store": {
      "httpUrl": "https://www.beautifiedyou.com/api/mcp"
    }
  }
}
extensions:
  "store":
    enabled: true
    name: "store"
    type: streamable_http
    uri: "https://www.beautifiedyou.com/api/mcp"
    timeout: 300

Quality 72 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene69 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length4 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: remove_item_from_cart (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_products (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); update_cart_item (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 5,111 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pull, stability.new_linkstool history recorded for 1 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

6 tools, about 5,111 tokens to load them all · tool set 5f854fb6419c · tools last changed 2026-11-12 · checked 2026-11-14 07:03 UTC

Tool changes

  • update_cart_itemchangeddescription
    before

    Change an item that is already in the shopping cart. Use this tool to change the quantity, the variant, or the modifier options of one cart item. A cart must exist and must have items. Steps 1. Call the 'add_item_to_cart' tool to put an item in the cart. 2. Call this tool to change the item. 3. Call the 'create_checkout_url' tool to get a checkout URL. Rules Send 'line_item_id' to select the cart item to change. It is the 'entityId' of that item in the cart that the last cart tool call returned, for example 'add_item_to_cart'. It is not 'productEntityId' or 'variantEntityId'. Send 'quantity' and 'productEntityId' in 'item'. If the product has variants, send 'variantEntityId'. Modifier options 'item.selectedOptions' works as it works in the 'add_item_to_cart' tool. The 'get_product_details' tool returns these options in 'modifierOptions'. If the product has required modifier options, send them again in this request. If you do not send them, the server does not change the item. Send only the buckets that you need.

    after · 84% of words in common

    Change an item that is already in the shopping cart. Use this tool to change the quantity, the variant, or the modifier options of one cart item. A cart must exist and must have items. Steps 1. Call the 'add_item_to_cart' tool to put an item in the cart. 2. Call this tool to change the item. 3. Call the 'create_checkout_url' tool to get a checkout URL. Rules Send 'line_item_id' to select the cart item to change. It is the 'entityId' of that item in the cart that the last cart tool call returned, for example 'add_item_to_cart'. It is not 'productEntityId' or 'variantEntityId'. Send 'quantity' and 'productEntityId' in 'item'. If the configuration that the user chose has a variant, send 'variantEntityId'. If it has no variant, see "Configurations with no variant" in the 'add_item_to_cart' tool. The same rules apply here, including when to send 'variantEntityId' as null. Modifier options 'item.selectedOptions' works as it works in the 'add_item_to_cart' tool. The 'get_product_details' tool returns these options in 'modifierOptions'. If the product has required modifier options, send them again in this request. If you do not send them, the server does not change the item. Send only the buckets that you need.

  • get_product_detailschangeddescription, output schema
    before

    Get the details of one or more products. The details are the variants, the options, and the images. Arguments productIds - The list of product IDs. Get these IDs from the 'search_products' tool. Request only the products that the user needs. The server has a maximum count of IDs. The default maximum is 20. If you send too many IDs, the server returns an error. Then send fewer IDs. option_values - The option IDs and the value IDs of one variant. Use this argument with one product ID only. This argument applies to the B2C catalog. For a B2B buyer, the tool returns all the variants. Then select one variant. channelId - Optional. This argument selects the B2B catalog. The default is the channel of the request. variantCursor - Optional. This argument gets the next page of variants. Use this argument with one product ID only. Take the value from 'nextVariantCursor' in the previous result. If 'nextVariantCursor' is absent, or is null, or is the text "null", do not send this argument. Results The tool returns a list of products in 'products'. The output schema gives all the fields. A product has 'modifierOptions' only if the product has modifier options. A variant has a price, an inventory level, a purchase flag, and bulk prices only for a B2B buyer. If the tool does not find a product, the list does not include that product. Modifier options A modifier option is a product choice that is not a variant. Examples are an engraving message and a gift note. A variant option is never a modifier option. If a product has no 'modifierOptions', add the product to the cart without 'selectedOptions'. An option is required if 'isRequired' is 'true'. Send each required option to the 'add_item_to_cart' tool. If you do not send a required option, the server does not add the item. A variant selection does not replace a required option. Each option has 'optionEntityId', 'displayName', and 'selectedOptionsKey'. 'selectedOptionsKey' is the name of the field to send the option in. A choice option has 'values'. Each value has 'valueEntityId' and 'label'. A free-entry option has 'constraints' in place of 'values'. If 'unsupported' is 'true', you cannot send the option. A file upload is one example. If such an option is also required, tell the user to buy the product on the website. Variant pages The list of variants can be one page of a longer list. The server sets the page size. If 'hasMoreVariants' is 'true', more variants exist than the tool returned. Then do not tell the user that a variant does not exist. You did not receive all the variants. To get the next page, call this tool again. Send the same product ID, and only that product ID. Send 'variantCursor' with the value of 'nextVariantCursor'. A filter is better than a page walk. If the user named the variant, send 'option_values' instead. One filtered call is cheaper than many pages. Do not change 'option_values' between pages. The cursor is a position in the list of the previous call. A different filter gives the wrong variants. Stock Each product has 'inStock'. It tells you if the store has units in stock. It does not tell you if the user can buy the product. If 'inStock' is 'false', do not refuse the request. Many stores accept orders for products that are not in stock. Tell the user that the product is not in stock, and that delivery can take more time. Then add the product if the user agrees. If the store blocks the purchase, the 'add_item_to_cart' tool fails and gives a reason. Give that reason to the user. If 'inStock' is 'true', the store reports no out-of-stock condition. A store that does not count stock reports 'true' for all products. Therefore do not tell the user a quantity. 'inventoryLevel' is present only if the store publishes stock counts. If 'inventoryLevel' is absent, the count is unknown. The count is not zero. Each variant has its own 'inStock'. Use the value of the variant if you add one variant. Steps 1. Call the 'search_products'

    after · 87% of words in common

    Get the details of one or more products. The details are the variants, the options, and the images. Arguments productIds - The list of product IDs. Get these IDs from the 'search_products' tool. Request only the products that the user needs. The server has a maximum count of IDs. The default maximum is 20. If you send too many IDs, the server returns an error. Then send fewer IDs. option_values - The option IDs and the value IDs of one variant. Use this argument with one product ID only. This argument applies to the B2C catalog. For a B2B buyer, the tool returns all the variants. Then select one variant. channelId - Optional. This argument selects the B2B catalog. The default is the channel of the request. variantCursor - Optional. This argument gets the next page of variants. Use this argument with one product ID only. Take the value from 'nextVariantCursor' in the previous result. If 'nextVariantCursor' is absent, or is null, or is the text "null", do not send this argument. Results The tool returns a list of products in 'products'. The output schema gives all the fields. A product has 'modifierOptions' only if the product has modifier options. A product has 'variantOptions' only if the product has variant options. A variant has a price, an inventory level, a purchase flag, and bulk prices only for a B2B buyer. If the tool does not find a product, the list does not include that product. Modifier options A modifier option is a product choice that is not a variant. Examples are an engraving message and a gift note. A variant option is never a modifier option. If a product has no 'modifierOptions', add the product to the cart without 'selectedOptions'. An option is required if 'isRequired' is 'true'. Send each required option to the 'add_item_to_cart' tool. If you do not send a required option, the server does not add the item. A variant selection does not replace a required option. Each option has 'optionEntityId', 'displayName', and 'selectedOptionsKey'. 'selectedOptionsKey' is the name of the field to send the option in. A choice option has 'values'. Each value has 'valueEntityId' and 'label'. A free-entry option has 'constraints' in place of 'values'. If 'unsupported' is 'true', you cannot send the option. A file upload is one example. If such an option is also required, tell the user to buy the product on the website. Variant options A variant option is a product choice that selects a variant. Examples are a size and a colour. The tool returns these options in 'variantOptions'. Each option has 'optionEntityId', 'displayName', 'isRequired', and 'values'. Each value has 'valueEntityId' and 'label'. The default value has 'isDefault'. A variant lists only the values that it uses. A value can have no variant. The default value, such as "None", is often one. 'variantOptions' lists every value, so use it to find a value that no variant lists. 'hasVariant' tells you if a variant in the list uses the value. The tool sets 'hasVariant' only if it returned the whole list of variants. That is when 'hasMoreVariants' is absent and you sent no 'option_values' and no 'variantCursor'. For a B2B buyer the tool always returns the whole list, and the list includes variants that cannot be bought. If 'hasVariant' is 'false', no variant that can be bought uses the value. The value has no variant, or its variants are not on sale now. If the list of variants is empty, every value has 'hasVariant' of 'false'. If 'hasVariant' is absent, you do not know. 'hasVariant' is about one value. If the product has more than one variant option, a combination of values can have no variant even if each value has one. Variant pages The list of variants can be one page of a longer list. The server sets the page size. If 'hasMoreVariants' is 'true', more variants exist than the tool returned. Then do not tell the user that a variant does not exist. You did not receive all the variants. To get the next page, call this tool again

  • add_item_to_cartchangeddescription
    before

    Add one or more items to the shopping cart. If no cart exists, this tool makes a new cart. This tool adds products and gift certificates. Steps 1. Call the 'search_products' tool to find a product. 2. Call the 'get_product_details' tool to get the variants and the modifier options. 3. Call this tool to add the item. 4. Call the 'create_checkout_url' tool to get a checkout URL. The response returns the whole cart. Each item in 'cart.lineItems' has an 'entityId'. Use it as 'line_item_id' in the 'update_cart_item' tool. Use it as 'item_id' in the 'remove_item_from_cart' tool. Rules Send 'quantity' and 'productEntityId' for each item. If the product has variants, send 'variantEntityId'. Modifier options A modifier option is a product choice that is not a variant. Examples are an engraving message and a nicotine strength. The 'get_product_details' tool returns these options in 'modifierOptions'. If the product has no 'modifierOptions', do not send 'selectedOptions'. Do not send a variant option in 'selectedOptions'. Send a variant in 'variantEntityId'. An option is required if 'isRequired' is 'true'. Send each required option. If you do not send a required option, the server does not add the item. To send an option: 1. Read the bucket name from 'selectedOptionsKey'. 2. Add the option to 'item.selectedOptions' in that bucket. 3. Send the 'optionEntityId' of the option. 4. For a choice option, send the 'valueEntityId' of the value that the user selected. Send only the buckets that you need. Example. A required choice option has a 'selectedOptionsKey' of "multipleChoices", an 'optionEntityId' of 108, and a selected value with a 'valueEntityId' of 251: { "item": { "quantity": 1, "productEntityId": 88, "variantEntityId": 67, "selectedOptions": { "multipleChoices": [ { "optionEntityId": 108, "optionValueEntityId": 251 } ] } } } A free-entry bucket takes a typed value in place of an ID. 'textFields' and 'multiLineTextFields' take "text". 'numberFields' takes "number". 'dateFields' takes "date". Obey the 'constraints' of the option. If a required option has more than one value, ask the user to select one value. Do not select a value yourself. Do not use the default value. If 'unsupported' is 'true', you cannot send the option. If such an option is also required, tell the user to buy the product on the website.

    after · 72% of words in common

    Add one or more items to the shopping cart. If no cart exists, this tool makes a new cart. This tool adds products and gift certificates. Steps 1. Call the 'search_products' tool to find a product. 2. Call the 'get_product_details' tool to get the variants and the modifier options. 3. Call this tool to add the item. 4. Call the 'create_checkout_url' tool to get a checkout URL. The response returns the whole cart. Each item in 'cart.lineItems' has an 'entityId'. Use it as 'line_item_id' in the 'update_cart_item' tool. Use it as 'item_id' in the 'remove_item_from_cart' tool. Rules Send 'quantity' and 'productEntityId' for each item. If the configuration that the user chose has a variant, send 'variantEntityId'. Send 'variantEntityId' as null only for a configuration with no variant. See "Configurations with no variant" for when this is allowed. Modifier options A modifier option is a product choice that is not a variant. Examples are an engraving message and a nicotine strength. The 'get_product_details' tool returns these options in 'modifierOptions'. If the product has no 'modifierOptions' and you send a variant, do not send 'selectedOptions'. If you send a variant in 'variantEntityId', do not send a variant option in 'selectedOptions'. The variant sets those options. An option is required if 'isRequired' is 'true'. Send each required option. If you do not send a required option, the server does not add the item. To send an option: 1. Read the bucket name from 'selectedOptionsKey'. 2. Add the option to 'item.selectedOptions' in that bucket. 3. Send the 'optionEntityId' of the option. 4. For a choice option, send 'optionValueEntityId'. Its number is the 'valueEntityId' of the value that the user selected. Send only the buckets that you need. Example. A required choice option has a 'selectedOptionsKey' of "multipleChoices", an 'optionEntityId' of 108, and a selected value with a 'valueEntityId' of 251: { "item": { "quantity": 1, "productEntityId": 88, "variantEntityId": 67, "selectedOptions": { "multipleChoices": [ { "optionEntityId": 108, "optionValueEntityId": 251 } ] } } } A free-entry bucket takes a typed value in place of an ID. 'textFields' and 'multiLineTextFields' take "text". 'numberFields' takes "number". 'dateFields' takes "date". Obey the 'constraints' of the option. If a required option has more than one value, ask the user to select one value. Do not select a value yourself. Do not use the default value. If 'unsupported' is 'true', you cannot send the option. If such an option is also required, tell the user to buy the product on the website. Configurations with no variant A variant option value can have no variant. The default value, such as "None", is often one. The 'get_product_details' tool lists every value in 'variantOptions'. A value with 'hasVariant' of 'false' is used by no variant that can be bought. It has no variant, or its variants are not on sale now, for example because they are out of stock. Send 'variantEntityId' as null only if all of these are true: - The user chose a value with 'hasVariant' of 'false'. - 'variants' is not empty. If it is empty, every value has 'hasVariant' of 'false', and the product may not be on sale. Do not add the product. Tell the user. If every value that the user chose has 'hasVariant' of 'true', and no variant in 'variants' matches all of the values, that configuration does not exist. Do not add the base product in its place. Tell the user that the configuration is not available. If the store has no variant for the configuration, it adds the base product. If a variant exists but cannot be bought, the server rejects the item. Give that reason to the user. To add it: 1. Send 'variantEntityId' as null. 2. Send every variant option of the product in 'item.selectedOptions.multipleChoices'. Send the 'optionEntityId' of the option and the 'optionValueEntityId' of the value that t

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-2d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://www.beautifiedyou.com/api/mcp streamable-httpnoneyes100%262 ms2025-11-252026-11-14

Tools (6)

add_item_to_cart Add one or more items to the shopping cart. If no cart exists, this tool makes a new cart. This tool adds products and gift certificates. Steps 1. Call the 'search_products' tool to find a product. 2. Call the 'get_product_details' tool to get the variants and the modifier options. 3. Call this tool to add the item. 4. Call the 'create_checkout_url' tool to get a checkout URL. The response returns the whole cart. Each item in 'cart.lineItems' has an 'entityId'. Use it as 'line_item_id' in the 'update_cart_item' tool. Use it as 'item_id' in the 'remove_item_from_cart' tool. Rules Send 'quantity' and 'productEntityId' for each item. If the configuration that the user chose has a variant, send 'variantEntityId'. Send 'variantEntityId' as null only for a configuration with no variant. See "Configurations with no variant" for when this is allowed. Modifier options A modifier option is a product choice that is not a variant. Examples are an engraving message and a nicotine strength. The 'get_product_details' tool returns these options in 'modifierOptions'. If the product has no 'modifierOptions' and you send a variant, do not send 'selectedOptions'. If you send a variant in 'variantEntityId', do not send a variant option in 'selectedOptions'. The variant sets those options. An option is required if 'isRequired' is 'true'. Send each required option. If you do not send a required option, the server does not add the item. To send an option: 1. Read the bucket name from 'selectedOptionsKey'. 2. Add the option to 'item.selectedOptions' in that bucket. 3. Send the 'optionEntityId' of the option. 4. For a choice option, send 'optionValueEntityId'. Its number is the 'valueEntityId' of the value that the user selected. Send only the buckets that you need. Example. A required choice option has a 'selectedOptionsKey' of "multipleChoices", an 'optionEntityId' of 108, and a selected value with a 'valueEntityId' of 251: { "item": { "quantity": 1, "productEntityId": 88, "variantEntityId": 67, "selectedOptions": { "multipleChoices": [ { "optionEntityId": 108, "optionValueEntityId": 251 } ] } } } A free-entry bucket takes a typed value in place of an ID. 'textFields' and 'multiLineTextFields' take "text". 'numberFields' takes "number". 'dateFields' takes "date". Obey the 'constraints' of the option. If a required option has more than one value, ask the user to select one value. Do not select a value yourself. Do not use the default value. If 'unsupported' is 'true', you cannot send the option. If such an option is also required, tell the user to buy the product on the website. Configurations with no variant A variant option value can have no variant. The default value, such as "None", is often one. The 'get_product_details' tool lists every value in 'variantOptions'. A value with 'hasVariant' of 'false' is used by no variant that can be bought. It has no variant, or its variants are not on sale now, for example because they are out of stock. Send 'variantEntityId' as null only if all of these are true: - The user chose a value with 'hasVariant' of 'false'. - 'variants' is not empty. If it is empty, every value has 'hasVariant' of 'false', and the product may not be on sale. Do not add the product. Tell the user. If every value that the user chose has 'hasVariant' of 'true', and no variant in 'variants' matches all of the values, that configuration does not exist. Do not add the base product in its place. Tell the user that the configuration is not available. If the store has no variant for the configuration, it adds the base product. If a variant exists but cannot be bought, the server rejects the item. Give that reason to the user. To add it: 1. Send 'variantEntityId' as null. 2. Send every variant option of the product in 'item.selectedOptions.multipleChoices'. Send the 'optionEntityId' of the option and the 'optionValueEntityId' of the value that the user selected. Send the options that have a variant too, not only the value that has none. 3. Send each required modifier option as usual. Example. Variant option 81 has the value 899, which has no variant. Required modifier option 108 has the value 251: { "item": { "quantity": 1, "productEntityId": 88, "variantEntityId": null, "selectedOptions": { "multipleChoices": [ { "optionEntityId": 81, "optionValueEntityId": 899 }, { "optionEntityId": 108, "optionValueEntityId": 251 } ] } } } If you leave out a variant option, the server rejects the item with the message "This product has options, variant ID is required". The message is misleading. A variant option that you did not send, or a value that does not belong to the option, causes it.
create_checkout_url CreateResult a checkout URL for a cart assigned to a current session Arguments: None, but requires a cart to be present in the current session. Returns: - checkoutURL - the URL to redirect the user to for checkout - errors - any errors encountered during the process (like, cart not found, etc.) Flow: - Call 'manage_cart' with 'create_cart' operation to create a new cart. - Call this tool to create a checkout URL for the cart assigned to the current session.
get_product_details Get the details of one or more products. The details are the variants, the options, and the images. Arguments productIds - The list of product IDs. Get these IDs from the 'search_products' tool. Request only the products that the user needs. The server has a maximum count of IDs. The default maximum is 20. If you send too many IDs, the server returns an error. Then send fewer IDs. option_values - The option IDs and the value IDs of one variant. Use this argument with one product ID only. This argument applies to the B2C catalog. For a B2B buyer, the tool returns all the variants. Then select one variant. channelId - Optional. This argument selects the B2B catalog. The default is the channel of the request. variantCursor - Optional. This argument gets the next page of variants. Use this argument with one product ID only. Take the value from 'nextVariantCursor' in the previous result. If 'nextVariantCursor' is absent, or is null, or is the text "null", do not send this argument. Results The tool returns a list of products in 'products'. The output schema gives all the fields. A product has 'modifierOptions' only if the product has modifier options. A product has 'variantOptions' only if the product has variant options. A variant has a price, an inventory level, a purchase flag, and bulk prices only for a B2B buyer. If the tool does not find a product, the list does not include that product. Modifier options A modifier option is a product choice that is not a variant. Examples are an engraving message and a gift note. A variant option is never a modifier option. If a product has no 'modifierOptions', add the product to the cart without 'selectedOptions'. An option is required if 'isRequired' is 'true'. Send each required option to the 'add_item_to_cart' tool. If you do not send a required option, the server does not add the item. A variant selection does not replace a required option. Each option has 'optionEntityId', 'displayName', and 'selectedOptionsKey'. 'selectedOptionsKey' is the name of the field to send the option in. A choice option has 'values'. Each value has 'valueEntityId' and 'label'. A free-entry option has 'constraints' in place of 'values'. If 'unsupported' is 'true', you cannot send the option. A file upload is one example. If such an option is also required, tell the user to buy the product on the website. Variant options A variant option is a product choice that selects a variant. Examples are a size and a colour. The tool returns these options in 'variantOptions'. Each option has 'optionEntityId', 'displayName', 'isRequired', and 'values'. Each value has 'valueEntityId' and 'label'. The default value has 'isDefault'. A variant lists only the values that it uses. A value can have no variant. The default value, such as "None", is often one. 'variantOptions' lists every value, so use it to find a value that no variant lists. 'hasVariant' tells you if a variant in the list uses the value. The tool sets 'hasVariant' only if it returned the whole list of variants. That is when 'hasMoreVariants' is absent and you sent no 'option_values' and no 'variantCursor'. For a B2B buyer the tool always returns the whole list, and the list includes variants that cannot be bought. If 'hasVariant' is 'false', no variant that can be bought uses the value. The value has no variant, or its variants are not on sale now. If the list of variants is empty, every value has 'hasVariant' of 'false'. If 'hasVariant' is absent, you do not know. 'hasVariant' is about one value. If the product has more than one variant option, a combination of values can have no variant even if each value has one. Variant pages The list of variants can be one page of a longer list. The server sets the page size. If 'hasMoreVariants' is 'true', more variants exist than the tool returned. Then do not tell the user that a variant does not exist. You did not receive all the variants. To get the next page, call this tool again. Send the same product ID, and only that product ID. Send 'variantCursor' with the value of 'nextVariantCursor'. A filter is better than a page walk. If the user named the variant, send 'option_values' instead. One filtered call is cheaper than many pages. Do not change 'option_values' between pages. The cursor is a position in the list of the previous call. A different filter gives the wrong variants. Stock Each product has 'inStock'. It tells you if the store has units in stock. It does not tell you if the user can buy the product. If 'inStock' is 'false', do not refuse the request. Many stores accept orders for products that are not in stock. Tell the user that the product is not in stock, and that delivery can take more time. Then add the product if the user agrees. If the store blocks the purchase, the 'add_item_to_cart' tool fails and gives a reason. Give that reason to the user. If 'inStock' is 'true', the store reports no out-of-stock condition. A store that does not count stock reports 'true' for all products. Therefore do not tell the user a quantity. 'inventoryLevel' is present only if the store publishes stock counts. If 'inventoryLevel' is absent, the count is unknown. The count is not zero. Each variant has its own 'inStock'. Use the value of the variant if you add one variant. Steps 1. Call the 'search_products' tool to get the product IDs. 2. Call this tool with the product IDs. 3. Call the 'add_item_to_cart' tool with the results of step 1 and step 2. If the configuration that the user chose has a variant, you must tell the 'add_item_to_cart' tool which variant to add. If it has no variant, see "Configurations with no variant" in the 'add_item_to_cart' tool. Do not use that path for a configuration that does not exist. If a product has required modifier options, you must send those options.
remove_item_from_cart Remove an item from the shopping cart. This tool removes the item completely. To lower the quantity, use the 'update_cart_item' tool. Steps 1. Call the 'add_item_to_cart' tool to put items in the cart. 2. Call this tool to remove an item. 3. Call the 'create_checkout_url' tool to get a checkout URL. Rules A cart with items must exist. Send 'item_id' to select the cart item to remove. It is the 'entityId' of that item in the cart that the last cart tool call returned, for example 'add_item_to_cart'. It is not 'productEntityId' or 'variantEntityId'.
search_products Search products by a term Arguments: term - the search term to look for products. It should be at least 3 characters long. cursor - optional, used for pagination. If provided, it will return the next page of results after. Pagination: Supports pagination with 'cursor' arguments. If 'cursor' is not provided, it will return the first page of results. Value for 'cursor' can be obtained from the 'nextCursor' field in the response. If 'nextCursor' is null, it means there are no more results to fetch. If value of cursor is null (or a string representation of 'null') dont send it in the payload. Results: Each product includes 'requiresFileUpload'. When true, the product has a required file-upload option (e.g. "upload your design") and shouldn't be added to cart through this assistant. Do not attempt to purchase it — tell the user it must be ordered on the website. Stock: Each product carries 'inStock'. It reports whether the store has units on hand. It does NOT report whether the item can be bought. - false does NOT mean the purchase will fail. Many stores accept orders for out-of-stock items - backorder, pre-order, or made-to-order goods that are fabricated after ordering. Whether a given store does is not exposed by this API. So: tell the user the item is out of stock and may take longer to arrive, then ADD IT if they still want it. Do not refuse on 'inStock: false' alone. - If the store really does block it, 'add_item_to_cart' fails and returns the reason. Relay that reason to the user. Attempting the add is the only reliable way to find out. - true only means no out-of-stock condition is reported. A store that does not track inventory reports true for every product, so never state or imply a quantity. - 'inventoryLevel' appears only on stores that publish stock figures; absent means undisclosed, not zero. Flow: - Call this tool with a 'term' argument and optionally with 'cursor' to search for products. - if you find a matching product, call 'get_product_details' with the product ID to get its variants and options (if any). - if 'requiresFileUpload' is true, inform the user the product needs a file upload and cannot be purchased here. - Call 'add_item_to_cart' with results of 'search_products' and 'get_product_details' (variant) tools to add the product to the cart. - [IMPORTANT] If product has variants ask user to pick
update_cart_item Change an item that is already in the shopping cart. Use this tool to change the quantity, the variant, or the modifier options of one cart item. A cart must exist and must have items. Steps 1. Call the 'add_item_to_cart' tool to put an item in the cart. 2. Call this tool to change the item. 3. Call the 'create_checkout_url' tool to get a checkout URL. Rules Send 'line_item_id' to select the cart item to change. It is the 'entityId' of that item in the cart that the last cart tool call returned, for example 'add_item_to_cart'. It is not 'productEntityId' or 'variantEntityId'. Send 'quantity' and 'productEntityId' in 'item'. If the configuration that the user chose has a variant, send 'variantEntityId'. If it has no variant, see "Configurations with no variant" in the 'add_item_to_cart' tool. The same rules apply here, including when to send 'variantEntityId' as null. Modifier options 'item.selectedOptions' works as it works in the 'add_item_to_cart' tool. The 'get_product_details' tool returns these options in 'modifierOptions'. If the product has required modifier options, send them again in this request. If you do not send them, the server does not change the item. Send only the buckets that you need.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.beautifiedyou/store",
  "icons": [
    {
      "src": "https://cdn11.bigcommerce.com/s-6c800/images/stencil/original/by_logo_small_1777746535__59376.original.png",
      "mimeType": "image/png"
    }
  ],
  "title": "BeautifiedYou",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://www.beautifiedyou.com/api/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://www.beautifiedyou.com",
  "description": "Search professional skincare and supplements, see prices and stock, build a cart, and check out."
}