Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.rootsbymenda/cosmetic-regulatory

REMOTE · ROOTS-MCP-SERVER.ROOTSBYBENDA.WORKERS.DEV · 2 COMPONENTS · SCANNED AUG 3

Cosmetic safety: NOAEL, MoS, SCCS, 12 jurisdictions. 30K ingredients. Free.

+2 this week 60 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security63
Transport & Reachability40
Schema Quality & AI Usability61
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1620 tokens (~405/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · roots-mcp-server.rootsbybenda.workers.dev

# add to Claude Code
claude mcp add --transport http rootsbymenda-cosmetic-regulatory https://roots-mcp-server.rootsbybenda.workers.dev/sse
# ~/.codex/config.toml
[mcp_servers.rootsbymenda-cosmetic-regulatory]
url = "https://roots-mcp-server.rootsbybenda.workers.dev/sse"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "rootsbymenda-cosmetic-regulatory": {
      "type": "remote",
      "url": "https://roots-mcp-server.rootsbybenda.workers.dev/sse",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add rootsbymenda-cosmetic-regulatory --url https://roots-mcp-server.rootsbybenda.workers.dev/sse --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  rootsbymenda-cosmetic-regulatory:
    url: "https://roots-mcp-server.rootsbybenda.workers.dev/sse"
// mcp.json
{
  "mcpServers": {
    "rootsbymenda-cosmetic-regulatory": {
      "type": "http",
      "url": "https://roots-mcp-server.rootsbybenda.workers.dev/sse"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 57

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://roots-mcp-server.rootsbybenda.workers.dev/sse

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=rootsbybenda.workers.dev CN=WE1,O=Google Trust Services,C=US 1 Aug 2026 30 Oct 2026 ECDSA 256 ECDSA-SHA256 a19ebb28df33c3640efc0c208730db7e
SANs: rootsbybenda.workers.dev, *.rootsbybenda.workers.dev
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of roots-mcp-server.rootsbybenda.workers.dev. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
dev. present 60074 8 Verified
workers.dev. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 404
Transports 2 probes
Transport URL Outcome Status Location
sse https://roots-mcp-server.rootsbybenda.workers.dev/sse Verified 200
http (plaintext) http://roots-mcp-server.rootsbybenda.workers.dev/sse Served over HTTP 200
MCP tools — 4 exposed · ~1,620 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
calculate_mos ~508

Calculate Margin of Safety for a cosmetic ingredient at a specific concentration following SCCS Notes of Guidance methodology. Input: ingredient name/INCI/CAS, concentration percentage, product type (e.g. 'body lotion', 'shampoo', 'lipstick'), optional body weight and dermal absorption override. Returns: NOAEL value with study source (species, route, duration), SCCS exposure parameters (daily exposure, retention factor), Systemic Exposure Dose (SED) calculation, Margin of Safety value, pass/fail assessment against MoS>100 threshold, and recommended maximum concentration if MoS fails. Sources: SCCS Notes of Guidance (11th Revision, SCCS/1628/21), NOAEL studies from ECHA/ToxValDB, SCCS exposure parameter tables. Database: 174,973 NOAEL studies searched for best available value. Use for cosmetic ingredient exposure assessment and safety calculations. Do not use for regulatory lookup alone (use check_ingredient), formula screening (use check_formula), or food/pharmaceutical exposure calculations.

NameTypeReqDescription
body_weightnumberConsumer body weight in kilograms for systemic exposure calculations (default: 60 for adults). Override when assessing children, low-body-weight consumers, or a scenario with a defined SCCS body-weig…
concentrationnumberyesIngredient concentration in the finished cosmetic product as percent weight/weight (e.g. 0.5 for 0.5%). Use the maximum intended use concentration for conservative SCCS-style Margin of Safety assessm…
dermal_absorptionnumberDermal absorption percentage override from ingredient-specific toxicology or SCCS evidence. If not provided, the calculator uses the built-in default assumption and reports the absorption basis in th…
ingredientstringyesCosmetic ingredient common name, INCI name, or CAS number for the MoS calculation (e.g. 'retinol', 'RETINOL', '68-26-8'). Use the exact INCI when available so NOAEL and dermal absorption evidence map…
product_typestringyesCosmetic product type that determines exposure assumptions (e.g. 'body lotion', 'shampoo', 'lipstick', 'face cream', 'hand cream', 'shower gel', 'toothpaste', 'mouthwash', 'hair styling', 'deodorant'…

No output schema declared.

No examples provided.

check_formula ~416

Scan a cosmetic product INCI ingredient list for regulatory compliance and safety flags across multiple jurisdictions. Input: comma-separated INCI declaration as printed on a cosmetic product label (up to 50 ingredients). Returns per-ingredient: matched INCI name, CAS number, safety rating, EU and US regulatory status, concern level, regulatory flags, NOAEL values, and jurisdiction-specific restrictions including max concentration limits, product-type restrictions, and regulation references. Returns overall: LOW/MODERATE/HIGH formula risk assessment, flagged ingredient count with reasons, and jurisdiction-level compliance summary. Sources: EU Regulation 1223/2009, US FDA, Korea MFDS, Japan MHLW, ASEAN, Saudi SFDA, Canada Hotlist, Australia SUSMP, China IECIC. Database: 30,553 cosmetic ingredients across 55+ jurisdictions. Use for cosmetic formula safety screening and CPSR-style triage. Do not use for single ingredient lookup (use check_ingredient) or custom MoS calculations (use calculate_mos).

NameTypeReqDescription
ingredientsstringyesComma-separated or newline-separated cosmetic INCI declaration exactly as it appears on a product label (e.g. 'Aqua, Retinol, Cetearyl Alcohol, Titanium Dioxide, Phenoxyethanol'). Max 50 ingredients…
jurisdictionstringOptional target cosmetic jurisdiction for compliance focus. Supported codes: 'EU' (Regulation 1223/2009), 'US' / 'US_FDA', 'Korea_MFDS', 'Japan_MHLW', 'ASEAN', 'Saudi_SFDA', 'Canada_Hotlist', 'Austra…

No output schema declared.

No examples provided.

check_ingredient ~432

Retrieve cosmetic ingredient safety data for regulatory compliance and safety assessment. Input: common name, INCI name, or CAS number (e.g. 'retinol', 'RETINOL', '68-26-8'). Returns: NOAEL study values with species/route/duration, pre-calculated Margin of Safety from SCCS opinions, GHS hazard classifications, EU/US/Korea/Japan/ASEAN/Saudi/Canada/Australia regulatory status across 12 jurisdictions, SCCS opinion summaries, CIR safety conclusions, dermal absorption profiles, sensitization data with patch-test frequencies, endocrine disruption flags, SVHC status, IFRA fragrance restrictions, China IECIC listing, and EU allergen classifications. Sources include ECHA IUCLID dossiers, SCCS opinions, CIR safety assessments, FDA, ToxValDB, and EPA CompTox. Database: 30,553 cosmetic ingredients, 174,973 NOAEL studies, 8,898 sensitization assays, 5,267 CIR safety conclusions, and 1,583 SCCS opinions. Use for cosmetic ingredient safety assessment. Do not use for full formula scans (use check_formula), MoS calculations with custom concentration (use calculate_mos), food additive questions, or pharmaceutical actives.

NameTypeReqDescription
jurisdictionstringOptional cosmetic regulatory market code for focused restriction checks. Legacy codes accepted: 'EU', 'US', 'CN', 'CA', 'KR', 'JP', 'BR', 'ASEAN', 'GCC', 'AU', 'IN', 'UK'. If omitted, the response st…
querystringyesCommon cosmetic ingredient name (e.g. 'Retinol'), INCI name (International Nomenclature of Cosmetic Ingredients, the standardized label name used for cosmetics, e.g. 'RETINOL'), or CAS number (Chemic…

No output schema declared.

No examples provided.

search_ingredients ~264

Search cosmetic ingredient records by partial name, function, category, or safety concept for ingredient discovery and selection. Input: keyword matching partial INCI name, function, or category (e.g. 'sunscreen', 'preservative', 'retinoid', 'fragrance allergen', 'humectant'). Returns: matching cosmetic ingredient names, INCI names, CAS numbers, functions/categories, safety ratings, EU regulatory status, concern levels, and NOAEL availability. Database: 30,553 cosmetic ingredients with safety profiles. Use for cosmetic ingredient discovery before checking a specific ingredient. Do not use when the user has an exact INCI/CAS and needs full safety data (use check_ingredient).

NameTypeReqDescription
limitnumberMaximum number of cosmetic ingredient matches to return (1-20, default 10). Use higher limits for broad category discovery and lower limits for exact INCI/name searches.
querystringyesCosmetic ingredient discovery keyword matching partial INCI/name, function, category, or ingredient family. Examples: 'sunscreen' for UV filters, 'preservative' for parabens and phenoxyethanol, 'reti…

No output schema declared.

No examples provided.