A2A Cosmetics

io.github.greencore-solutions由 GitHub 帳號 greencore-solutions 發布v1.0.3更新於 Nov 5, 2026

Agent-to-Agent (A2A) hub for cosmetics: skin care, fragrance, sun care, dermocosmetics.

已驗證Streamable HTTP可網頁執行效率與工作流安全與監控商業與電商

概覽

AI 產生的概覽

面向化妝品產業的 B2B A2A/MCP 樞紐,讓助理查詢各市場法規、對交易做准入判定,並檢索已放行產品、價格與供應商。

可以做什麼
  • 解析目的市場與主體類別,再對交易做准入判定,回傳允許或拒絕及原因碼與規則集版本
  • 查詢法規事實:各市場成分狀態、產品類型歸類、通報要求、標示與宣稱規則、安全標示與執法事件
  • 搜尋、讀取並比較已放行產品紀錄,並驗證 GTIN
  • 在准入判定通過後查找已驗證供應商、庫存、價格與產品文件
  • 建立訂單意向,透過 A2A 將買方轉交給對方或市場代理,並寫入稽核紀錄
  • 透過通用商務協定目錄介面搜尋與查詢產品
適用情境
適合需要跨多個司法管轄區回答化妝品合規與採購問題的助理,也適合從產品查核到訂單意向與轉交的受控 B2B 流程。讀取類工具開放,因此也可用於成分、標示與召回等純研究。
執行需求
遠端 streamable-HTTP 端點,無需安裝。讀取類工具無需憑證。六個交易類工具需要來自簽發方 a2a-registry.ai 的用戶端憑證 Bearer 權杖,需在其 OAuth 註冊端點註冊取得。訂單意向透過 x402 結算付款。
安裝前請注意
交易類工具(庫存、價格、文件、訂單意向、轉交)在沒有准入判定允許時會被拒絕,因此必須先完成三步判定。訂單意向透過 x402 以 Base 上的 USDC 結算,會實際花錢。log_audit 會寫入稽核紀錄。產品事實來自第三方解析服務;伺服器聲明其僅為資訊來源而非推薦,且 AI 會出錯。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 A2A Cosmetics,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.greencore-solutions%2Fa2a-cosmetics/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "a2a-cosmetics": {
      "type": "http",
      "url": "https://mcp.a2a-cosmetics.ai/mcp"
    }
  }
}

README

A2A Cosmetics — connect kit

Agent-to-Agent (A2A) + Model Context Protocol (MCP) hub for cosmetics.

Business to business: brands, manufacturers, retailers, distributors and their AI agents. Eighteen markets, thirteen rule sets; every answer names the market, the rule set and the version it was judged against. Operated by GreenCore Solutions Corp. Public connect kit, MIT.

Notice: Artificial intelligence makes mistakes. A2A Cosmetics is an information source, not a recommendation. Rules differ by jurisdiction — refer to the regulator in your jurisdiction for the information that applies to you.

The door

streamable-HTTP, stateless, server name `a2a-cosmetics`, door version 1.0.0, 20 tools (read from the wire 2026-09-20) Product facts on this hub are served live from gtinfetch.ai, the GTIN resolver for AI agents; every answer carries its source page, date read and gtinfetch’s signature. Paid resolves at x402.gtinfetch.ai.
  • MCP: https://mcp.a2a-cosmetics.ai/mcp — any client that speaks streamable-HTTP: { "url": "https://mcp.a2a-cosmetics.ai/mcp", "transport": "streamable-http" }
  • A2A 0.3.0 JSON-RPC: https://a2a-cosmetics.ai/a2a (the hub) and https://<cc>.a2a-cosmetics.ai/a2a (one market agent per market, answered from its own Azure region)
  • Agent Card: https://a2a-cosmetics.ai/.well-known/agent-card.json (ES256, kid a2ac-2026-09; keyring /.well-known/jwks.json)
  • Setup: https://a2a-cosmetics.ai/setup · Docs: https://a2a-cosmetics.ai/docs · Claim your record: https://a2a-cosmetics.ai/claim
  • Official MCP Registry: io.github.greencore-solutions/a2a-cosmetics (server.json in this repo)

The gate

Three calls before any price: resolve_jurisdiction → resolve_actor → gate_transaction. 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 twenty tools

  • Gate — resolve_jurisdiction, resolve_actor, gate_transaction
  • Regulatory truth — get_ingredient_record, get_market_status, get_notification_requirements, get_label_and_claims, get_enforcement_watch
  • Catalogue — search_cleared_items, get_item, compare_items
  • Supply — find_verified_supplier, get_availability, get_price
  • Documents — get_product_documents, verify_gtin
  • Commerce — create_order_intent, a2a_handoff
  • Operations — get_safety_label, log_audit

Reads are open. The six transacting tools take a client-credentials Bearer from the issuer, https://a2a-registry.ai (register at /oauth/register; see https://a2a-cosmetics.ai/auth.md).

The agents

RoleHostnameAgentsRegion
Hub (concierge)a2a-cosmetics.ai1South Central US
Registry (token questions)a2a-registry.ai1South Central US
Payments door (receipt questions)a2a-x402.ai1South Central US
Actor-class entry pointspharmacy · prescriber · wholesaler · brand + .a2a-cosmetics.ai4South Central US
Handoff (referral only)handoff.a2a-cosmetics.ai1South Central US
Enforcement watchwatch.a2a-cosmetics.ai1South Central US
Auditor Portaudit.a2a-cosmetics.ai1South Central US

