ComplianceCN — toys, batteries, cosmetics, food contact: CE, GPSR, UN 38.3, CPC/GCC and more
Server Details
Source-cited EU/UK/US/AU market-access checks for Amazon and cross-border product compliance.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
11 toolscheck_amazon_compliance_requestAmazon or another marketplace asked for compliance filesARead-onlyIdempotentInspect
Use when Amazon or another marketplace has asked a seller for compliance files or documents -- for example "Amazon asked me for compliance paperwork", "my listing was taken down pending documents", or "the platform wants safety evidence". Returns the evidence a marketplace typically requests for this product and destination market, which items the seller already holds, and what is still outstanding. Answers immediately from the published ruleset: no case, no account, no follow-up call. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | No | Optional destination-market hints. Omit when product_description names the destination. | |
| category | No | Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction. | |
| language | No | Language for seller-facing text. Questions and messages come back in it; en or zh. | zh |
| age_group | No | Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow. | |
| has_radio | No | Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US. | |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| product_name | No | Human-readable product or SKU name | |
| evidence_held | No | Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document. | |
| sales_channel | No | Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements. | |
| verified_only | No | Exclude decision rules not checked against primary sources | |
| eu_destination | No | Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU. | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| applicable_modules | No | Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics. | |
| product_description | No | Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied. | |
| sells_in_california | No | Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements. | |
| is_childrens_product | No | Whether the product is marketed as a children's product; keep unknown when not established. | |
| accessible_small_parts | No | Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use. | |
| includes_mains_charger | No | Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope. | |
| evidence_inventory_complete | No | True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: answers arrive immediately from a published ruleset, with 'no case, no account, no follow-up call', confirming zero side effects. It also discloses the human-reviewed-pack limitation tied to a confirmed seller email. No contradiction with annotations; value is added without repeating what annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger scenario is front-loaded in the first sentence, which is excellent. But the trailing access note about market_access_check being free/unlimited and the ComplianceCN human-reviewed pack is tangential to tool selection and adds length without informing when to call this tool. Tightening that second-half notice would lift the score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complexity is high (21 params) but the description is backed by a strong schema (100% parameter documentation) and an output schema that already covers return shape. The description covers the trigger, the return contract (requested/held/outstanding), and key behavioral traits. The only mild gap is the slightly vague relationship to market_access_check, but nothing an agent needs to call this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 21 parameters is already documented in the schema itself, which sets the baseline at 3. The description focuses on the use-case and return contract rather than individual parameters, which is appropriate given the schema's heavy lifting. It adds no parameter-level detail beyond what the schema provides, so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — answering a marketplace's request for compliance evidence — and grounds it with concrete trigger phrases ('Amazon asked me for compliance paperwork', 'my listing was taken down pending documents'). It states the return contract precisely: evidence requested, already held, and outstanding. This clearly distinguishes it from siblings like check_battery_transport_documents and check_us_import_certification, which target specific regulatory routes rather than the marketplace-requested-evidence scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with an explicit 'Use when...' trigger and offers example utterances, which is strong routing guidance. It also names market_access_check as the free/unlimited product-assessment path. However, the boundary between this tool and market_access_check is stated indirectly — it reads more like an access notice than a clear 'use X instead when Y' exclusion — so the when-not guidance is slightly under-developed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_battery_transport_documentsForwarder will not take the battery productARead-onlyIdempotentInspect
Use when a freight forwarder, courier or carrier has refused or queried a battery product -- for example "my forwarder will not ship the lithium battery", "they want the UN 38.3 report", or "the airline rejected my dangerous-goods paperwork". Returns whether a UN 38.3 test summary applies to this cell and pack, the shipping marks required, and the transport documents a forwarder usually asks for. Answers immediately from the published ruleset. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | No | Optional destination-market hints. Omit when product_description names the destination. | |
| category | No | Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction. | |
| language | No | Language for seller-facing text. Questions and messages come back in it; en or zh. | zh |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| product_name | No | Human-readable product or SKU name | |
| evidence_held | No | Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document. | |
| sales_channel | No | Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements. | |
| verified_only | No | Exclude decision rules not checked against primary sources | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| applicable_modules | No | Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics. | |
| product_description | No | Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied. | |
| includes_mains_charger | No | Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope. | |
| evidence_inventory_complete | No | True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing. | |
| battery_compartment_security | No | How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only and idempotent behavior is already covered by annotations. The description adds useful context by saying it answers immediately from the published ruleset and explaining access/cost behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger examples and return-value sentence are concise and front-loaded. However, the later 'Access notice' paragraph covers pricing and review policy unrelated to tool selection or invocation, making the description longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the rich input schema and output schema, the description is complete enough for safe invocation. The trigger is clear and the return scope is stated. A small gap remains in explaining how this tool relates to the general market_access_check sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter already has a meaningful description. The tool description does not need to add parameter detail, and it does not, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear use case: a freight forwarder or carrier has refused or queried a battery product, and the tool returns UN 38.3 applicability, shipping marks, and transport documents. It is specific to battery transport documents, though it does not explicitly distinguish itself from sibling compliance tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance with concrete example user scenarios. It does not state when not to use the tool or point to a specific alternative, so it is slightly below a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_eu_declaration_basisEU declaration basisARead-onlyIdempotentInspect
Use when a buyer, customs authority or distributor wants the EU Declaration of Conformity -- for example "customs is asking for the DoC", "my buyer wants the declaration", or "which directives do I cite?". Returns the legislation and standards a Declaration of Conformity would cite for this product, the evidence held against each, and the fields that still need confirming before anyone signs. This maps the basis for a declaration; it does not issue or sign one. Answers immediately from the published ruleset. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | No | Optional destination-market hints. Omit when product_description names the destination. | |
| category | No | Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction. | |
| language | No | Language for seller-facing text. Questions and messages come back in it; en or zh. | zh |
| age_group | No | Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow. | |
| has_radio | No | Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US. | |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| product_name | No | Human-readable product or SKU name | |
| evidence_held | No | Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document. | |
| sales_channel | No | Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements. | |
| verified_only | No | Exclude decision rules not checked against primary sources | |
| eu_destination | No | Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU. | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| applicable_modules | No | Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics. | |
| product_description | No | Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied. | |
| is_childrens_product | No | Whether the product is marketed as a children's product; keep unknown when not established. | |
| food_contact_material | No | The material that touches food. Migration limits and test methods differ by material. | |
| includes_mains_charger | No | Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope. | |
| is_electrically_operated | No | Whether the toy is electrically operated, including mains-powered or battery-powered operation. | |
| evidence_inventory_complete | No | True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive; the description adds meaningful behavior beyond those hints: 'Answers immediately from the published ruleset', 'maps the basis... does not issue or sign', and the access notice covering free/unlimited calls plus the separately arranged human-reviewed pack. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: trigger conditions first, then outputs, then exclusion and behavior. The access notice at the end adds useful context but lengthens the description; overall there is no fluff, and every section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 21 parameters, 0 required, and a full output schema, the description covers purpose, output content, exclusions, response speed, and access model. An agent has sufficient context to decide to call it and interpret the result without needing to read the schema first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description itself does not elaborate on individual parameters, leaving that to the schema. It provides a high-level output summary but no additional parameter-specific guidance beyond the schema's own rich descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific users (buyer, customs authority, distributor) and the exact purpose: mapping the basis for an EU Declaration of Conformity. It gives example trigger phrases and states it returns legislation/standards, evidence held, and outstanding fields, while explicitly distinguishing itself from issuing or signing a declaration. This clearly differentiates it from sibling tools like check_us_import_certification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with 'Use when...' and provides concrete example requests, plus an explicit exclusion ('does not issue or sign one'). It references market_access_check and explains when a different product starts its own case, though it doesn't systematically name sibling alternatives like check_label_and_packaging. The trigger context is clear enough for correct routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_label_and_packagingLabel and packaging reviewARead-onlyIdempotentInspect
Use when a seller is unsure their label, artwork or packaging is correct -- for example "is my CE label right?", "what warnings do I need on the box?", or "does the packaging need an importer address?". Returns the marks, symbols, warning language and responsible-entity details the destination market requires on the artwork, and which of them are evidenced. Answers immediately from the published ruleset. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | No | Optional destination-market hints. Omit when product_description names the destination. | |
| category | No | Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction. | |
| language | No | Language for seller-facing text. Questions and messages come back in it; en or zh. | zh |
| age_group | No | Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow. | |
| has_radio | No | Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US. | |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| product_name | No | Human-readable product or SKU name | |
| evidence_held | No | Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document. | |
| sales_channel | No | Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements. | |
| verified_only | No | Exclude decision rules not checked against primary sources | |
| eu_destination | No | Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU. | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| applicable_modules | No | Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics. | |
| product_description | No | Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied. | |
| sells_in_california | No | Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements. | |
| is_childrens_product | No | Whether the product is marketed as a children's product; keep unknown when not established. | |
| food_contact_material | No | The material that touches food. Migration limits and test methods differ by material. | |
| accessible_small_parts | No | Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use. | |
| evidence_inventory_complete | No | True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing. | |
| battery_compartment_security | No | How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint: trueebb, openWorldHint: false, idempotentHint: true, destructiveHint: false, so the tool is clearly safe, read-only, and idempotent. The description adds that it returns evidence status and answers immediately from a published ruleset, but the description does not disclose that it is a 'review' that may not be definitive, nor does it address the meaning of the 'preliminary' nature or that it doesn't verify individual documents. The description does not contradict the annotations, but it adds limited behavioral context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but dense with relevant information. The primary trigger is front-loaded, and the access notice is placed at the end. However, it includes some redundant detail (e.g., 'the first call returns preliminary requirements, and a different product simply starts its own case') that could be condensed without losing meaning, and the parenthetical example list adds length. Overall it's efficient for a tool with 22 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (22 parameters, 90 evidence enum values, output schema present), the description provides a high-level overview of use and access but does not explain the overall workflow (e.g., that it's part of a case, how to start it, how to continue with a case_id). The schema descriptions cover parameter semantics in depth, and the output schema likely explains return values, so the description doesn't need to repeat those. However, it omits guidance on how to interact with the 'evidence_checklist' and 'case_id' continuation, which an agent might need. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the 22 parameters with detailed descriptions that frequently explain how each parameter affects the check (e.g., has_radio -> 'Decides the RED conformity route'), which is already rich. The tool description itself adds no parameter-specific details, but given the high schema coverage, it correctly relies on the schema. The description also hints at combined usage (e.g., omitting optional hints when product_description contains enough info), though it doesn't detail every field. This slightly enhances the schema's guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a direct statement of what the tool does: it checks whether a seller's label, artwork, or packaging is correct for a destination market, listing example questions. It explicitly enumerates the deliverable (marks, symbols, warning language, responsible-entity details, and evidence status), clearly distinguishing it from the sibling tools, which either handle broader market access or specific compliance checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description begins with 'Use when a seller is unsure their label, artwork or packaging is correct,' establishing a clear trigger condition. It also clarifies scope by contrasting with market_access_check: the first call is free and unlimited, a different product starts its own case, and only a second human-reviewed pack is arranged with ComplianceCN. This differentiation is explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_us_import_certificationUS certification and entry filingARead-onlyIdempotentInspect
Use when a US importer, customs broker or buyer needs certification or entry-filing data -- for example "my importer wants a CPC", "do I need a GCC?", "what does CBP need at entry?", or "the buyer asked for the FCC SDoC". Returns whether a CPC or GCC applies, the supporting test evidence, the US responsible-party details, and the same data needed at entry. Answers immediately from the published ruleset. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | No | Optional destination-market hints. Omit when product_description names the destination. | |
| category | No | Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction. | |
| language | No | Language for seller-facing text. Questions and messages come back in it; en or zh. | zh |
| age_group | No | Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow. | |
| has_radio | No | Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US. | |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| product_name | No | Human-readable product or SKU name | |
| evidence_held | No | Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document. | |
| sales_channel | No | Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements. | |
| verified_only | No | Exclude decision rules not checked against primary sources | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| applicable_modules | No | Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics. | |
| product_description | No | Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied. | |
| sells_in_california | No | Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements. | |
| is_childrens_product | No | Whether the product is marketed as a children's product; keep unknown when not established. | |
| accessible_small_parts | No | Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use. | |
| evidence_inventory_complete | No | True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing. | |
| toy_chemical_assessment_complete | No | Whether a chemical safety assessment covering migration limits has already been completed for this toy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description does not contradict. The description adds operational context by stating 'Answers immediately from the published ruleset,' indicating a lightweight, non-custom analysis. It also clarifies that the tool returns specific data elements, providing behavioral insight beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and examples, which is good. However, the 'Access notice' about market_access_check is a long aside about pricing and a sibling tool; it is tangential to the tool's core function and could be relocated to reduce verbosity. Still, the structure is logical and not excessively long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (20 parameters, but none required) and the presence of a full output schema, the description is reasonably complete for an agent to decide when to invoke it. It explains the overall purpose, the trigger scenarios, and the returned data. The extensive parameter details are adequately covered in the schema, so the description does not need to enumerate all parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific detail beyond what the schema already provides; it only gives high-level context about what the tool does. Since the schema fully documents every parameter, the description does not need to compensate for missing schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to provide US certification and entry-filing data for importers, brokers, or buyers. It gives specific trigger examples ('my importer wants a CPC', 'do I need a GCC?', 'what does CBP need at entry?', 'the buyer asked for the FCC SDoC') and states exactly what it returns ('whether a CPC or GCC applies, the supporting test evidence, the US responsible-party details, and the same data needed at entry'). This distinguishes it from EU-focused siblings like check_eu_declaration_basis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit trigger conditions and examples that indicate when to use this tool. It also contrasts with market_access_check, mentioning that product assessment through that tool is free and unlimited, implying this tool is for certification-specific queries. However, it does not explicitly say 'use X instead for EU or battery' but the examples are narrowly US-focused, making the use case clear without stating exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_market_requirementsCompare marketsARead-onlyIdempotentInspect
Compare what the same product needs across 2-4 of the EU, UK, US and Australia. Answers immediately from the published ruleset -- no case, no account, no follow-up. Send a category and the markets; partial product facts are fine, and it still returns a presentable comparison. Any optional_refinement_questions are non-blocking: show them if useful, but do not ask them automatically or re-run. For a full readiness assessment of one product, use market_access_check. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | Yes | ||
| category | Yes | Product category | |
| language | No | Response language. Defaults to Chinese. | zh |
| age_group | No | Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow. | |
| food_type | No | The food the product will contact. Simulant selection for migration testing depends on it. | |
| has_radio | No | Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US. | |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| is_sunscreen | No | Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties. | |
| repeated_use | No | Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles. | |
| verified_only | No | Exclude rules not yet checked against primary sources. Default false: unverified material is included but labelled via review_status and the trust envelope. | |
| eu_destination | No | Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU. | |
| contact_duration | No | How long the product touches food in normal use. Long-term contact triggers stricter migration testing. | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| claims_therapeutic | No | Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime. | |
| contact_temperature | No | The temperature at contact. Hot fill and cooking raise migration limits and change the test. | |
| ingredients_reviewed | No | Whether the full ingredient list has already been checked against restricted-substance annexes. | |
| is_childrens_product | No | Whether the product is marketed as a children's product; keep unknown when not established. | |
| food_contact_material | No | The material that touches food. Migration limits and test methods differ by material. | |
| accessible_small_parts | No | Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use. | |
| includes_mains_charger | No | Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope. | |
| is_electrically_operated | No | Whether the toy is electrically operated, including mains-powered or battery-powered operation. | |
| battery_compartment_security | No | How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard. | |
| toy_chemical_assessment_complete | No | Whether a chemical safety assessment covering migration limits has already been completed for this toy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses meaningful runtime behavior: immediate answers with no case/account/follow-up, tolerance for partial product facts, non-blocking optional_refinement_questions that must be shown but not asked automatically, and the free/unlimited access model. This is substantial value-added context that annotations alone could not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose is front-loaded and the routing to market_access_check comes early. The final access-billing paragraph is somewhat verbose and marketing-toned ('free and unlimited'), but it does carry genuine billing/account clarification. Slightly longer than strictly necessary but well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 25-parameter tool with an output schema (so return values need not be explained), the description covers purpose, invocation, behavioral traits, sibling routing, and the access model. It is complete enough for an agent to decide when and how to call it. The high schema coverage carries the parameter burden, so little is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 96%, so the schema already documents every parameter in detail (e.g., age_group, battery_type, eu_destination). The description's only param-level contribution is highlighting the two required fields and noting that partial facts are acceptable. That modest addition meets the baseline for a high-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource: 'Compare what the same product needs across 2-4 of the EU, UK, US and Australia.' This clearly distinguishes it from market_access_check, which is named explicitly as the single-market readiness alternative. An agent can pick the right tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit invocation guidance ('Send a category and the markets; partial product facts are fine') and names the alternative with its selection condition ('For a full readiness assessment of one product, use market_access_check'). The access notice further clarifies when the ComplianceCN human-reviewed pack path applies, leaving no ambiguity about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_coverageDescribe coverageARead-onlyIdempotentInspect
Use when the user or agent needs to inspect scope, source trust or live-service details; do not repeat it before every seller request. Returns versions, category/market coverage, per-record verification, source policy and operational check links. Always start ordinary product requests at Stage 1 with market_access_check.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Response language. Defaults to Chinese. | zh |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the description doesn't need to restate safety. It adds behavioral context by specifying what the tool returns (versions, category/market coverage, per-record verification, source policy, operational check links) and by providing workflow guidance about not repeating it before every seller request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear front-loading: 'Use when...' immediately states context. The second sentence adds return details and a sibling pointer, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool, the description covers usage, exclusions, return content, and even directs to a sibling tool for the proper workflow. The presence of an output schema and complete annotations means nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full coverage for the single `language` parameter, including enum and default. The description adds no parameter-specific details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to inspect scope, source trust, or live-service details, and lists specific return types (versions, coverage, verification, source policy, links). It distinguishes itself from the sibling market_access_check by instructing to use that tool for Stage 1 product requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the user or agent needs to inspect scope, source trust or live-service details' and warns 'do not repeat it before every seller request.' It also directs to start ordinary product requests at Stage 1 with market_access_check, thereby clarifying when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_claimExplain claimARead-onlyIdempotentInspect
Explain only a stable claim_id returned by an earlier ComplianceCN result. Do not use this for broad natural-language questions or invent an ID. Returns the claim, primary-source evidence, verification date and evidence gaps. Access notice: product assessment through market_access_check is free and unlimited -- the first call returns preliminary requirements, and a different product simply starts its own case. Only a second human-reviewed pack for the same confirmed seller email is arranged with ComplianceCN.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU. | |
| claim_id | Yes | ||
| language | No | Response language. Defaults to Chinese. | zh |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds useful behavioral context: the claim_id must be stable and from an earlier result, and the return includes claim, evidence, verification date, and evidence gaps. The access notice about market_access_check is tangential but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is strong and front-loaded, but the access notice about market_access_check is off-topic and adds unnecessary length. While still compact, the extra information could be moved to the sibling tool or omitted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and clear annotations, the description covers the essential aspects: what the tool does, constraints on input, and expected return content. It is sufficiently complete for an agent to select and invoke the tool correctly, though the access notice slightly dilutes focus.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover case_id and language well (67% coverage). The description adds meaning to claim_id by specifying it must be a stable claim_id from an earlier result, but does not elaborate on case_id or language. This provides some additional value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: explaining a stable claim_id from an earlier ComplianceCN result. It explicitly differentiates from broad natural-language questions and provides a distinct resource and verb, making it easy to distinguish from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use and when-not-to-use guidance: 'Explain only a stable claim_id returned by an earlier ComplianceCN result' and 'Do not use this for broad natural-language questions or invent an ID.' It also points to market_access_check as the alternative for product assessments, providing clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_access_checkProduct market-access checkAIdempotentInspect
Check what a product needs to be sold into the EU, UK, US or Australia. Send a plain-language product description in message; the first response already contains preliminary requirements and an evidence checklist you can show the seller immediately. Every response carries a single next_action -- execute it exactly as returned to get the refined assessment and, optionally, a human-reviewed pack. Ask any returned questions by their key. The reviewed pack requires a confirmed seller email and reviewer sign-off. Send the description in English or Chinese; questions and seller-facing text come back in the seller's language.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Start with continue. Follow next_action exactly: start_stage_2 assesses evidence after the Stage 1 product profile is ready; after presenting Stage 2, use correct_stage_2 if the seller supplies a correction, otherwise call confirm_stage_2 immediately to obtain the required secure email-and-consent handoff; Stage 3 is released only after reviewer sign-off. confirm_stage_1/correct_stage_1 are legacy aliases only. | continue |
| answers | No | Optional structured answers keyed by the stable question.key values returned by the previous call. | |
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| message | No | The seller's initial product/market description or their latest natural-language clarification. Do not repeat information already supplied. | |
| language | No | Preferred response language; inferred from the seller message when omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds significant behavioral context: it explains the multi-stage workflow (Stage 1, Stage 2, Stage 3), the need for reviewer sign-off, the requirement for a confirmed seller email, and that questions are returned with keys. It also notes that the first response is preliminary and can be shown to the seller immediately. This goes beyond the annotations, which only say it's idempotent and non-destructive. The description does not contradict annotations; it complements them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured. It front-loads the core purpose and immediate value ('the first response already contains preliminary requirements...'). It then explains the workflow and key behaviors. Every sentence adds information: the next_action instruction, the question key handling, the email requirement, and language support. It's not overly verbose, but it could be slightly more concise by trimming redundant phrases like 'execute it exactly as returned' which is somewhat redundant with 'follow next_action exactly'. Still, it's efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (5 parameters, nested objects, output schema, multi-stage workflow), the description is remarkably complete. It covers the input format, the output expectations, the workflow stages, the action parameter semantics, the handling of questions, the email requirement, and language support. The output schema exists, so return values are not described in the description, which is appropriate. The description provides all necessary context for an agent to use the tool correctly, including the exact next_action values and their meanings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the action parameter's workflow semantics (e.g., 'start_stage_2 assesses evidence after the Stage 1 product profile is ready') and the meaning of next_action. It also clarifies that message should not repeat information already supplied, and that language is inferred when omitted. This goes beyond the schema's basic descriptions, providing operational context. However, it doesn't detail the answers structure beyond what the schema says, but the schema is already rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking what a product needs to be sold into specific markets (EU, UK, US, Australia). It specifies the input (plain-language product description) and the output (preliminary requirements and evidence checklist). It distinguishes itself from siblings by focusing on market-access requirements across multiple regions, whereas siblings like check_amazon_compliance_request or check_us_import_certification are more specific. The verb 'check' and resource 'product market-access' are precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool: to get market-access requirements for a product. It also explains the workflow: send a description, receive preliminary requirements, then follow the next_action exactly. It mentions alternatives implicitly by naming sibling tools that are more specific (e.g., check_us_import_certification for US import certification), but the description itself doesn't explicitly say 'use this instead of X'. However, it does give clear context on the multi-step process and how to handle returned questions, which is strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflight_productStructured product readiness checkARead-onlyIdempotentInspect
Single-call readiness check when you already have structured product facts: category, markets and any evidence held. Returns the applicable requirements, an evidence checklist and the gaps in one response, with no follow-up needed. For a plain-language description instead, use market_access_check, which also returns preliminary requirements on its first call and continues into evidence assessment and an optional human-reviewed pack.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | No | The case this call continues, from an earlier result. Omit to start a new product case. | |
| markets | No | Optional destination-market hints. Omit when product_description names the destination. | |
| category | No | Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction. | |
| language | No | Language for seller-facing text. Questions and messages come back in it; en or zh. | zh |
| age_group | No | Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow. | |
| food_type | No | The food the product will contact. Simulant selection for migration testing depends on it. | |
| has_radio | No | Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US. | |
| has_battery | No | Whether the product contains or ships with any battery, including a coin cell in a remote. | |
| battery_type | No | Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing. | |
| is_sunscreen | No | Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties. | |
| product_name | No | Human-readable product or SKU name | |
| repeated_use | No | Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles. | |
| evidence_held | No | Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document. | |
| evidence_text | No | Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat. | |
| sales_channel | No | Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements. | |
| verified_only | No | Exclude decision rules not checked against primary sources | |
| eu_destination | No | Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU. | |
| evidence_notes | No | Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review. | |
| contact_duration | No | How long the product touches food in normal use. Long-term contact triggers stricter migration testing. | |
| supply_chain_role | No | The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's. | |
| applicable_modules | No | Optional additional modules that should be assessed together with the primary category, for example toys plus battery-electronics. | |
| claims_therapeutic | No | Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime. | |
| contact_temperature | No | The temperature at contact. Hot fill and cooking raise migration limits and change the test. | |
| product_description | No | Preferred first input: describe the product, destination market, sales channel and any known supplier documents in plain language. The tool extracts a preliminary profile and fills the internal checklist. Required when category/markets are not already supplied. | |
| sells_in_california | No | Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements. | |
| clarification_answer | No | Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU. | |
| ingredients_reviewed | No | Whether the full ingredient list has already been checked against restricted-substance annexes. | |
| is_childrens_product | No | Whether the product is marketed as a children's product; keep unknown when not established. | |
| evidence_observations | No | Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information. | |
| food_contact_material | No | The material that touches food. Migration limits and test methods differ by material. | |
| accessible_small_parts | No | Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use. | |
| includes_mains_charger | No | Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope. | |
| is_electrically_operated | No | Whether the toy is electrically operated, including mains-powered or battery-powered operation. | |
| evidence_inventory_complete | No | True only when evidence_notes/evidence_text and evidence_held together form a complete inventory. Otherwise unprovided applicable evidence remains unknown, not missing. | |
| battery_compartment_security | No | How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard. | |
| toy_chemical_assessment_complete | No | Whether a chemical safety assessment covering migration limits has already been completed for this toy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, and non-destructive behavior, which the description does not contradict. Beyond annotations, the description discloses that the tool returns requirements, evidence checklist, and gaps in one response with no follow-up needed, which is useful. It also implies it does not verify evidence (via schema description for evidence_held). However, it doesn't mention potential limitations like the need for human review for evidence authenticity, but that is covered in parameter descriptions. Slight bonus for adding the 'no follow-up needed' behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and key benefits, then immediately naming the alternative with specific differentiators. Every word earns its place, no fluff. It is concise yet comprehensive, covering purpose, usage, and alternative routing in a compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (36 parameters, multiple legal domains, output schema present), the description is remarkably complete. It covers what the tool does, when to use it, what it returns, and how it differs from the primary sibling. The rich schema descriptions handle parameter details, and annotations cover safety profile. Nothing essential is missing for an agent to decide whether to call this tool and how to structure the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter-level semantics, but the schema descriptions are already rich. The description implies the use of structured facts, which aligns with parameters like category, markets, and evidence_held. It also contrasts with market_access_check for plain-language input, reinforcing that structured parameters are expected. The description does not need to repeat schema detail, so a 4 is justified for adding some contextual guidance (structured vs. plain-language).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: a single-call readiness check for structured product facts, returning applicable requirements, evidence checklist, and gaps. It names the specific inputs (category, markets, evidence) and contrasts with sibling market_access_check, which handles plain-language description and further steps. This distinguishes it effectively from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use this tool when you 'already have structured product facts' and to use market_access_check for plain-language descriptions, which also continues into evidence assessment and human review. This provides clear when-to-use and when-not-to-use guidance, and names the alternative. It also highlights the single-call nature, making the usage context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_product_regulatory_changesEmail me when the rules for this product changeAInspect
Start free email alerts for regulatory changes affecting a product already checked here. Use when a seller says they want to be told if the rules change -- for example "let me know if this changes", "can you monitor this for me?", or "email me about updates". Requires a real top-level email and consent_to_alerts=true; there is no payment and no checkout step. Alerts start immediately and cover human-reviewed ComplianceCN changelog updates matching the saved product, market, requirement or rule profile. It does not guarantee detection of every regulatory change. Call only after a product check has produced a usable product/market profile and the seller has explicitly asked to be notified.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Seller email for product-change alerts. Provide only after the seller explicitly asks for the alert subscription. | ||
| product_profile | Yes | The same normalized product profile used for the completed preflight. Do not include document contents or unrelated personal data. | |
| preflight_result | No | The completed preflight result when available. Its requirement, rule and claim IDs improve future change matching. | |
| consent_to_alerts | Yes | Must be true. The seller explicitly agrees to save this product profile and receive matched product-change and subscription-service emails. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that alerts are free, there is no checkout step, alerts start immediately, coverage is based on human-reviewed ComplianceCN changelog updates, and detection is not guaranteed. It also states requirements for a real email and consent_to_alerts=true, which clarifies side effects without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core purpose, then usage signals, prerequisites, and behavior. It is slightly long but every sentence carries information, and the examples earn their place by disambiguating trigger phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and detailed input schema documentation, the description covers the remaining decision-relevant context: when to call it, prerequisites, consent requirement, subscription behavior, coverage scope, and limitations. Nothing critical is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description adds useful context about the product profile needing to come from a completed check and consent needing to be true, but it does not substantially go beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Start free email alerts') and a clear resource ('regulatory changes affecting a product already checked here'). It is immediately distinguishable from the compliance-check siblings because it is about monitoring and notifying, not running a check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit trigger phrasing ('let me know if this changes', 'can you monitor this for me?', 'email me about updates') and states the precondition: only after a product check has produced a usable product/market profile and the seller has explicitly asked to be notified. It also excludes use before a product check exists, giving clear when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
- Changed
check_amazon_compliance_request28 fields changed- added
Input schema / properties / accessible_small_parts / descriptionAdded value: +"Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use." - added
Input schema / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - removed
Input schema / properties / battery_compartment_securityRemoved value: -{ - "enum": [ - "tool_required", - "two_independent_actions", - "other_secured", - "unsecured", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - removed
Input schema / properties / claims_therapeuticRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / clarification_answerRemoved value: -{ - "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", - "maxLength": 6000, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / contact_durationRemoved value: -{ - "enum": [ - "short", - "long_term", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / contact_temperatureRemoved value: -{ - "enum": [ - "ambient", - "hot_fill", - "cooking_reheating", - "freezing", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / eu_destination / descriptionAdded value: +"Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU." - added
Input schema / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - removed
Input schema / properties / evidence_notesRemoved value: -{ - "description": "Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / evidence_observationsRemoved value: -{ - "default": [], - "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", - "items": { - "properties": { - "confidence": { - "default": "low", - "enum": [ - "low", - "medium", - "high" - ], - "type": "string" - }, - "document_date": { - "anyOf": [ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "document_reference": { - "anyOf": [ - { - "maxLength": 260, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." - }, - "document_type": { - "anyOf": [ - { - "maxLength": 160, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Plain-language apparent document type; this does not authenticate or approve the document." - }, - "evidence_id": { - "anyOf": [ - { - "enum": [ - "ce_declaration", - "ce_label_artwork", - "rohs_evidence", - "radio_test_report", - "un38_3_test_summary", - "battery_label_artwork", - "eu_economic_operator", - "weee_registration", - "battery_epr_registration", - "fcc_authorization", - "fcc_sdoc", - "fcc_label_artwork", - "us_responsible_party", - "lithium_shipping_marks", - "prop65_assessment", - "marketplace_safety_report", - "ukca_or_ce_mark", - "uk_rohs_evidence", - "uk_radio_compliance", - "uk_importer_details", - "uk_weee_registration", - "uk_battery_epr_registration", - "uk_un38_3_test_summary", - "uk_marketplace_safety_report", - "au_rcm_supplier_declaration", - "au_radio_compliance", - "au_eess_supplier_evidence", - "au_importer_supplier_details", - "au_battery_shipping_evidence", - "au_marketplace_safety_report", - "toy_safety_assessment", - "en71_mechanical_report", - "en71_chemical_report", - "electrical_toy_report", - "battery_compartment_assessment", - "choking_risk_assessment", - "age_grading_rationale", - "toy_warning_artwork", - "german_warning_copy", - "marketplace_toy_evidence_package", - "toy_third_party_test_report", - "toy_cpc_certificate", - "toy_retesting_plan", - "toy_cbp_efiling_evidence", - "toy_tracking_label_artwork", - "toy_small_parts_warning_artwork", - "uk_toy_declaration", - "uk_en71_report", - "uk_toy_marking", - "uk_toy_importer_details", - "uk_toy_radio_compliance", - "uk_toy_battery_evidence", - "uk_toy_warning_artwork", - "uk_toy_retesting_plan", - "uk_toy_marketplace_evidence_package", - "au_toy_safety_report", - "au_toy_supplier_declaration", - "au_toy_warning_artwork", - "au_toy_importer_details", - "au_toy_radio_compliance", - "au_toy_battery_evidence", - "au_toy_retesting_plan", - "au_toy_marketplace_evidence_package", - "cosmetic_formula_review", - "cosmetic_safety_report", - "cosmetic_pif", - "cosmetic_cpn_notification", - "cosmetic_label_artwork", - "cosmetic_responsible_person", - "cosmetic_claim_substantiation", - "cosmetic_facility_registration", - "cosmetic_adverse_event_process", - "cosmetic_notification", - "food_contact_material_spec", - "food_contact_use_conditions_spec", - "food_contact_migration_report", - "food_contact_plastic_oml_sml_report", - "food_contact_ceramic_glass_release_report", - "food_contact_paper_board_component_review", - "food_contact_coating_adhesive_ink_review", - "food_contact_metal_release_review", - "food_contact_hot_use_protocol", - "food_contact_repeated_use_simulation", - "food_contact_doc", - "food_contact_traceability", - "food_contact_label_artwork", - "food_contact_polymer_resin_clearance", - "food_contact_fda_status", - "food_contact_supplier_declaration", - "food_contact_california_prop65_screen" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." - }, - "issuer_or_lab": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Issuing organisation or laboratory name only; omit personal names and addresses." - }, - "issues": { - "default": [], - "description": "Concise unresolved checks only; never include document quotations or report text.", - "items": { - "maxLength": 240, - "type": "string" - }, - "maxItems": 16, - "type": "array" - }, - "models_covered": { - "default": [], - "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", - "items": { - "maxLength": 120, - "type": "string" - }, - "maxItems": 20, - "type": "array" - }, - "provenance": { - "default": "agent_extraction", - "enum": [ - "seller_statement", - "agent_extraction", - "llm_inference", - "keyword_inference" - ], - "type": "string" - }, - "report_or_certificate_number": { - "anyOf": [ - { - "maxLength": 140, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "standards_referenced": { - "default": [], - "items": { - "maxLength": 160, - "type": "string" - }, - "maxItems": 24, - "type": "array" - }, - "status": { - "default": "mentioned_uncertain", - "enum": [ - "reported_held", - "mentioned_uncertain", - "not_held", - "needs_human_review" - ], - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 40, - "type": "array" -} - removed
Input schema / properties / evidence_textRemoved value: -{ - "description": "Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / food_contact_materialRemoved value: -{ - "enum": [ - "plastic", - "metal", - "ceramic_glass", - "paper_board", - "silicone_rubber", - "multi_material", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / food_typeRemoved value: -{ - "enum": [ - "dry", - "aqueous", - "acidic", - "fatty", - "alcoholic", - "mixed", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - added
Input schema / properties / includes_mains_charger / descriptionAdded value: +"Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope." - removed
Input schema / properties / ingredients_reviewedRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / is_electrically_operatedRemoved value: -{ - "description": "Whether the toy is electrically operated, including mains-powered or battery-powered operation.", - "type": "boolean" -} - removed
Input schema / properties / is_sunscreenRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - removed
Input schema / properties / repeated_useRemoved value: -{ - "enum": [ - "single_use", - "repeated_use", - "unknown" - ], - "type": "string" -} - changed
Input schema / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - added
Input schema / properties / sells_in_california / descriptionAdded value: +"Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements." - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - removed
Input schema / properties / toy_chemical_assessment_completeRemoved value: -{ - "type": "boolean" -}
- Changed
check_battery_transport_documents29 fields changed- removed
Input schema / properties / accessible_small_partsRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / age_groupRemoved value: -{ - "enum": [ - "under_3", - "3_to_13", - "14_plus", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / battery_compartment_security / descriptionAdded value: +"How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard." - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - removed
Input schema / properties / claims_therapeuticRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / clarification_answerRemoved value: -{ - "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", - "maxLength": 6000, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / contact_durationRemoved value: -{ - "enum": [ - "short", - "long_term", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / contact_temperatureRemoved value: -{ - "enum": [ - "ambient", - "hot_fill", - "cooking_reheating", - "freezing", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / eu_destinationRemoved value: -{ - "enum": [ - "DE", - "other_eu", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - removed
Input schema / properties / evidence_notesRemoved value: -{ - "description": "Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / evidence_observationsRemoved value: -{ - "default": [], - "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", - "items": { - "properties": { - "confidence": { - "default": "low", - "enum": [ - "low", - "medium", - "high" - ], - "type": "string" - }, - "document_date": { - "anyOf": [ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "document_reference": { - "anyOf": [ - { - "maxLength": 260, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." - }, - "document_type": { - "anyOf": [ - { - "maxLength": 160, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Plain-language apparent document type; this does not authenticate or approve the document." - }, - "evidence_id": { - "anyOf": [ - { - "enum": [ - "ce_declaration", - "ce_label_artwork", - "rohs_evidence", - "radio_test_report", - "un38_3_test_summary", - "battery_label_artwork", - "eu_economic_operator", - "weee_registration", - "battery_epr_registration", - "fcc_authorization", - "fcc_sdoc", - "fcc_label_artwork", - "us_responsible_party", - "lithium_shipping_marks", - "prop65_assessment", - "marketplace_safety_report", - "ukca_or_ce_mark", - "uk_rohs_evidence", - "uk_radio_compliance", - "uk_importer_details", - "uk_weee_registration", - "uk_battery_epr_registration", - "uk_un38_3_test_summary", - "uk_marketplace_safety_report", - "au_rcm_supplier_declaration", - "au_radio_compliance", - "au_eess_supplier_evidence", - "au_importer_supplier_details", - "au_battery_shipping_evidence", - "au_marketplace_safety_report", - "toy_safety_assessment", - "en71_mechanical_report", - "en71_chemical_report", - "electrical_toy_report", - "battery_compartment_assessment", - "choking_risk_assessment", - "age_grading_rationale", - "toy_warning_artwork", - "german_warning_copy", - "marketplace_toy_evidence_package", - "toy_third_party_test_report", - "toy_cpc_certificate", - "toy_retesting_plan", - "toy_cbp_efiling_evidence", - "toy_tracking_label_artwork", - "toy_small_parts_warning_artwork", - "uk_toy_declaration", - "uk_en71_report", - "uk_toy_marking", - "uk_toy_importer_details", - "uk_toy_radio_compliance", - "uk_toy_battery_evidence", - "uk_toy_warning_artwork", - "uk_toy_retesting_plan", - "uk_toy_marketplace_evidence_package", - "au_toy_safety_report", - "au_toy_supplier_declaration", - "au_toy_warning_artwork", - "au_toy_importer_details", - "au_toy_radio_compliance", - "au_toy_battery_evidence", - "au_toy_retesting_plan", - "au_toy_marketplace_evidence_package", - "cosmetic_formula_review", - "cosmetic_safety_report", - "cosmetic_pif", - "cosmetic_cpn_notification", - "cosmetic_label_artwork", - "cosmetic_responsible_person", - "cosmetic_claim_substantiation", - "cosmetic_facility_registration", - "cosmetic_adverse_event_process", - "cosmetic_notification", - "food_contact_material_spec", - "food_contact_use_conditions_spec", - "food_contact_migration_report", - "food_contact_plastic_oml_sml_report", - "food_contact_ceramic_glass_release_report", - "food_contact_paper_board_component_review", - "food_contact_coating_adhesive_ink_review", - "food_contact_metal_release_review", - "food_contact_hot_use_protocol", - "food_contact_repeated_use_simulation", - "food_contact_doc", - "food_contact_traceability", - "food_contact_label_artwork", - "food_contact_polymer_resin_clearance", - "food_contact_fda_status", - "food_contact_supplier_declaration", - "food_contact_california_prop65_screen" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." - }, - "issuer_or_lab": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Issuing organisation or laboratory name only; omit personal names and addresses." - }, - "issues": { - "default": [], - "description": "Concise unresolved checks only; never include document quotations or report text.", - "items": { - "maxLength": 240, - "type": "string" - }, - "maxItems": 16, - "type": "array" - }, - "models_covered": { - "default": [], - "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", - "items": { - "maxLength": 120, - "type": "string" - }, - "maxItems": 20, - "type": "array" - }, - "provenance": { - "default": "agent_extraction", - "enum": [ - "seller_statement", - "agent_extraction", - "llm_inference", - "keyword_inference" - ], - "type": "string" - }, - "report_or_certificate_number": { - "anyOf": [ - { - "maxLength": 140, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "standards_referenced": { - "default": [], - "items": { - "maxLength": 160, - "type": "string" - }, - "maxItems": 24, - "type": "array" - }, - "status": { - "default": "mentioned_uncertain", - "enum": [ - "reported_held", - "mentioned_uncertain", - "not_held", - "needs_human_review" - ], - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 40, - "type": "array" -} - removed
Input schema / properties / evidence_textRemoved value: -{ - "description": "Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / food_contact_materialRemoved value: -{ - "enum": [ - "plastic", - "metal", - "ceramic_glass", - "paper_board", - "silicone_rubber", - "multi_material", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / food_typeRemoved value: -{ - "enum": [ - "dry", - "aqueous", - "acidic", - "fatty", - "alcoholic", - "mixed", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - removed
Input schema / properties / has_radioRemoved value: -{ - "type": "boolean" -} - added
Input schema / properties / includes_mains_charger / descriptionAdded value: +"Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope." - removed
Input schema / properties / ingredients_reviewedRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / is_childrens_productRemoved value: -{ - "description": "Whether the product is marketed as a children's product; keep unknown when not established.", - "type": "boolean" -} - removed
Input schema / properties / is_electrically_operatedRemoved value: -{ - "description": "Whether the toy is electrically operated, including mains-powered or battery-powered operation.", - "type": "boolean" -} - removed
Input schema / properties / is_sunscreenRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - removed
Input schema / properties / repeated_useRemoved value: -{ - "enum": [ - "single_use", - "repeated_use", - "unknown" - ], - "type": "string" -} - changed
Input schema / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - removed
Input schema / properties / sells_in_californiaRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - removed
Input schema / properties / toy_chemical_assessment_completeRemoved value: -{ - "type": "boolean" -}
- Changed
check_eu_declaration_basis27 fields changed- removed
Input schema / properties / accessible_small_partsRemoved value: -{ - "type": "boolean" -} - added
Input schema / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - removed
Input schema / properties / battery_compartment_securityRemoved value: -{ - "enum": [ - "tool_required", - "two_independent_actions", - "other_secured", - "unsecured", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - removed
Input schema / properties / claims_therapeuticRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / clarification_answerRemoved value: -{ - "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", - "maxLength": 6000, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / contact_durationRemoved value: -{ - "enum": [ - "short", - "long_term", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / contact_temperatureRemoved value: -{ - "enum": [ - "ambient", - "hot_fill", - "cooking_reheating", - "freezing", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / eu_destination / descriptionAdded value: +"Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU." - added
Input schema / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - removed
Input schema / properties / evidence_notesRemoved value: -{ - "description": "Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / evidence_observationsRemoved value: -{ - "default": [], - "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", - "items": { - "properties": { - "confidence": { - "default": "low", - "enum": [ - "low", - "medium", - "high" - ], - "type": "string" - }, - "document_date": { - "anyOf": [ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "document_reference": { - "anyOf": [ - { - "maxLength": 260, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." - }, - "document_type": { - "anyOf": [ - { - "maxLength": 160, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Plain-language apparent document type; this does not authenticate or approve the document." - }, - "evidence_id": { - "anyOf": [ - { - "enum": [ - "ce_declaration", - "ce_label_artwork", - "rohs_evidence", - "radio_test_report", - "un38_3_test_summary", - "battery_label_artwork", - "eu_economic_operator", - "weee_registration", - "battery_epr_registration", - "fcc_authorization", - "fcc_sdoc", - "fcc_label_artwork", - "us_responsible_party", - "lithium_shipping_marks", - "prop65_assessment", - "marketplace_safety_report", - "ukca_or_ce_mark", - "uk_rohs_evidence", - "uk_radio_compliance", - "uk_importer_details", - "uk_weee_registration", - "uk_battery_epr_registration", - "uk_un38_3_test_summary", - "uk_marketplace_safety_report", - "au_rcm_supplier_declaration", - "au_radio_compliance", - "au_eess_supplier_evidence", - "au_importer_supplier_details", - "au_battery_shipping_evidence", - "au_marketplace_safety_report", - "toy_safety_assessment", - "en71_mechanical_report", - "en71_chemical_report", - "electrical_toy_report", - "battery_compartment_assessment", - "choking_risk_assessment", - "age_grading_rationale", - "toy_warning_artwork", - "german_warning_copy", - "marketplace_toy_evidence_package", - "toy_third_party_test_report", - "toy_cpc_certificate", - "toy_retesting_plan", - "toy_cbp_efiling_evidence", - "toy_tracking_label_artwork", - "toy_small_parts_warning_artwork", - "uk_toy_declaration", - "uk_en71_report", - "uk_toy_marking", - "uk_toy_importer_details", - "uk_toy_radio_compliance", - "uk_toy_battery_evidence", - "uk_toy_warning_artwork", - "uk_toy_retesting_plan", - "uk_toy_marketplace_evidence_package", - "au_toy_safety_report", - "au_toy_supplier_declaration", - "au_toy_warning_artwork", - "au_toy_importer_details", - "au_toy_radio_compliance", - "au_toy_battery_evidence", - "au_toy_retesting_plan", - "au_toy_marketplace_evidence_package", - "cosmetic_formula_review", - "cosmetic_safety_report", - "cosmetic_pif", - "cosmetic_cpn_notification", - "cosmetic_label_artwork", - "cosmetic_responsible_person", - "cosmetic_claim_substantiation", - "cosmetic_facility_registration", - "cosmetic_adverse_event_process", - "cosmetic_notification", - "food_contact_material_spec", - "food_contact_use_conditions_spec", - "food_contact_migration_report", - "food_contact_plastic_oml_sml_report", - "food_contact_ceramic_glass_release_report", - "food_contact_paper_board_component_review", - "food_contact_coating_adhesive_ink_review", - "food_contact_metal_release_review", - "food_contact_hot_use_protocol", - "food_contact_repeated_use_simulation", - "food_contact_doc", - "food_contact_traceability", - "food_contact_label_artwork", - "food_contact_polymer_resin_clearance", - "food_contact_fda_status", - "food_contact_supplier_declaration", - "food_contact_california_prop65_screen" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." - }, - "issuer_or_lab": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Issuing organisation or laboratory name only; omit personal names and addresses." - }, - "issues": { - "default": [], - "description": "Concise unresolved checks only; never include document quotations or report text.", - "items": { - "maxLength": 240, - "type": "string" - }, - "maxItems": 16, - "type": "array" - }, - "models_covered": { - "default": [], - "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", - "items": { - "maxLength": 120, - "type": "string" - }, - "maxItems": 20, - "type": "array" - }, - "provenance": { - "default": "agent_extraction", - "enum": [ - "seller_statement", - "agent_extraction", - "llm_inference", - "keyword_inference" - ], - "type": "string" - }, - "report_or_certificate_number": { - "anyOf": [ - { - "maxLength": 140, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "standards_referenced": { - "default": [], - "items": { - "maxLength": 160, - "type": "string" - }, - "maxItems": 24, - "type": "array" - }, - "status": { - "default": "mentioned_uncertain", - "enum": [ - "reported_held", - "mentioned_uncertain", - "not_held", - "needs_human_review" - ], - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 40, - "type": "array" -} - removed
Input schema / properties / evidence_textRemoved value: -{ - "description": "Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.", - "maxLength": 6000, - "type": "string" -} - added
Input schema / properties / food_contact_material / descriptionAdded value: +"The material that touches food. Migration limits and test methods differ by material." - removed
Input schema / properties / food_typeRemoved value: -{ - "enum": [ - "dry", - "aqueous", - "acidic", - "fatty", - "alcoholic", - "mixed", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - added
Input schema / properties / includes_mains_charger / descriptionAdded value: +"Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope." - removed
Input schema / properties / ingredients_reviewedRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / is_sunscreenRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - removed
Input schema / properties / repeated_useRemoved value: -{ - "enum": [ - "single_use", - "repeated_use", - "unknown" - ], - "type": "string" -} - changed
Input schema / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - removed
Input schema / properties / sells_in_californiaRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - removed
Input schema / properties / toy_chemical_assessment_completeRemoved value: -{ - "type": "boolean" -}
- Changed
check_label_and_packaging28 fields changed- added
Input schema / properties / accessible_small_parts / descriptionAdded value: +"Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use." - added
Input schema / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - added
Input schema / properties / battery_compartment_security / descriptionAdded value: +"How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard." - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - removed
Input schema / properties / claims_therapeuticRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / clarification_answerRemoved value: -{ - "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", - "maxLength": 6000, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / contact_durationRemoved value: -{ - "enum": [ - "short", - "long_term", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / contact_temperatureRemoved value: -{ - "enum": [ - "ambient", - "hot_fill", - "cooking_reheating", - "freezing", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / eu_destination / descriptionAdded value: +"Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU." - added
Input schema / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - removed
Input schema / properties / evidence_notesRemoved value: -{ - "description": "Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / evidence_observationsRemoved value: -{ - "default": [], - "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", - "items": { - "properties": { - "confidence": { - "default": "low", - "enum": [ - "low", - "medium", - "high" - ], - "type": "string" - }, - "document_date": { - "anyOf": [ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "document_reference": { - "anyOf": [ - { - "maxLength": 260, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." - }, - "document_type": { - "anyOf": [ - { - "maxLength": 160, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Plain-language apparent document type; this does not authenticate or approve the document." - }, - "evidence_id": { - "anyOf": [ - { - "enum": [ - "ce_declaration", - "ce_label_artwork", - "rohs_evidence", - "radio_test_report", - "un38_3_test_summary", - "battery_label_artwork", - "eu_economic_operator", - "weee_registration", - "battery_epr_registration", - "fcc_authorization", - "fcc_sdoc", - "fcc_label_artwork", - "us_responsible_party", - "lithium_shipping_marks", - "prop65_assessment", - "marketplace_safety_report", - "ukca_or_ce_mark", - "uk_rohs_evidence", - "uk_radio_compliance", - "uk_importer_details", - "uk_weee_registration", - "uk_battery_epr_registration", - "uk_un38_3_test_summary", - "uk_marketplace_safety_report", - "au_rcm_supplier_declaration", - "au_radio_compliance", - "au_eess_supplier_evidence", - "au_importer_supplier_details", - "au_battery_shipping_evidence", - "au_marketplace_safety_report", - "toy_safety_assessment", - "en71_mechanical_report", - "en71_chemical_report", - "electrical_toy_report", - "battery_compartment_assessment", - "choking_risk_assessment", - "age_grading_rationale", - "toy_warning_artwork", - "german_warning_copy", - "marketplace_toy_evidence_package", - "toy_third_party_test_report", - "toy_cpc_certificate", - "toy_retesting_plan", - "toy_cbp_efiling_evidence", - "toy_tracking_label_artwork", - "toy_small_parts_warning_artwork", - "uk_toy_declaration", - "uk_en71_report", - "uk_toy_marking", - "uk_toy_importer_details", - "uk_toy_radio_compliance", - "uk_toy_battery_evidence", - "uk_toy_warning_artwork", - "uk_toy_retesting_plan", - "uk_toy_marketplace_evidence_package", - "au_toy_safety_report", - "au_toy_supplier_declaration", - "au_toy_warning_artwork", - "au_toy_importer_details", - "au_toy_radio_compliance", - "au_toy_battery_evidence", - "au_toy_retesting_plan", - "au_toy_marketplace_evidence_package", - "cosmetic_formula_review", - "cosmetic_safety_report", - "cosmetic_pif", - "cosmetic_cpn_notification", - "cosmetic_label_artwork", - "cosmetic_responsible_person", - "cosmetic_claim_substantiation", - "cosmetic_facility_registration", - "cosmetic_adverse_event_process", - "cosmetic_notification", - "food_contact_material_spec", - "food_contact_use_conditions_spec", - "food_contact_migration_report", - "food_contact_plastic_oml_sml_report", - "food_contact_ceramic_glass_release_report", - "food_contact_paper_board_component_review", - "food_contact_coating_adhesive_ink_review", - "food_contact_metal_release_review", - "food_contact_hot_use_protocol", - "food_contact_repeated_use_simulation", - "food_contact_doc", - "food_contact_traceability", - "food_contact_label_artwork", - "food_contact_polymer_resin_clearance", - "food_contact_fda_status", - "food_contact_supplier_declaration", - "food_contact_california_prop65_screen" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." - }, - "issuer_or_lab": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Issuing organisation or laboratory name only; omit personal names and addresses." - }, - "issues": { - "default": [], - "description": "Concise unresolved checks only; never include document quotations or report text.", - "items": { - "maxLength": 240, - "type": "string" - }, - "maxItems": 16, - "type": "array" - }, - "models_covered": { - "default": [], - "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", - "items": { - "maxLength": 120, - "type": "string" - }, - "maxItems": 20, - "type": "array" - }, - "provenance": { - "default": "agent_extraction", - "enum": [ - "seller_statement", - "agent_extraction", - "llm_inference", - "keyword_inference" - ], - "type": "string" - }, - "report_or_certificate_number": { - "anyOf": [ - { - "maxLength": 140, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "standards_referenced": { - "default": [], - "items": { - "maxLength": 160, - "type": "string" - }, - "maxItems": 24, - "type": "array" - }, - "status": { - "default": "mentioned_uncertain", - "enum": [ - "reported_held", - "mentioned_uncertain", - "not_held", - "needs_human_review" - ], - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 40, - "type": "array" -} - removed
Input schema / properties / evidence_textRemoved value: -{ - "description": "Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.", - "maxLength": 6000, - "type": "string" -} - added
Input schema / properties / food_contact_material / descriptionAdded value: +"The material that touches food. Migration limits and test methods differ by material." - removed
Input schema / properties / food_typeRemoved value: -{ - "enum": [ - "dry", - "aqueous", - "acidic", - "fatty", - "alcoholic", - "mixed", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - removed
Input schema / properties / includes_mains_chargerRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / ingredients_reviewedRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / is_electrically_operatedRemoved value: -{ - "description": "Whether the toy is electrically operated, including mains-powered or battery-powered operation.", - "type": "boolean" -} - removed
Input schema / properties / is_sunscreenRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - removed
Input schema / properties / repeated_useRemoved value: -{ - "enum": [ - "single_use", - "repeated_use", - "unknown" - ], - "type": "string" -} - changed
Input schema / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - added
Input schema / properties / sells_in_california / descriptionAdded value: +"Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements." - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - removed
Input schema / properties / toy_chemical_assessment_completeRemoved value: -{ - "type": "boolean" -}
- Changed
check_us_import_certification28 fields changed- added
Input schema / properties / accessible_small_parts / descriptionAdded value: +"Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use." - added
Input schema / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - removed
Input schema / properties / battery_compartment_securityRemoved value: -{ - "enum": [ - "tool_required", - "two_independent_actions", - "other_secured", - "unsecured", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - removed
Input schema / properties / claims_therapeuticRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / clarification_answerRemoved value: -{ - "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", - "maxLength": 6000, - "minLength": 1, - "type": "string" -} - removed
Input schema / properties / contact_durationRemoved value: -{ - "enum": [ - "short", - "long_term", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / contact_temperatureRemoved value: -{ - "enum": [ - "ambient", - "hot_fill", - "cooking_reheating", - "freezing", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / eu_destinationRemoved value: -{ - "enum": [ - "DE", - "other_eu", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - removed
Input schema / properties / evidence_notesRemoved value: -{ - "description": "Document and evidence information known by the seller or agent: filenames, supplier claims, models, standards, issuers, dates, or extracted key text. Explicit evidence may be mapped to evidence IDs; authenticity, completeness and SKU coverage still need original-file and human review.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / evidence_observationsRemoved value: -{ - "default": [], - "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", - "items": { - "properties": { - "confidence": { - "default": "low", - "enum": [ - "low", - "medium", - "high" - ], - "type": "string" - }, - "document_date": { - "anyOf": [ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "document_reference": { - "anyOf": [ - { - "maxLength": 260, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." - }, - "document_type": { - "anyOf": [ - { - "maxLength": 160, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Plain-language apparent document type; this does not authenticate or approve the document." - }, - "evidence_id": { - "anyOf": [ - { - "enum": [ - "ce_declaration", - "ce_label_artwork", - "rohs_evidence", - "radio_test_report", - "un38_3_test_summary", - "battery_label_artwork", - "eu_economic_operator", - "weee_registration", - "battery_epr_registration", - "fcc_authorization", - "fcc_sdoc", - "fcc_label_artwork", - "us_responsible_party", - "lithium_shipping_marks", - "prop65_assessment", - "marketplace_safety_report", - "ukca_or_ce_mark", - "uk_rohs_evidence", - "uk_radio_compliance", - "uk_importer_details", - "uk_weee_registration", - "uk_battery_epr_registration", - "uk_un38_3_test_summary", - "uk_marketplace_safety_report", - "au_rcm_supplier_declaration", - "au_radio_compliance", - "au_eess_supplier_evidence", - "au_importer_supplier_details", - "au_battery_shipping_evidence", - "au_marketplace_safety_report", - "toy_safety_assessment", - "en71_mechanical_report", - "en71_chemical_report", - "electrical_toy_report", - "battery_compartment_assessment", - "choking_risk_assessment", - "age_grading_rationale", - "toy_warning_artwork", - "german_warning_copy", - "marketplace_toy_evidence_package", - "toy_third_party_test_report", - "toy_cpc_certificate", - "toy_retesting_plan", - "toy_cbp_efiling_evidence", - "toy_tracking_label_artwork", - "toy_small_parts_warning_artwork", - "uk_toy_declaration", - "uk_en71_report", - "uk_toy_marking", - "uk_toy_importer_details", - "uk_toy_radio_compliance", - "uk_toy_battery_evidence", - "uk_toy_warning_artwork", - "uk_toy_retesting_plan", - "uk_toy_marketplace_evidence_package", - "au_toy_safety_report", - "au_toy_supplier_declaration", - "au_toy_warning_artwork", - "au_toy_importer_details", - "au_toy_radio_compliance", - "au_toy_battery_evidence", - "au_toy_retesting_plan", - "au_toy_marketplace_evidence_package", - "cosmetic_formula_review", - "cosmetic_safety_report", - "cosmetic_pif", - "cosmetic_cpn_notification", - "cosmetic_label_artwork", - "cosmetic_responsible_person", - "cosmetic_claim_substantiation", - "cosmetic_facility_registration", - "cosmetic_adverse_event_process", - "cosmetic_notification", - "food_contact_material_spec", - "food_contact_use_conditions_spec", - "food_contact_migration_report", - "food_contact_plastic_oml_sml_report", - "food_contact_ceramic_glass_release_report", - "food_contact_paper_board_component_review", - "food_contact_coating_adhesive_ink_review", - "food_contact_metal_release_review", - "food_contact_hot_use_protocol", - "food_contact_repeated_use_simulation", - "food_contact_doc", - "food_contact_traceability", - "food_contact_label_artwork", - "food_contact_polymer_resin_clearance", - "food_contact_fda_status", - "food_contact_supplier_declaration", - "food_contact_california_prop65_screen" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." - }, - "issuer_or_lab": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Issuing organisation or laboratory name only; omit personal names and addresses." - }, - "issues": { - "default": [], - "description": "Concise unresolved checks only; never include document quotations or report text.", - "items": { - "maxLength": 240, - "type": "string" - }, - "maxItems": 16, - "type": "array" - }, - "models_covered": { - "default": [], - "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", - "items": { - "maxLength": 120, - "type": "string" - }, - "maxItems": 20, - "type": "array" - }, - "provenance": { - "default": "agent_extraction", - "enum": [ - "seller_statement", - "agent_extraction", - "llm_inference", - "keyword_inference" - ], - "type": "string" - }, - "report_or_certificate_number": { - "anyOf": [ - { - "maxLength": 140, - "type": "string" - }, - { - "type": "null" - } - ] - }, - "standards_referenced": { - "default": [], - "items": { - "maxLength": 160, - "type": "string" - }, - "maxItems": 24, - "type": "array" - }, - "status": { - "default": "mentioned_uncertain", - "enum": [ - "reported_held", - "mentioned_uncertain", - "not_held", - "needs_human_review" - ], - "type": "string" - } - }, - "type": "object" - }, - "maxItems": 40, - "type": "array" -} - removed
Input schema / properties / evidence_textRemoved value: -{ - "description": "Document/evidence information already known or extracted by an agent. File upload is optional and separate. Do not paste sensitive certificates or full reports into agent chat.", - "maxLength": 6000, - "type": "string" -} - removed
Input schema / properties / food_contact_materialRemoved value: -{ - "enum": [ - "plastic", - "metal", - "ceramic_glass", - "paper_board", - "silicone_rubber", - "multi_material", - "unknown" - ], - "type": "string" -} - removed
Input schema / properties / food_typeRemoved value: -{ - "enum": [ - "dry", - "aqueous", - "acidic", - "fatty", - "alcoholic", - "mixed", - "unknown" - ], - "type": "string" -} - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - removed
Input schema / properties / includes_mains_chargerRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / ingredients_reviewedRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / is_electrically_operatedRemoved value: -{ - "description": "Whether the toy is electrically operated, including mains-powered or battery-powered operation.", - "type": "boolean" -} - removed
Input schema / properties / is_sunscreenRemoved value: -{ - "type": "boolean" -} - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - removed
Input schema / properties / repeated_useRemoved value: -{ - "enum": [ - "single_use", - "repeated_use", - "unknown" - ], - "type": "string" -} - changed
Input schema / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - added
Input schema / properties / sells_in_california / descriptionAdded value: +"Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements." - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - added
Input schema / properties / toy_chemical_assessment_complete / descriptionAdded value: +"Whether a chemical safety assessment covering migration limits has already been completed for this toy."
- Changed
compare_market_requirements19 fields changed- added
Input schema / properties / accessible_small_parts / descriptionAdded value: +"Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use." - added
Input schema / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - added
Input schema / properties / battery_compartment_security / descriptionAdded value: +"How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard." - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - added
Input schema / properties / claims_therapeutic / descriptionAdded value: +"Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime." - added
Input schema / properties / contact_duration / descriptionAdded value: +"How long the product touches food in normal use. Long-term contact triggers stricter migration testing." - added
Input schema / properties / contact_temperature / descriptionAdded value: +"The temperature at contact. Hot fill and cooking raise migration limits and change the test." - added
Input schema / properties / eu_destination / descriptionAdded value: +"Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU." - added
Input schema / properties / food_contact_material / descriptionAdded value: +"The material that touches food. Migration limits and test methods differ by material." - added
Input schema / properties / food_type / descriptionAdded value: +"The food the product will contact. Simulant selection for migration testing depends on it." - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - added
Input schema / properties / includes_mains_charger / descriptionAdded value: +"Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope." - added
Input schema / properties / ingredients_reviewed / descriptionAdded value: +"Whether the full ingredient list has already been checked against restricted-substance annexes." - added
Input schema / properties / is_sunscreen / descriptionAdded value: +"Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties." - added
Input schema / properties / repeated_use / descriptionAdded value: +"Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles." - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - added
Input schema / properties / toy_chemical_assessment_complete / descriptionAdded value: +"Whether a chemical safety assessment covering migration limits has already been completed for this toy."
- Changed
market_access_check1 field changed- changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case."
- Changed
preflight_product23 fields changed- added
Input schema / properties / accessible_small_parts / descriptionAdded value: +"Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use." - added
Input schema / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - added
Input schema / properties / battery_compartment_security / descriptionAdded value: +"How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard." - added
Input schema / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - added
Input schema / properties / claims_therapeutic / descriptionAdded value: +"Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime." - added
Input schema / properties / contact_duration / descriptionAdded value: +"How long the product touches food in normal use. Long-term contact triggers stricter migration testing." - added
Input schema / properties / contact_temperature / descriptionAdded value: +"The temperature at contact. Hot fill and cooking raise migration limits and change the test." - added
Input schema / properties / eu_destination / descriptionAdded value: +"Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU." - added
Input schema / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - added
Input schema / properties / food_contact_material / descriptionAdded value: +"The material that touches food. Migration limits and test methods differ by material." - added
Input schema / properties / food_type / descriptionAdded value: +"The food the product will contact. Simulant selection for migration testing depends on it." - added
Input schema / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - added
Input schema / properties / includes_mains_charger / descriptionAdded value: +"Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope." - added
Input schema / properties / ingredients_reviewed / descriptionAdded value: +"Whether the full ingredient list has already been checked against restricted-substance annexes." - added
Input schema / properties / is_sunscreen / descriptionAdded value: +"Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties." - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - added
Input schema / properties / repeated_use / descriptionAdded value: +"Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles." - changed
Input schema / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - added
Input schema / properties / sells_in_california / descriptionAdded value: +"Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements." - changed
Input schema / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - added
Input schema / properties / toy_chemical_assessment_complete / descriptionAdded value: +"Whether a chemical safety assessment covering migration limits has already been completed for this toy."
- Changed
watch_product_regulatory_changes23 fields changed- added
Input schema / properties / product_profile / properties / accessible_small_parts / descriptionAdded value: +"Whether a child could reach a part that fits in a small-parts cylinder, including parts freed by reasonably foreseeable use." - added
Input schema / properties / product_profile / properties / age_group / descriptionAdded value: +"Intended user age. Decides whether toy safety rules apply and which small-parts and warning duties follow." - added
Input schema / properties / product_profile / properties / battery_compartment_security / descriptionAdded value: +"How the battery compartment is secured. Button and coin cells carry stricter duties because ingestion is the hazard." - added
Input schema / properties / product_profile / properties / battery_type / descriptionAdded value: +"Cell chemistry. Decides whether UN 38.3 transport testing and battery-passport duties apply. Use unknown rather than guessing." - changed
Input schema / properties / product_profile / properties / case_id / descriptionPrevious value: -"Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU."New value: +"The case this call continues, from an earlier result. Omit to start a new product case." - added
Input schema / properties / product_profile / properties / claims_therapeutic / descriptionAdded value: +"Whether the product claims to treat, prevent or cure anything. A therapeutic claim moves a cosmetic into a different regime." - added
Input schema / properties / product_profile / properties / contact_duration / descriptionAdded value: +"How long the product touches food in normal use. Long-term contact triggers stricter migration testing." - added
Input schema / properties / product_profile / properties / contact_temperature / descriptionAdded value: +"The temperature at contact. Hot fill and cooking raise migration limits and change the test." - added
Input schema / properties / product_profile / properties / eu_destination / descriptionAdded value: +"Destination member state, where it changes the answer. Language and producer-registration duties differ across the EU." - added
Input schema / properties / product_profile / properties / evidence_held / descriptionAdded value: +"Evidence IDs the seller already holds, from a previous result's evidence_checklist. Marks each item held rather than unknown; it does not verify the document." - added
Input schema / properties / product_profile / properties / food_contact_material / descriptionAdded value: +"The material that touches food. Migration limits and test methods differ by material." - added
Input schema / properties / product_profile / properties / food_type / descriptionAdded value: +"The food the product will contact. Simulant selection for migration testing depends on it." - added
Input schema / properties / product_profile / properties / has_battery / descriptionAdded value: +"Whether the product contains or ships with any battery, including a coin cell in a remote." - added
Input schema / properties / product_profile / properties / has_radio / descriptionAdded value: +"Whether the product transmits: Bluetooth, Wi-Fi, NFC, or any other radio. Decides the RED conformity route in the EU and FCC authorisation in the US." - added
Input schema / properties / product_profile / properties / includes_mains_charger / descriptionAdded value: +"Whether a mains plug, wall charger or power adapter ships in the box. A supplied charger is separately in scope." - added
Input schema / properties / product_profile / properties / ingredients_reviewed / descriptionAdded value: +"Whether the full ingredient list has already been checked against restricted-substance annexes." - added
Input schema / properties / product_profile / properties / is_sunscreen / descriptionAdded value: +"Whether the product is sold as sun protection. Sunscreens carry separate testing and labelling duties." - changed
Input schema / properties / product_profile / properties / language / descriptionPrevious value: -"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized."New value: +"Language for seller-facing text. Questions and messages come back in it; en or zh." - added
Input schema / properties / product_profile / properties / repeated_use / descriptionAdded value: +"Whether the article is single-use or reused. Repeated use requires migration testing across successive cycles." - changed
Input schema / properties / product_profile / properties / sales_channel / descriptionPrevious value: -"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"Where the product is sold. Marketplaces impose their own evidence requests on top of the legal requirements." - added
Input schema / properties / product_profile / properties / sells_in_california / descriptionAdded value: +"Whether the product is sold into California. Proposition 65 warning duties apply on top of federal requirements." - changed
Input schema / properties / product_profile / properties / supply_chain_role / descriptionPrevious value: -"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized."New value: +"The seller's role in the chain. Decides which duties are theirs rather than the manufacturer's or importer's." - added
Input schema / properties / product_profile / properties / toy_chemical_assessment_complete / descriptionAdded value: +"Whether a chemical safety assessment covering migration limits has already been completed for this toy."
2 tool updates
- Added
check_amazon_compliance_request - Removed
check_marketplace_compliance_request
5 tool updates
- Added
check_battery_transport_documents - Added
check_eu_declaration_basis - Added
check_label_and_packaging - Added
check_marketplace_compliance_request - Added
check_us_import_certification
1 tool update
- Added
preflight_product
1 tool update
- Changed
market_access_check1 field changed- changed
Input schema / properties / action / descriptionPrevious value: -"Start with continue. Follow next_action exactly: start_stage_2 assesses evidence after the Stage 1 product profile is ready; confirm_stage_2 generates Stage 3 only after the seller confirms the Stage 2 readiness result; correct_stage_2 amends Stage 2. confirm_stage_1/correct_stage_1 are legacy aliases only."New value: +"Start with continue. Follow next_action exactly: start_stage_2 assesses evidence after the Stage 1 product profile is ready; after presenting Stage 2, use correct_stage_2 if the seller supplies a correction, otherwise call confirm_stage_2 immediately to obtain the required secure email-and-consent handoff; Stage 3 is released only after reviewer sign-off. confirm_stage_1/correct_stage_1 are legacy aliases only."
1 tool update
- Changed
market_access_check2 fields changed- changed
Input schema / properties / action / descriptionPrevious value: -"Use continue for the initial description and clarifications. Use confirm_stage_1 only after the seller confirms the Stage 1 summary. Use correct_stage_1 with message or answers to amend it."New value: +"Start with continue. Follow next_action exactly: start_stage_2 assesses evidence after the Stage 1 product profile is ready; confirm_stage_2 generates Stage 3 only after the seller confirms the Stage 2 readiness result; correct_stage_2 amends Stage 2. confirm_stage_1/correct_stage_1 are legacy aliases only." - changed
Input schema / properties / action / enumPrevious value: -[ - "continue", - "confirm_stage_1", - "correct_stage_1" -]New value: +[ + "continue", + "start_stage_2", + "confirm_stage_2", + "correct_stage_2", + "confirm_stage_1", + "correct_stage_1" +]
6 tool updates
- Removed
assess_product_compliance - Removed
generate_next_step_pack - Added
market_access_check - Removed
preflight_product - Removed
register_mcp_contact - Removed
request_human_review
4 tool updates
- Changed
generate_next_step_pack1 field changed- added
Input schema / properties / clarification_answerAdded value: +{ + "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", + "maxLength": 6000, + "minLength": 1, + "type": "string" +}
- Changed
preflight_product1 field changed- added
Input schema / properties / clarification_answerAdded value: +{ + "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", + "maxLength": 6000, + "minLength": 1, + "type": "string" +}
- Changed
request_human_review1 field changed- added
Input schema / properties / product_profile / properties / clarification_answerAdded value: +{ + "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", + "maxLength": 6000, + "minLength": 1, + "type": "string" +}
- Changed
watch_product_regulatory_changes1 field changed- added
Input schema / properties / product_profile / properties / clarification_answerAdded value: +{ + "description": "Continuation shortcut for the exact same case_id when answering questions_required. Send the seller's natural-language answer here; the service restores and merges the previous canonical product profile. Never use this field to introduce a different product or SKU.", + "maxLength": 6000, + "minLength": 1, + "type": "string" +}
7 tool updates
- Changed
assess_product_compliance1 field changed- added
Input schema / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +}
- Changed
compare_market_requirements1 field changed- added
Input schema / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +}
- Changed
explain_claim1 field changed- added
Input schema / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +}
- Changed
generate_next_step_pack2 fields changed- added
Input schema / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +} - added
Input schema / properties / evidence_observationsAdded value: +{ + "default": [], + "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", + "items": { + "properties": { + "confidence": { + "default": "low", + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "document_date": { + "anyOf": [ + { + "maxLength": 80, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "document_reference": { + "anyOf": [ + { + "maxLength": 260, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." + }, + "document_type": { + "anyOf": [ + { + "maxLength": 160, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Plain-language apparent document type; this does not authenticate or approve the document." + }, + "evidence_id": { + "anyOf": [ + { + "enum": [ + "ce_declaration", + "ce_label_artwork", + "rohs_evidence", + "radio_test_report", + "un38_3_test_summary", + "battery_label_artwork", + "eu_economic_operator", + "weee_registration", + "battery_epr_registration", + "fcc_authorization", + "fcc_sdoc", + "fcc_label_artwork", + "us_responsible_party", + "lithium_shipping_marks", + "prop65_assessment", + "marketplace_safety_report", + "ukca_or_ce_mark", + "uk_rohs_evidence", + "uk_radio_compliance", + "uk_importer_details", + "uk_weee_registration", + "uk_battery_epr_registration", + "uk_un38_3_test_summary", + "uk_marketplace_safety_report", + "au_rcm_supplier_declaration", + "au_radio_compliance", + "au_eess_supplier_evidence", + "au_importer_supplier_details", + "au_battery_shipping_evidence", + "au_marketplace_safety_report", + "toy_safety_assessment", + "en71_mechanical_report", + "en71_chemical_report", + "electrical_toy_report", + "battery_compartment_assessment", + "choking_risk_assessment", + "age_grading_rationale", + "toy_warning_artwork", + "german_warning_copy", + "marketplace_toy_evidence_package", + "toy_third_party_test_report", + "toy_cpc_certificate", + "toy_retesting_plan", + "toy_cbp_efiling_evidence", + "toy_tracking_label_artwork", + "toy_small_parts_warning_artwork", + "uk_toy_declaration", + "uk_en71_report", + "uk_toy_marking", + "uk_toy_importer_details", + "uk_toy_radio_compliance", + "uk_toy_battery_evidence", + "uk_toy_warning_artwork", + "uk_toy_retesting_plan", + "uk_toy_marketplace_evidence_package", + "au_toy_safety_report", + "au_toy_supplier_declaration", + "au_toy_warning_artwork", + "au_toy_importer_details", + "au_toy_radio_compliance", + "au_toy_battery_evidence", + "au_toy_retesting_plan", + "au_toy_marketplace_evidence_package", + "cosmetic_formula_review", + "cosmetic_safety_report", + "cosmetic_pif", + "cosmetic_cpn_notification", + "cosmetic_label_artwork", + "cosmetic_responsible_person", + "cosmetic_claim_substantiation", + "cosmetic_facility_registration", + "cosmetic_adverse_event_process", + "cosmetic_notification", + "food_contact_material_spec", + "food_contact_use_conditions_spec", + "food_contact_migration_report", + "food_contact_plastic_oml_sml_report", + "food_contact_ceramic_glass_release_report", + "food_contact_paper_board_component_review", + "food_contact_coating_adhesive_ink_review", + "food_contact_metal_release_review", + "food_contact_hot_use_protocol", + "food_contact_repeated_use_simulation", + "food_contact_doc", + "food_contact_traceability", + "food_contact_label_artwork", + "food_contact_polymer_resin_clearance", + "food_contact_fda_status", + "food_contact_supplier_declaration", + "food_contact_california_prop65_screen" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." + }, + "issuer_or_lab": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Issuing organisation or laboratory name only; omit personal names and addresses." + }, + "issues": { + "default": [], + "description": "Concise unresolved checks only; never include document quotations or report text.", + "items": { + "maxLength": 240, + "type": "string" + }, + "maxItems": 16, + "type": "array" + }, + "models_covered": { + "default": [], + "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", + "items": { + "maxLength": 120, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "provenance": { + "default": "agent_extraction", + "enum": [ + "seller_statement", + "agent_extraction", + "llm_inference", + "keyword_inference" + ], + "type": "string" + }, + "report_or_certificate_number": { + "anyOf": [ + { + "maxLength": 140, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "standards_referenced": { + "default": [], + "items": { + "maxLength": 160, + "type": "string" + }, + "maxItems": 24, + "type": "array" + }, + "status": { + "default": "mentioned_uncertain", + "enum": [ + "reported_held", + "mentioned_uncertain", + "not_held", + "needs_human_review" + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": 40, + "type": "array" +}
- Changed
preflight_product2 fields changed- added
Input schema / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +} - added
Input schema / properties / evidence_observationsAdded value: +{ + "default": [], + "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", + "items": { + "properties": { + "confidence": { + "default": "low", + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "document_date": { + "anyOf": [ + { + "maxLength": 80, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "document_reference": { + "anyOf": [ + { + "maxLength": 260, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." + }, + "document_type": { + "anyOf": [ + { + "maxLength": 160, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Plain-language apparent document type; this does not authenticate or approve the document." + }, + "evidence_id": { + "anyOf": [ + { + "enum": [ + "ce_declaration", + "ce_label_artwork", + "rohs_evidence", + "radio_test_report", + "un38_3_test_summary", + "battery_label_artwork", + "eu_economic_operator", + "weee_registration", + "battery_epr_registration", + "fcc_authorization", + "fcc_sdoc", + "fcc_label_artwork", + "us_responsible_party", + "lithium_shipping_marks", + "prop65_assessment", + "marketplace_safety_report", + "ukca_or_ce_mark", + "uk_rohs_evidence", + "uk_radio_compliance", + "uk_importer_details", + "uk_weee_registration", + "uk_battery_epr_registration", + "uk_un38_3_test_summary", + "uk_marketplace_safety_report", + "au_rcm_supplier_declaration", + "au_radio_compliance", + "au_eess_supplier_evidence", + "au_importer_supplier_details", + "au_battery_shipping_evidence", + "au_marketplace_safety_report", + "toy_safety_assessment", + "en71_mechanical_report", + "en71_chemical_report", + "electrical_toy_report", + "battery_compartment_assessment", + "choking_risk_assessment", + "age_grading_rationale", + "toy_warning_artwork", + "german_warning_copy", + "marketplace_toy_evidence_package", + "toy_third_party_test_report", + "toy_cpc_certificate", + "toy_retesting_plan", + "toy_cbp_efiling_evidence", + "toy_tracking_label_artwork", + "toy_small_parts_warning_artwork", + "uk_toy_declaration", + "uk_en71_report", + "uk_toy_marking", + "uk_toy_importer_details", + "uk_toy_radio_compliance", + "uk_toy_battery_evidence", + "uk_toy_warning_artwork", + "uk_toy_retesting_plan", + "uk_toy_marketplace_evidence_package", + "au_toy_safety_report", + "au_toy_supplier_declaration", + "au_toy_warning_artwork", + "au_toy_importer_details", + "au_toy_radio_compliance", + "au_toy_battery_evidence", + "au_toy_retesting_plan", + "au_toy_marketplace_evidence_package", + "cosmetic_formula_review", + "cosmetic_safety_report", + "cosmetic_pif", + "cosmetic_cpn_notification", + "cosmetic_label_artwork", + "cosmetic_responsible_person", + "cosmetic_claim_substantiation", + "cosmetic_facility_registration", + "cosmetic_adverse_event_process", + "cosmetic_notification", + "food_contact_material_spec", + "food_contact_use_conditions_spec", + "food_contact_migration_report", + "food_contact_plastic_oml_sml_report", + "food_contact_ceramic_glass_release_report", + "food_contact_paper_board_component_review", + "food_contact_coating_adhesive_ink_review", + "food_contact_metal_release_review", + "food_contact_hot_use_protocol", + "food_contact_repeated_use_simulation", + "food_contact_doc", + "food_contact_traceability", + "food_contact_label_artwork", + "food_contact_polymer_resin_clearance", + "food_contact_fda_status", + "food_contact_supplier_declaration", + "food_contact_california_prop65_screen" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." + }, + "issuer_or_lab": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Issuing organisation or laboratory name only; omit personal names and addresses." + }, + "issues": { + "default": [], + "description": "Concise unresolved checks only; never include document quotations or report text.", + "items": { + "maxLength": 240, + "type": "string" + }, + "maxItems": 16, + "type": "array" + }, + "models_covered": { + "default": [], + "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", + "items": { + "maxLength": 120, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "provenance": { + "default": "agent_extraction", + "enum": [ + "seller_statement", + "agent_extraction", + "llm_inference", + "keyword_inference" + ], + "type": "string" + }, + "report_or_certificate_number": { + "anyOf": [ + { + "maxLength": 140, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "standards_referenced": { + "default": [], + "items": { + "maxLength": 160, + "type": "string" + }, + "maxItems": 24, + "type": "array" + }, + "status": { + "default": "mentioned_uncertain", + "enum": [ + "reported_held", + "mentioned_uncertain", + "not_held", + "needs_human_review" + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": 40, + "type": "array" +}
- Changed
request_human_review3 fields changed- changed
Input schema / properties / product_profile / descriptionPrevious value: -"The same product facts used for preflight_product, excluding evidence_notes and evidence_text. Original documents must use the private upload link returned after handoff."New value: +"The same product facts and exact case_id returned by preflight_product, excluding evidence_notes and evidence_text. Original documents must use the private upload link returned after handoff." - added
Input schema / properties / product_profile / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +} - added
Input schema / properties / product_profile / properties / evidence_observationsAdded value: +{ + "default": [], + "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", + "items": { + "properties": { + "confidence": { + "default": "low", + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "document_date": { + "anyOf": [ + { + "maxLength": 80, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "document_reference": { + "anyOf": [ + { + "maxLength": 260, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." + }, + "document_type": { + "anyOf": [ + { + "maxLength": 160, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Plain-language apparent document type; this does not authenticate or approve the document." + }, + "evidence_id": { + "anyOf": [ + { + "enum": [ + "ce_declaration", + "ce_label_artwork", + "rohs_evidence", + "radio_test_report", + "un38_3_test_summary", + "battery_label_artwork", + "eu_economic_operator", + "weee_registration", + "battery_epr_registration", + "fcc_authorization", + "fcc_sdoc", + "fcc_label_artwork", + "us_responsible_party", + "lithium_shipping_marks", + "prop65_assessment", + "marketplace_safety_report", + "ukca_or_ce_mark", + "uk_rohs_evidence", + "uk_radio_compliance", + "uk_importer_details", + "uk_weee_registration", + "uk_battery_epr_registration", + "uk_un38_3_test_summary", + "uk_marketplace_safety_report", + "au_rcm_supplier_declaration", + "au_radio_compliance", + "au_eess_supplier_evidence", + "au_importer_supplier_details", + "au_battery_shipping_evidence", + "au_marketplace_safety_report", + "toy_safety_assessment", + "en71_mechanical_report", + "en71_chemical_report", + "electrical_toy_report", + "battery_compartment_assessment", + "choking_risk_assessment", + "age_grading_rationale", + "toy_warning_artwork", + "german_warning_copy", + "marketplace_toy_evidence_package", + "toy_third_party_test_report", + "toy_cpc_certificate", + "toy_retesting_plan", + "toy_cbp_efiling_evidence", + "toy_tracking_label_artwork", + "toy_small_parts_warning_artwork", + "uk_toy_declaration", + "uk_en71_report", + "uk_toy_marking", + "uk_toy_importer_details", + "uk_toy_radio_compliance", + "uk_toy_battery_evidence", + "uk_toy_warning_artwork", + "uk_toy_retesting_plan", + "uk_toy_marketplace_evidence_package", + "au_toy_safety_report", + "au_toy_supplier_declaration", + "au_toy_warning_artwork", + "au_toy_importer_details", + "au_toy_radio_compliance", + "au_toy_battery_evidence", + "au_toy_retesting_plan", + "au_toy_marketplace_evidence_package", + "cosmetic_formula_review", + "cosmetic_safety_report", + "cosmetic_pif", + "cosmetic_cpn_notification", + "cosmetic_label_artwork", + "cosmetic_responsible_person", + "cosmetic_claim_substantiation", + "cosmetic_facility_registration", + "cosmetic_adverse_event_process", + "cosmetic_notification", + "food_contact_material_spec", + "food_contact_use_conditions_spec", + "food_contact_migration_report", + "food_contact_plastic_oml_sml_report", + "food_contact_ceramic_glass_release_report", + "food_contact_paper_board_component_review", + "food_contact_coating_adhesive_ink_review", + "food_contact_metal_release_review", + "food_contact_hot_use_protocol", + "food_contact_repeated_use_simulation", + "food_contact_doc", + "food_contact_traceability", + "food_contact_label_artwork", + "food_contact_polymer_resin_clearance", + "food_contact_fda_status", + "food_contact_supplier_declaration", + "food_contact_california_prop65_screen" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." + }, + "issuer_or_lab": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Issuing organisation or laboratory name only; omit personal names and addresses." + }, + "issues": { + "default": [], + "description": "Concise unresolved checks only; never include document quotations or report text.", + "items": { + "maxLength": 240, + "type": "string" + }, + "maxItems": 16, + "type": "array" + }, + "models_covered": { + "default": [], + "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", + "items": { + "maxLength": 120, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "provenance": { + "default": "agent_extraction", + "enum": [ + "seller_statement", + "agent_extraction", + "llm_inference", + "keyword_inference" + ], + "type": "string" + }, + "report_or_certificate_number": { + "anyOf": [ + { + "maxLength": 140, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "standards_referenced": { + "default": [], + "items": { + "maxLength": 160, + "type": "string" + }, + "maxItems": 24, + "type": "array" + }, + "status": { + "default": "mentioned_uncertain", + "enum": [ + "reported_held", + "mentioned_uncertain", + "not_held", + "needs_human_review" + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": 40, + "type": "array" +}
- Changed
watch_product_regulatory_changes2 fields changed- added
Input schema / properties / product_profile / properties / case_idAdded value: +{ + "description": "Opaque ComplianceCN product-case ID returned by the first successful free workflow call. Carry it unchanged through clarification retries, Stage 2 and human review for the same product/SKU. Never reuse it for another product or SKU.", + "pattern": "^ccase_[a-f0-9]{24}$", + "type": "string" +} - added
Input schema / properties / product_profile / properties / evidence_observationsAdded value: +{ + "default": [], + "description": "Sanitised document observations that may continue between workflow stages: apparent type, filename/reference, models, organisation, date, identifiers, standards, confidence and unresolved issues. Do not include file contents, verbatim extracts, quotations, addresses or unrelated personal information.", + "items": { + "properties": { + "confidence": { + "default": "low", + "enum": [ + "low", + "medium", + "high" + ], + "type": "string" + }, + "document_date": { + "anyOf": [ + { + "maxLength": 80, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "document_reference": { + "anyOf": [ + { + "maxLength": 260, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Filename or short seller/agent reference only. Do not send a local path, URL, document body or quotation." + }, + "document_type": { + "anyOf": [ + { + "maxLength": 160, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Plain-language apparent document type; this does not authenticate or approve the document." + }, + "evidence_id": { + "anyOf": [ + { + "enum": [ + "ce_declaration", + "ce_label_artwork", + "rohs_evidence", + "radio_test_report", + "un38_3_test_summary", + "battery_label_artwork", + "eu_economic_operator", + "weee_registration", + "battery_epr_registration", + "fcc_authorization", + "fcc_sdoc", + "fcc_label_artwork", + "us_responsible_party", + "lithium_shipping_marks", + "prop65_assessment", + "marketplace_safety_report", + "ukca_or_ce_mark", + "uk_rohs_evidence", + "uk_radio_compliance", + "uk_importer_details", + "uk_weee_registration", + "uk_battery_epr_registration", + "uk_un38_3_test_summary", + "uk_marketplace_safety_report", + "au_rcm_supplier_declaration", + "au_radio_compliance", + "au_eess_supplier_evidence", + "au_importer_supplier_details", + "au_battery_shipping_evidence", + "au_marketplace_safety_report", + "toy_safety_assessment", + "en71_mechanical_report", + "en71_chemical_report", + "electrical_toy_report", + "battery_compartment_assessment", + "choking_risk_assessment", + "age_grading_rationale", + "toy_warning_artwork", + "german_warning_copy", + "marketplace_toy_evidence_package", + "toy_third_party_test_report", + "toy_cpc_certificate", + "toy_retesting_plan", + "toy_cbp_efiling_evidence", + "toy_tracking_label_artwork", + "toy_small_parts_warning_artwork", + "uk_toy_declaration", + "uk_en71_report", + "uk_toy_marking", + "uk_toy_importer_details", + "uk_toy_radio_compliance", + "uk_toy_battery_evidence", + "uk_toy_warning_artwork", + "uk_toy_retesting_plan", + "uk_toy_marketplace_evidence_package", + "au_toy_safety_report", + "au_toy_supplier_declaration", + "au_toy_warning_artwork", + "au_toy_importer_details", + "au_toy_radio_compliance", + "au_toy_battery_evidence", + "au_toy_retesting_plan", + "au_toy_marketplace_evidence_package", + "cosmetic_formula_review", + "cosmetic_safety_report", + "cosmetic_pif", + "cosmetic_cpn_notification", + "cosmetic_label_artwork", + "cosmetic_responsible_person", + "cosmetic_claim_substantiation", + "cosmetic_facility_registration", + "cosmetic_adverse_event_process", + "cosmetic_notification", + "food_contact_material_spec", + "food_contact_use_conditions_spec", + "food_contact_migration_report", + "food_contact_plastic_oml_sml_report", + "food_contact_ceramic_glass_release_report", + "food_contact_paper_board_component_review", + "food_contact_coating_adhesive_ink_review", + "food_contact_metal_release_review", + "food_contact_hot_use_protocol", + "food_contact_repeated_use_simulation", + "food_contact_doc", + "food_contact_traceability", + "food_contact_label_artwork", + "food_contact_polymer_resin_clearance", + "food_contact_fda_status", + "food_contact_supplier_declaration", + "food_contact_california_prop65_screen" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Canonical evidence ID when the apparent document type can be mapped safely; otherwise null." + }, + "issuer_or_lab": { + "anyOf": [ + { + "maxLength": 200, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Issuing organisation or laboratory name only; omit personal names and addresses." + }, + "issues": { + "default": [], + "description": "Concise unresolved checks only; never include document quotations or report text.", + "items": { + "maxLength": 240, + "type": "string" + }, + "maxItems": 16, + "type": "array" + }, + "models_covered": { + "default": [], + "description": "Model/SKU identifiers explicitly stated by the seller, agent or extracted document facts.", + "items": { + "maxLength": 120, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "provenance": { + "default": "agent_extraction", + "enum": [ + "seller_statement", + "agent_extraction", + "llm_inference", + "keyword_inference" + ], + "type": "string" + }, + "report_or_certificate_number": { + "anyOf": [ + { + "maxLength": 140, + "type": "string" + }, + { + "type": "null" + } + ] + }, + "standards_referenced": { + "default": [], + "items": { + "maxLength": 160, + "type": "string" + }, + "maxItems": 24, + "type": "array" + }, + "status": { + "default": "mentioned_uncertain", + "enum": [ + "reported_held", + "mentioned_uncertain", + "not_held", + "needs_human_review" + ], + "type": "string" + } + }, + "type": "object" + }, + "maxItems": 40, + "type": "array" +}
6 tool updates
- Changed
assess_product_compliance5 fields changed- changed
Input schema / properties / category / enumPrevious value: -[ - "toys", - "battery-electronics", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - added
Input schema / properties / supply_chain_role / descriptionAdded value: +"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / supply_chain_role / enumRemoved value: -[ - "manufacturer", - "importer", - "distributor", - "marketplace_seller", - "unknown" -] - added
Input schema / properties / supply_chain_role / maxLengthAdded value: +80 - added
Input schema / properties / supply_chain_role / minLengthAdded value: +1
- Changed
compare_market_requirements5 fields changed- changed
Input schema / properties / category / enumPrevious value: -[ - "toys", - "battery-electronics", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - added
Input schema / properties / supply_chain_role / descriptionAdded value: +"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / supply_chain_role / enumRemoved value: -[ - "manufacturer", - "importer", - "distributor", - "marketplace_seller", - "unknown" -] - added
Input schema / properties / supply_chain_role / maxLengthAdded value: +80 - added
Input schema / properties / supply_chain_role / minLengthAdded value: +1
- Changed
generate_next_step_pack13 fields changed- changed
Input schema / properties / applicable_modules / items / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / category / descriptionPrevious value: -"Optional structured category hint. Omit when product_description contains enough information for extraction."New value: +"Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction." - changed
Input schema / properties / category / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Defaults to Chinese."New value: +"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized." - changed
Input schema / properties / language / enumPrevious value: -[ - "zh", - "en" -]New value: +[ + "zh", + "en", + "English", + "english", + "Chinese", + "chinese", + "中文", + "英文" +] - added
Input schema / properties / sales_channel / descriptionAdded value: +"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / sales_channel / enumRemoved value: -[ - "amazon", - "other_marketplace", - "own_site", - "unknown" -] - added
Input schema / properties / sales_channel / maxLengthAdded value: +80 - added
Input schema / properties / sales_channel / minLengthAdded value: +1 - added
Input schema / properties / supply_chain_role / descriptionAdded value: +"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / supply_chain_role / enumRemoved value: -[ - "manufacturer", - "importer", - "distributor", - "marketplace_seller", - "unknown" -] - added
Input schema / properties / supply_chain_role / maxLengthAdded value: +80 - added
Input schema / properties / supply_chain_role / minLengthAdded value: +1
- Changed
preflight_product13 fields changed- changed
Input schema / properties / applicable_modules / items / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / category / descriptionPrevious value: -"Optional structured category hint. Omit when product_description contains enough information for extraction."New value: +"Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction." - changed
Input schema / properties / category / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / language / descriptionPrevious value: -"Response language. Defaults to Chinese."New value: +"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized." - changed
Input schema / properties / language / enumPrevious value: -[ - "zh", - "en" -]New value: +[ + "zh", + "en", + "English", + "english", + "Chinese", + "chinese", + "中文", + "英文" +] - added
Input schema / properties / sales_channel / descriptionAdded value: +"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / sales_channel / enumRemoved value: -[ - "amazon", - "other_marketplace", - "own_site", - "unknown" -] - added
Input schema / properties / sales_channel / maxLengthAdded value: +80 - added
Input schema / properties / sales_channel / minLengthAdded value: +1 - added
Input schema / properties / supply_chain_role / descriptionAdded value: +"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / supply_chain_role / enumRemoved value: -[ - "manufacturer", - "importer", - "distributor", - "marketplace_seller", - "unknown" -] - added
Input schema / properties / supply_chain_role / maxLengthAdded value: +80 - added
Input schema / properties / supply_chain_role / minLengthAdded value: +1
- Changed
request_human_review13 fields changed- changed
Input schema / properties / product_profile / properties / applicable_modules / items / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / product_profile / properties / category / descriptionPrevious value: -"Optional structured category hint. Omit when product_description contains enough information for extraction."New value: +"Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction." - changed
Input schema / properties / product_profile / properties / category / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / product_profile / properties / language / descriptionPrevious value: -"Response language. Defaults to Chinese."New value: +"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized." - changed
Input schema / properties / product_profile / properties / language / enumPrevious value: -[ - "zh", - "en" -]New value: +[ + "zh", + "en", + "English", + "english", + "Chinese", + "chinese", + "中文", + "英文" +] - added
Input schema / properties / product_profile / properties / sales_channel / descriptionAdded value: +"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / product_profile / properties / sales_channel / enumRemoved value: -[ - "amazon", - "other_marketplace", - "own_site", - "unknown" -] - added
Input schema / properties / product_profile / properties / sales_channel / maxLengthAdded value: +80 - added
Input schema / properties / product_profile / properties / sales_channel / minLengthAdded value: +1 - added
Input schema / properties / product_profile / properties / supply_chain_role / descriptionAdded value: +"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / product_profile / properties / supply_chain_role / enumRemoved value: -[ - "manufacturer", - "importer", - "distributor", - "marketplace_seller", - "unknown" -] - added
Input schema / properties / product_profile / properties / supply_chain_role / maxLengthAdded value: +80 - added
Input schema / properties / product_profile / properties / supply_chain_role / minLengthAdded value: +1
- Changed
watch_product_regulatory_changes13 fields changed- changed
Input schema / properties / product_profile / properties / applicable_modules / items / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / product_profile / properties / category / descriptionPrevious value: -"Optional structured category hint. Omit when product_description contains enough information for extraction."New value: +"Optional structured category hint. Canonical IDs and common English/Chinese labels are accepted. Omit when product_description contains enough information for extraction." - changed
Input schema / properties / product_profile / properties / category / enumPrevious value: -[ - "battery-electronics", - "toys", - "cosmetics", - "food-contact" -]New value: +[ + "battery-electronics", + "toys", + "cosmetics", + "food-contact", + "toy", + "玩具", + "battery", + "electronics", + "电池电子产品", + "带电池电子产品", + "cosmetic", + "化妆品", + "food_contact", + "foodcontact", + "食品接触材料", + "食品接触用品", + "食品接触产品" +] - changed
Input schema / properties / product_profile / properties / language / descriptionPrevious value: -"Response language. Defaults to Chinese."New value: +"Response language. Canonical values are zh or en. Common English and Chinese labels are accepted during preflight and normalized." - changed
Input schema / properties / product_profile / properties / language / enumPrevious value: -[ - "zh", - "en" -]New value: +[ + "zh", + "en", + "English", + "english", + "Chinese", + "chinese", + "中文", + "英文" +] - added
Input schema / properties / product_profile / properties / sales_channel / descriptionAdded value: +"Sales channel. Canonical values are amazon, other_marketplace, own_site or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / product_profile / properties / sales_channel / enumRemoved value: -[ - "amazon", - "other_marketplace", - "own_site", - "unknown" -] - added
Input schema / properties / product_profile / properties / sales_channel / maxLengthAdded value: +80 - added
Input schema / properties / product_profile / properties / sales_channel / minLengthAdded value: +1 - added
Input schema / properties / product_profile / properties / supply_chain_role / descriptionAdded value: +"Supply-chain role. Canonical values are manufacturer, importer, distributor, marketplace_seller or unknown. Common natural-language English and Chinese labels are accepted and normalized." - removed
Input schema / properties / product_profile / properties / supply_chain_role / enumRemoved value: -[ - "manufacturer", - "importer", - "distributor", - "marketplace_seller", - "unknown" -] - added
Input schema / properties / product_profile / properties / supply_chain_role / maxLengthAdded value: +80 - added
Input schema / properties / product_profile / properties / supply_chain_role / minLengthAdded value: +1
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
EU FMCG checks: allergens, additives, claims, labelling, sourcing. Every answer cites its source.
Classify, validate & verify HS codes and access tariff compliance data for cross-border trade
Curated Amazon/Shopify/TikTok Shop changes (fees, policies, APIs) & upcoming seller deadlines.
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables checking cosmetic ingredient safety and multi-jurisdiction compliance across 12 regulatory bodies, backed by a comprehensive dataset of safety opinions and studies.MIT
- AlicenseNot gradedqualityCmaintenanceEnables classification of medical devices, IVDs, and AI/ML SaMD under EU MDR and IVDR regulations.MIT
- FlicenseAqualityDmaintenanceEMEA sales + employment compliance for AI agents across 7 countries (UK, Germany, France, Spain, Italy, Netherlands, Sweden). GDPR, IR35, CNIL, B2B opt-out rules, cultural buyer psychology. Built by an ex-Deel ($12B) compliance + sales operator.7-
- AlicenseNot gradedqualityDmaintenanceEnables EU Cyber Resilience Act compliance assessments, including classifying product obligations, auditing pipelines for gaps, generating hash-chained attestations, and cross-referencing NIS2.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
The check_* tools each target a distinct regulatory aspect (transport, EU DoC, labeling, marketplace, US certification), and the auxiliary tools (describe, explain, compare, watch) are clearly separate. The only potential confusion is between market_access_check and preflight_product, which both assess product requirements but differ in input style and follow-up workflow.
Most tools follow a verb_noun pattern (check_battery..., compare_market..., explain_claim), but market_access_check reverses the expected 'check_market_access' order and preflight_product uses a less common verb. Still, the pattern is recognizable and mostly consistent.
Eleven tools is well within the ideal range for a compliance-checks server. Each tool addresses a distinct user scenario (general assessment, specialized checks, comparison, coverage, claims, alerts), and none feels redundant or superficial.
The server covers the core assessment lifecycle: initial check, structured preflight, detailed specialist checks, cross-market comparison, claim explanation, and regulatory change alerts. Minor gaps exist, such as no way to cancel alert subscriptions or retrieve a saved full report, but the main compliance-checking domain is thoroughly covered.