Servidor MCP

A2A Cosmetics

io.github.greencore-solutions/a2a-cosmetics
Comercio y retail Legal y cumplimiento Público y accesible MCP 2025-11-25

Qué hace este MCP

Checks cosmetic products and ingredients across markets, including regulatory status, labeling, claims, safety documents, availability, pricing, and verified suppliers.

a2a_handoff
A2A Handoff
Hand the buyer to the right agent over Agent-to-Agent (A2A): with an allow decision the order intent goes to the counterparty's agent (envelope + card URL); with a deny, the market agent of the ship-to (the regulator's home page beside it) — a referral, never a sale to a consumer.
Esquema de entrada
{'type': 'object', 'properties': {'intent_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'counterparty_card_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
compare_items
Compare Items
Compare products, variants and shades side by side (two to eight GTINs or catalogue ids).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['gtins'], 'properties': {'gtins': {'type': 'array', 'items': {'type': 'string'}}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
create_order_intent
Create Order Intent
Open an order between two agents: an order intent for a cleared product after the gate; the intent carries reason_code + rule_set_version and settles by x402 on a2a-x402.ai.
Esquema de entrada
{'type': 'object', 'required': ['gtin', 'quantity', 'decision_id'], 'properties': {'gtin': {'type': 'string'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'ship_to': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'quantity': {'type': 'integer'}, 'decision_id': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
find_verified_supplier
Find Verified Supplier
Verified makers and brands for this product or product type in a market: supplier records (brand · manufacturer) with their claim status — verified first, then claimed, then listed. Takes the decision_id of an allow decision.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['market', 'decision_id'], 'properties': {'gtin': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'limit': {'type': 'integer', 'default': 25}, 'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'market': {'type': 'string'}, 'decision_id': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
gate_transaction
Gate Transaction
Allow or deny, with the reason and the rule. Takes a product (GTIN or catalogue id; optional), the ship-to market, the actor class and, when no record exists yet, the product type, ingredients (INCI) and claims. Returns one of twelve reason codes (ALLOW · REQUIRE_NOTIFICATION · REQUIRE_RESPONSIBLE_PERSON · DENY_NOT_A_COSMETIC_HERE · DENY_INGREDIENT_BANNED · DENY_INGREDIENT_LIMIT · DENY_CLAIM · DENY_MARKET · DENY_ACTOR_CLASS · DENY_UNLICENSED_AGENT · DENY_NO_GTIN · DENY_NOT_VERIFIED), the rule-set version, the source page and a decision_id for the downstream tools.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['ship_to', 'actor_class'], 'properties': {'claims': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'channel': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'product': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'ship_to': {'type': 'string'}, 'credential': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'actor_class': {'type': 'string'}, 'ingredients': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'product_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
get_availability
Get Availability
In stock, and where: the availability block of a product (banners on the shelf of record, product URLs read live at load, store counts where the retailer record carries one) once gate_transaction has answered allow (decision_id).
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['gtin', 'decision_id'], 'properties': {'gtin': {'type': 'string'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'decision_id': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
get_enforcement_watch
Get Enforcement Watch
Recalls, bans and safety alerts, dated: enforcement events by market, ingredient, brand or since a date, each with its source page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'properties': {'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'since': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
get_ingredient_record
Get Ingredient Record
One ingredient, and its status in every market: the standard ingredient name (INCI), aliases, and per rule set whether it is prohibited, restricted (with the limit or condition) or listed, each with the official list and its source page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['ingredient'], 'properties': {'ingredient': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
get_item
Get Item
One product by GTIN, fully resolved: taxonomy path, variant or form, brand, market, claim status, market status, availability; after the gate also ingredients, claims, attributes, shades (parent and child) and offers.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['gtin'], 'properties': {'gtin': {'type': 'string'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
get_label_and_claims
Get Label And Claims
What the label must say, and which claims are allowed: the label requirements of the market and the claims rules of record (patterns that take a product out of the cosmetic class), each with its source page. Optional claims are checked against the rules.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['market'], 'properties': {'claims': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None}, 'market': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
get_market_status
Get Market Status
Is this product type a cosmetic here? Product type by market: cosmetic, drug, special class (functional cosmetic, quasi-drug, grade 2, therapeutic good) or not permitted — with the rule-set version and the regulator's page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['product_type', 'market'], 'properties': {'market': {'type': 'string'}, 'product_type': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
get_notification_requirements
Get Notification Requirements
What must be filed before sale in a market: the notification scheme, the responsible-person requirement and, for a product type in a special class, the extra step (review, registration, listing) — each with its source page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['market'], 'properties': {'market': {'type': 'string'}, 'product_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
get_price
Get Price
The price for this buyer: the price basis (list · contract) from the supplier's offers on the record, once gate_transaction has answered allow (decision_id). Tiers buy services, never rank.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['gtin', 'decision_id'], 'properties': {'gtin': {'type': 'string'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'decision_id': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
get_product_documents
Get Product Documents
Safety report, certificate of analysis, data sheet: the documents on a product record (product information file pointer, safety assessment, certificate of analysis, safety data sheet), each a URL with its read date; decision_id required.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['gtin', 'decision_id'], 'properties': {'gtin': {'type': 'string'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'decision_id': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
get_safety_label
Get Safety Label
Warnings and age limits: the warning statements the market requires for a product type (sunscreen, hair dye, aerosols, children's products) and the safety-alert scheme of the regulator, each with its source page.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['market'], 'properties': {'market': {'type': 'string'}, 'product_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
log_audit
Log Audit
Write a line to the audit record for a gate decision, an order intent or a handoff (returns the line id).
Esquema de entrada
{'type': 'object', 'required': ['kind', 'reference_id'], 'properties': {'kind': {'type': 'string'}, 'note': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'reference_id': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
resolve_actor
Resolve Actor
Who is asking? Brand, manufacturer, retailer or distributor (business to business); auditor (read-only); agent (inherits the class of the credential it presents — none returns DENY_UNLICENSED_AGENT). The consumer is never the counterparty. Returns communication_class: trade_information or public.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['actor_class'], 'properties': {'credential': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'actor_class': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
resolve_jurisdiction
Resolve Jurisdiction
Where is this going? Resolve a ship-to (e.g. 'US', 'US-CA', 'UK', 'FR', 'EU-DE', 'JP') to one of the 18 markets and its rule set (13 rule sets; the six EU markets share one). UK is the label; machine fields carry the ISO code GB.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['ship_to'], 'properties': {'ship_to': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
search_cleared_items
Search Cleared Items
Find products cleared for this market: validated product records in a market (query by product name, brand, product type or lane; optional lane filter: suncare · fragrance · dermocosmetics · peptides · korean · sustainable). Only validated rows are served; each item carries its claim status and market status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['market'], 'properties': {'lane': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'limit': {'type': 'integer', 'default': 25}, 'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'market': {'type': 'string'}, 'decision_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'product_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}}
Esquema de salida
{'type': 'object'}
verify_gtin
Verify Gtin
Is this GTIN real, and whose is it? Check-digit validation, the GS1 prefix, and the validated record(s) that carry it on this hub with their brand and claim status.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', 'required': ['gtin'], 'properties': {'gtin': {'type': 'string'}}}
Esquema de salida
{'type': 'object'}
Añadido
log_audit
22 de September de 2026 a las 02:40
Añadido
get_safety_label
22 de September de 2026 a las 02:40
Añadido
a2a_handoff
22 de September de 2026 a las 02:40
Añadido
create_order_intent
22 de September de 2026 a las 02:40
Añadido
verify_gtin
22 de September de 2026 a las 02:40
Añadido
get_product_documents
22 de September de 2026 a las 02:40
Añadido
get_price
22 de September de 2026 a las 02:40
Añadido
get_availability
22 de September de 2026 a las 02:40
Añadido
find_verified_supplier
22 de September de 2026 a las 02:40
Añadido
compare_items
22 de September de 2026 a las 02:40
Añadido
get_item
22 de September de 2026 a las 02:40
Añadido
search_cleared_items
22 de September de 2026 a las 02:40
Añadido
get_enforcement_watch
22 de September de 2026 a las 02:40
Añadido
get_label_and_claims
22 de September de 2026 a las 02:40
Añadido
get_notification_requirements
22 de September de 2026 a las 02:40
Añadido
get_market_status
22 de September de 2026 a las 02:40
Añadido
get_ingredient_record
22 de September de 2026 a las 02:40
Añadido
gate_transaction
22 de September de 2026 a las 02:40
Añadido
resolve_actor
22 de September de 2026 a las 02:40
Añadido
resolve_jurisdiction
22 de September de 2026 a las 02:40