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.
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
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
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
claude mcp add --transport http rootsbymenda-cosmetic-regulatory https://roots-mcp-server.rootsbybenda.workers.dev/sse
[mcp_servers.rootsbymenda-cosmetic-regulatory] url = "https://roots-mcp-server.rootsbybenda.workers.dev/sse"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"rootsbymenda-cosmetic-regulatory": {
"type": "remote",
"url": "https://roots-mcp-server.rootsbybenda.workers.dev/sse",
"enabled": true
}
}
} openclaw mcp add rootsbymenda-cosmetic-regulatory --url https://roots-mcp-server.rootsbybenda.workers.dev/sse --transport streamable-http
mcp_servers:
rootsbymenda-cosmetic-regulatory:
url: "https://roots-mcp-server.rootsbybenda.workers.dev/sse" {
"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.
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.
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 |
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.
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.
| Name | Type | Req | Description |
|---|---|---|---|
| body_weight | number | — | Consumer 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… |
| concentration | number | yes | Ingredient 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_absorption | number | — | Dermal 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… |
| ingredient | string | yes | Cosmetic 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_type | string | yes | Cosmetic 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).
| Name | Type | Req | Description |
|---|---|---|---|
| ingredients | string | yes | Comma-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… |
| jurisdiction | string | — | Optional 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.
| Name | Type | Req | Description |
|---|---|---|---|
| jurisdiction | string | — | Optional 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… |
| query | string | yes | Common 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).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | — | Maximum 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. |
| query | string | yes | Cosmetic 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.