Skip to main content
Glama

Get product labels

get_product_labels
Read-onlyIdempotent

Retrieve ingredient lists, allergen statements, may-contain traces and nutrition per 100 g/ml for up to 20 products to check vegan, gluten or allergen needs or total protein.

Instructions

Ingredients, allergens and nutrition for up to 20 products, as the website's copy of each label declares them: the ingredient list, the words it prints in capitals (how labels mark allergens), the allergen and "may contain traces" statements, and nutrients per 100 g or ml. Use it only when a task needs them, such as checking vegan, gluten or allergens, or adding up protein. Nothing is inferred: absence of an allergen in these fields is not a "free from" claim, and the packaging prevails. No login needed.

Input Schema

NameRequiredDescriptionDefault
productIdsYesProducts to read the label of, at most 20.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.12.1
    • changedOutput schema / properties / result / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "data": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "labels": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "error": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "code": {
      -                          "enum": [
      -                            "invalid_data",
      -                            "invalid_input",
      -                            "not_authenticated",
      -                            "upstream_unavailable",
      -                            "not_found",
      -                            "sale_rules_unknown",
      -                            "quantity_below_minimum",
      -                            "cart_change_rejected",
      -                            "cart_change_unconfirmed",
      -                            "cache_unavailable",
      -                            "order_details_unavailable",
      -                            "cancelled",
      -                            "deadline_exceeded",
      -                            "server_closed",
      -                            "queue_full",
      -                            "browser_unavailable"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "issues": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "code": {
      -                                "type": "string"
      -                              },
      -                              "path": {
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "path",
      -                              "code"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "type": "array"
      -                        },
      -                        "message": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "retryable": {
      -                          "type": "boolean"
      -                        }
      -                      },
      -                      "required": [
      -                        "code",
      -                        "message",
      -                        "retryable"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "label": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "allergenStatement": {
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        },
      -                        "emphasised": {
      -                          "anyOf": [
      -                            {
      -                              "items": {
      -                                "type": "string"
      -                              },
      -                              "type": "array"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "ingredients": {
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        },
      -                        "issues": {
      -                          "items": {
      -                            "enum": [
      -                              "nutrition_basis_mismatch"
      -                            ],
      -                            "type": "string"
      -                          },
      -                          "type": "array"
      -                        },
      -                        "mayContain": {
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        },
      -                        "netContent": {
      -                          "anyOf": [
      -                            {
      -                              "additionalProperties": false,
      -                              "properties": {
      -                                "unit": {
      -                                  "enum": [
      -                                    "un",
      -                                    "kg",
      -                                    "g",
      -                                    "l",
      -                                    "ml"
      -                                  ],
      -                                  "type": "string"
      -                                },
      -                                "value": {
      -                                  "minimum": 0,
      -                                  "type": "number"
      -                                }
      -                              },
      -                              "required": [
      -                                "value",
      -                                "unit"
      -                              ],
      -                              "type": "object"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "nutrition": {
      -                          "anyOf": [
      -                            {
      -                              "additionalProperties": false,
      -                              "properties": {
      -                                "nutrients": {
      -                                  "items": {
      -                                    "additionalProperties": false,
      -                                    "properties": {
      -                                      "amount": {
      -                                        "minimum": 0,
      -                                        "type": "number"
      -                                      },
      -                                      "key": {
      -                                        "anyOf": [
      -                                          {
      -                                            "enum": [
      -                                              "energy_kj",
      -                                              "energy_kcal",
      -                                              "fat",
      -                                              "saturated_fat",
      -                                              "carbohydrates",
      -                                              "sugars",
      -                                              "fibre",
      -                                              "protein",
      -                                              "salt"
      -                                            ],
      -                                            "type": "string"
      -                                          },
      -                                          {
      -                                            "type": "null"
      -                                          }
      -                                        ]
      -                                      },
      -                                      "name": {
      -                                        "minLength": 1,
      -                                        "type": "string"
      -                                      },
      -                                      "unit": {
      -                                        "minLength": 1,
      -                                        "type": "string"
      -                                      }
      -                                    },
      -                                    "required": [
      -                                      "name",
      -                                      "key",
      -                                      "amount",
      -                                      "unit"
      -                                    ],
      -                                    "type": "object"
      -                                  },
      -                                  "type": "array"
      -                                },
      -                                "per": {
      -                                  "anyOf": [
      -                                    {
      -                                      "additionalProperties": false,
      -                                      "properties": {
      -                                        "unit": {
      -                                          "enum": [
      -                                            "un",
      -                                            "kg",
      -                                            "g",
      -                                            "l",
      -                                            "ml"
      -                                          ],
      -                                          "type": "string"
      -                                        },
      -                                        "value": {
      -                                          "minimum": 0,
      -                                          "type": "number"
      -                                        }
      -                                      },
      -                                      "required": [
      -                                        "value",
      -                                        "unit"
      -                                      ],
      -                                      "type": "object"
      -                                    },
      -                                    {
      -                                      "type": "null"
      -                                    }
      -                                  ]
      -                                }
      -                              },
      -                              "required": [
      -                                "per",
      -                                "nutrients"
      -                              ],
      -                              "type": "object"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "regulatedName": {
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        },
      -                        "storage": {
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "regulatedName",
      -                        "ingredients",
      -                        "emphasised",
      -                        "allergenStatement",
      -                        "mayContain",
      -                        "storage",
      -                        "netContent",
      -                        "issues",
      -                        "nutrition"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "missing": {
      -                  "items": {
      -                    "enum": [
      -                      "ingredients",
      -                      "allergenStatement",
      -                      "nutrition"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "type": "array"
      -                },
      -                "name": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "productId": {
      -                  "anyOf": [
      -                    {
      -                      "maxLength": 200,
      -                      "minLength": 1,
      -                      "pattern": "^\\d+$",
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "status": {
      -                  "enum": [
      -                    "complete",
      -                    "partial",
      -                    "none",
      -                    "error"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "productId",
      -                "name",
      -                "label",
      -                "error",
      -                "status",
      -                "missing"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "observedAt": {
      -            "format": "date-time",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "observedAt",
      -          "labels"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "enum": [
      -          "success",
      -          "empty",
      -          "partial"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "data"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "error": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "invalid_data",
      -                  "invalid_input",
      -                  "not_authenticated",
      -                  "upstream_unavailable",
      -                  "not_found",
      -                  "sale_rules_unknown",
      -                  "quantity_below_minimum",
      -                  "cart_change_rejected",
      -                  "cart_change_unconfirmed",
      -                  "cache_unavailable",
      -                  "order_details_unavailable",
      -                  "cancelled",
      -                  "deadline_exceeded",
      -                  "server_closed",
      -                  "queue_full",
      -                  "browser_unavailable"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "enum": [
      -                  "internal_error",
      -                  "invalid_result"
      -                ],
      -                "type": "string"
      -              }
      -            ]
      -          },
      -          "issues": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "code": {
      -                  "type": "string"
      -                },
      -                "path": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "path",
      -                "code"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "message": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "retryable": {
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "message",
      -          "retryable"
      -        ],
      -        "type": "object"
      -      },
      -      "mutation": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "outcome": {
      -                "const": "not_applied",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "outcome"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "outcome": {
      -                "const": "unknown",
      -                "type": "string"
      -              },
      -              "recovery": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "action": {
      -                    "const": "get_cart",
      -                    "type": "string"
      -                  },
      -                  "automaticReplay": {
      -                    "const": false,
      -                    "type": "boolean"
      -                  }
      -                },
      -                "required": [
      -                  "action",
      -                  "automaticReplay"
      -                ],
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "outcome",
      -              "recovery"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "signIn": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "action": {
      -            "enum": [
      -              "configure_credentials",
      -              "check_credentials_or_sign_in"
      -            ],
      -            "type": "string"
      -          },
      -          "command": {
      -            "const": "continentept-mcp login --show-browser",
      -            "type": "string"
      -          },
      -          "credentials": {
      -            "enum": [
      -              "configured",
      -              "missing",
      -              "unknown"
      -            ],
      -            "type": "string"
      -          },
      -          "guide": {
      -            "format": "uri",
      -            "type": "string"
      -          },
      -          "publicTools": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "settings": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "claudeDesktopExtension": {
      -                "items": false,
      -                "maxItems": 2,
      -                "minItems": 2,
      -                "prefixItems": [
      -                  {
      -                    "const": "email",
      -                    "type": "string"
      -                  },
      -                  {
      -                    "const": "password",
      -                    "type": "string"
      -                  }
      -                ],
      -                "type": "array"
      -              },
      -              "environment": {
      -                "items": false,
      -                "maxItems": 2,
      -                "minItems": 2,
      -                "prefixItems": [
      -                  {
      -                    "const": "CONTINENTE_EMAIL",
      -                    "type": "string"
      -                  },
      -                  {
      -                    "const": "CONTINENTE_PASSWORD",
      -                    "type": "string"
      -                  }
      -                ],
      -                "type": "array"
      -              }
      -            },
      -            "required": [
      -              "environment",
      -              "claudeDesktopExtension"
      -            ],
      -            "type": "object"
      -          }
      -        },
      -        "required": [
      -          "credentials",
      -          "action",
      -          "settings",
      -          "command",
      -          "guide",
      -          "publicTools"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "error",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "error"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "data": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "labels": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "error": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "code": {
      +                          "enum": [
      +                            "invalid_data",
      +                            "invalid_input",
      +                            "not_authenticated",
      +                            "upstream_unavailable",
      +                            "not_found",
      +                            "sale_rules_unknown",
      +                            "quantity_below_minimum",
      +                            "cart_change_rejected",
      +                            "cart_change_unconfirmed",
      +                            "cache_unavailable",
      +                            "order_details_unavailable",
      +                            "cancelled",
      +                            "deadline_exceeded",
      +                            "server_closed",
      +                            "queue_full",
      +                            "browser_unavailable"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "issues": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "code": {
      +                                "type": "string"
      +                              },
      +                              "path": {
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "path",
      +                              "code"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "type": "array"
      +                        },
      +                        "message": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "retryable": {
      +                          "type": "boolean"
      +                        }
      +                      },
      +                      "required": [
      +                        "code",
      +                        "message",
      +                        "retryable"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "label": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "allergenStatement": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "emphasised": {
      +                          "anyOf": [
      +                            {
      +                              "items": {
      +                                "type": "string"
      +                              },
      +                              "type": "array"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "ingredients": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "issues": {
      +                          "items": {
      +                            "enum": [
      +                              "nutrition_basis_mismatch"
      +                            ],
      +                            "type": "string"
      +                          },
      +                          "type": "array"
      +                        },
      +                        "mayContain": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "netContent": {
      +                          "anyOf": [
      +                            {
      +                              "additionalProperties": false,
      +                              "properties": {
      +                                "unit": {
      +                                  "enum": [
      +                                    "un",
      +                                    "kg",
      +                                    "g",
      +                                    "l",
      +                                    "ml"
      +                                  ],
      +                                  "type": "string"
      +                                },
      +                                "value": {
      +                                  "minimum": 0,
      +                                  "type": "number"
      +                                }
      +                              },
      +                              "required": [
      +                                "value",
      +                                "unit"
      +                              ],
      +                              "type": "object"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "nutrition": {
      +                          "anyOf": [
      +                            {
      +                              "additionalProperties": false,
      +                              "properties": {
      +                                "nutrients": {
      +                                  "items": {
      +                                    "additionalProperties": false,
      +                                    "properties": {
      +                                      "amount": {
      +                                        "minimum": 0,
      +                                        "type": "number"
      +                                      },
      +                                      "key": {
      +                                        "anyOf": [
      +                                          {
      +                                            "enum": [
      +                                              "energy_kj",
      +                                              "energy_kcal",
      +                                              "fat",
      +                                              "saturated_fat",
      +                                              "carbohydrates",
      +                                              "sugars",
      +                                              "fibre",
      +                                              "protein",
      +                                              "salt"
      +                                            ],
      +                                            "type": "string"
      +                                          },
      +                                          {
      +                                            "type": "null"
      +                                          }
      +                                        ]
      +                                      },
      +                                      "name": {
      +                                        "minLength": 1,
      +                                        "type": "string"
      +                                      },
      +                                      "unit": {
      +                                        "minLength": 1,
      +                                        "type": "string"
      +                                      }
      +                                    },
      +                                    "required": [
      +                                      "name",
      +                                      "key",
      +                                      "amount",
      +                                      "unit"
      +                                    ],
      +                                    "type": "object"
      +                                  },
      +                                  "type": "array"
      +                                },
      +                                "per": {
      +                                  "anyOf": [
      +                                    {
      +                                      "additionalProperties": false,
      +                                      "properties": {
      +                                        "unit": {
      +                                          "enum": [
      +                                            "un",
      +                                            "kg",
      +                                            "g",
      +                                            "l",
      +                                            "ml"
      +                                          ],
      +                                          "type": "string"
      +                                        },
      +                                        "value": {
      +                                          "minimum": 0,
      +                                          "type": "number"
      +                                        }
      +                                      },
      +                                      "required": [
      +                                        "value",
      +                                        "unit"
      +                                      ],
      +                                      "type": "object"
      +                                    },
      +                                    {
      +                                      "type": "null"
      +                                    }
      +                                  ]
      +                                }
      +                              },
      +                              "required": [
      +                                "per",
      +                                "nutrients"
      +                              ],
      +                              "type": "object"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "regulatedName": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "storage": {
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "required": [
      +                        "regulatedName",
      +                        "ingredients",
      +                        "emphasised",
      +                        "allergenStatement",
      +                        "mayContain",
      +                        "storage",
      +                        "netContent",
      +                        "issues",
      +                        "nutrition"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "missing": {
      +                  "items": {
      +                    "enum": [
      +                      "ingredients",
      +                      "allergenStatement",
      +                      "nutrition"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "type": "array"
      +                },
      +                "name": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "productId": {
      +                  "anyOf": [
      +                    {
      +                      "maxLength": 200,
      +                      "minLength": 1,
      +                      "pattern": "^\\d+$",
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "status": {
      +                  "enum": [
      +                    "complete",
      +                    "partial",
      +                    "none",
      +                    "error"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "productId",
      +                "name",
      +                "label",
      +                "error",
      +                "status",
      +                "missing"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "observedAt": {
      +            "format": "date-time",
      +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "observedAt",
      +          "labels"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "enum": [
      +          "success",
      +          "empty",
      +          "partial"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "data"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "error": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "invalid_data",
      +                  "invalid_input",
      +                  "not_authenticated",
      +                  "upstream_unavailable",
      +                  "not_found",
      +                  "sale_rules_unknown",
      +                  "quantity_below_minimum",
      +                  "cart_change_rejected",
      +                  "cart_change_unconfirmed",
      +                  "cache_unavailable",
      +                  "order_details_unavailable",
      +                  "cancelled",
      +                  "deadline_exceeded",
      +                  "server_closed",
      +                  "queue_full",
      +                  "browser_unavailable"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "enum": [
      +                  "internal_error",
      +                  "invalid_result"
      +                ],
      +                "type": "string"
      +              }
      +            ]
      +          },
      +          "issues": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "code": {
      +                  "type": "string"
      +                },
      +                "path": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "path",
      +                "code"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "message": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "retryable": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message",
      +          "retryable"
      +        ],
      +        "type": "object"
      +      },
      +      "mutation": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "outcome": {
      +                "const": "not_applied",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "outcome"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "outcome": {
      +                "const": "unknown",
      +                "type": "string"
      +              },
      +              "recovery": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "action": {
      +                    "const": "get_cart",
      +                    "type": "string"
      +                  },
      +                  "automaticReplay": {
      +                    "const": false,
      +                    "type": "boolean"
      +                  }
      +                },
      +                "required": [
      +                  "action",
      +                  "automaticReplay"
      +                ],
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "outcome",
      +              "recovery"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "signIn": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "action": {
      +            "enum": [
      +              "configure_credentials",
      +              "check_credentials_or_sign_in",
      +              "confirm_not_a_robot"
      +            ],
      +            "type": "string"
      +          },
      +          "command": {
      +            "const": "continentept-mcp login --show-browser",
      +            "type": "string"
      +          },
      +          "credentials": {
      +            "enum": [
      +              "configured",
      +              "missing",
      +              "unknown"
      +            ],
      +            "type": "string"
      +          },
      +          "guide": {
      +            "format": "uri",
      +            "type": "string"
      +          },
      +          "publicTools": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "settings": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "claudeDesktopExtension": {
      +                "items": false,
      +                "maxItems": 2,
      +                "minItems": 2,
      +                "prefixItems": [
      +                  {
      +                    "const": "email",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "const": "password",
      +                    "type": "string"
      +                  }
      +                ],
      +                "type": "array"
      +              },
      +              "environment": {
      +                "items": false,
      +                "maxItems": 2,
      +                "minItems": 2,
      +                "prefixItems": [
      +                  {
      +                    "const": "CONTINENTE_EMAIL",
      +                    "type": "string"
      +                  },
      +                  {
      +                    "const": "CONTINENTE_PASSWORD",
      +                    "type": "string"
      +                  }
      +                ],
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "environment",
      +              "claudeDesktopExtension"
      +            ],
      +            "type": "object"
      +          },
      +          "signInWindow": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "opened",
      +                  "already_open",
      +                  "not_available"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "credentials",
      +          "action",
      +          "signInWindow",
      +          "settings",
      +          "command",
      +          "guide",
      +          "publicTools"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "error",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Addedv0.10.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent and destructive=false, so the bar is lower. The description still adds real context the annotations cannot: absence of an allergen field is not a 'free-from' claim, the physical packaging prevails over this data, and no login is required. It does not discuss error behaviour when an ID is missing or unmatched, which would have made it a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the payload contents, then the usage gate, then the correctness caveat — a sensible order. The middle enumeration (capitals, traces, nutrients) is dense but each item earns its place by telling the agent what fields it can reason over; the closing 'No login needed' is the only near-redundant line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-shape explanation is not required, and the single parameter is fully described in the schema. What remains genuinely necessary — what data is returned, when to call it, and how far to trust it — is all present, making the definition sufficient for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself explains the ID format, slug fallback, and the 20-item cap, so the description only echoes 'up to 20 products' in the opening sentence. Baseline 3 is correct — the schema does the heavy lifting and the description adds no format or batching nuance beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (product labels) and enumerates exactly what it returns: ingredient list, capitalised allergen words, allergen and 'may contain traces' statements, and nutrients per 100 g or ml, for up to 20 products. The sourcing caveat ('as the website's copy of each label declares them') further pins down what kind of data this is versus the product metadata that get_product would return.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes usage: 'Use it only when a task needs them, such as checking vegan, gluten or allergens, or adding up protein.' That gives both a positive trigger with concrete examples and a negative constraint against casual fetching. It stops short of naming the sibling it replaces (get_product) for basic lookups, so the routing is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.