36 agents live, 0 product-line slots reserved on the tenant table; by region: Australia East 1 · Brazil South 1 · Canada Central 1 · Central India 1 · France Central 2 · Germany West Central 1 · Italy North 1 · Japan East 1 · Korea Central 1 · Mexico Central 1 · Poland Central 1 · South Central US 18 · Southeast Asia 1 · Spain Central 1 · Switzerland North 1 · UAE North 1 · UK South 1 · West Europe 1. Counted from the hub's list_agents on 2026-09-20; door version 1.0.0, 20 tools.

Examples

Stock clients, no adapter: examples/aws_strands.py · examples/azure_semantic_kernel.py · examples/google_genai.py · examples/generic_mcp_client.py; A2A: examples/a2a_aws_strands.py · examples/a2a_azure_agent_framework.py · examples/a2a_google_sdk.py.

Pay on it

x402 is live on https://a2a-x402.ai (USDC on Base, settlement after the gate; a refused order intent is not settled and not charged). The Machine Payments Protocol, the Universal Commerce Protocol and the Agentic Commerce Protocol are built and dark until they can settle; the Agent Payments Protocol sits on the Agent Card. Front door: https://a2a-pay.ai.

Contact

[email protected] — the registry contact for every listing this hub files.

來源:README.md,提交 2821433

工具

24

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.

輸入參數ship_to必填

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.

輸入參數credentialactor_class必填

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.

輸入參數claimschannelproductship_to必填credentialactor_class必填ingredientsproduct_type

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.

輸入參數ingredient必填

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.

輸入參數market必填product_type必填

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.

輸入參數market必填product_type

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.

輸入參數claimsmarket必填

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.

輸入參數querysincemarket

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.

輸入參數lanelimitquerymarket必填decision_idproduct_type

get_item

Get Item

Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. 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.

輸入參數gtin必填marketdecision_id

compare_items

Compare Items

Compare products, variants and shades side by side (two to eight GTINs or catalogue ids).

輸入參數gtins必填marketdecision_id

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.

輸入參數gtinlimitquerymarket必填decision_id必填

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).

輸入參數gtin必填marketdecision_id必填

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.

輸入參數gtin必填marketdecision_id必填

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.

輸入參數gtin必填marketdecision_id必填

verify_gtin

Verify Gtin

Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. 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.

輸入參數gtin必填

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.

輸入參數gtin必填marketship_toquantity必填decision_id必填

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.

輸入參數intent_iddecision_idcounterparty_card_url

claim_seat

Claim Seat

A brand's agent claims its seat on A2A Cosmetics. Give the agent's card URL and the GTINs the brand claims: every GTIN must resolve on gtinfetch.ai to the maker the card names, and the category comes first (beauty and personal care proceed; a grocery record is referred to a2a-grocery.ai; peptides to a2a-peptides.ai; beer, wine and spirits are refused; an unresolved GTIN is refused). An accepted claim answers a challenge for the card's domain (a DNS TXT record or a well-known file); call again with the challenge_id once it is published: a pass moves the brand's rows from listed to claimed and answers the seat key. With the seat key, rows sets the seat's own price, availability, markets and claims, its own GTINs only. Every claim, accepted or refused, is logged. Verified is a person's step, never a tool's.

輸入參數rowsgtinscard_url必填seat_keychallenge_id

search_catalog

Search Catalog

Universal Commerce Protocol (UCP) catalogue search, version 2026-08-25 (dev.ucp.shopping.catalog.search). arguments: meta {'ucp-agent': {profile}} (required) and catalog {query, context {address_country}, filters {categories, price {min, max} in minor units}, pagination {limit, cursor}}. Serves the priced subset: rows whose maker's list price is on the record (claimed seats with a listed price), keyed by GTIN, each with its claim_status. Every other row stays on search_cleared_items.

輸入參數metacatalog

lookup_catalog

Lookup Catalog

Universal Commerce Protocol (UCP) catalogue lookup, version 2026-08-25 (dev.ucp.shopping.catalog.lookup). arguments: meta {'ucp-agent': {profile}} (required) and catalog {ids: product ids (GTIN) or variant ids (<market>:<gtin14>), up to 50; context; filters}. Found rows come back as products with their claim_status; an id outside the priced subset answers an info not_found message.

輸入參數metacatalog

get_product

Get Product

Universal Commerce Protocol (UCP) product detail, version 2026-08-25 (dev.ucp.shopping.catalog.lookup). arguments: meta {'ucp-agent': {profile}} (required) and catalog {id: a GTIN or a variant id <market>:<gtin14>; context; filters}. One product of the priced subset with its variants per market, list price and claim_status; outside the subset, ucp.status error and not_found.

輸入參數metacatalog

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.

輸入參數market必填product_type

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).

輸入參數kind必填notereference_id必填

版本歷史

4
  1. v1.0.3最新Nov 5, 2026
  2. v1.0.2Nov 4, 2026
  3. v1.0.1Sep 21, 2026
  4. v1.0.0Sep 21, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分