Skip to main content
Glama

Proposition 65

Server Details

Is a chemical on California's Proposition 65 list, and does it need a warning?

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
toolstop/toolstop
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.7/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: exact lookup by CAS/name, list metadata, recent listings by year, and fragment search. There is no overlap in functionality, so an agent can reliably select the right tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: check_prop65, describe_prop65_list, list_recent_listings, search_prop65. The pattern is predictable and uniform across the set.

Tool Count5/5

Four tools is well-scoped for a focused Proposition 65 lookup server. Each tool serves a distinct need without redundancy or bloat, and the count is appropriate for the domain.

Completeness5/5

The server covers the core operations for the Prop 65 list: exact lookup, search, recent additions, and list metadata. These cover the main compliance and research workflows, with no obvious missing operations that would cause agent failures.

Available Tools

4 tools
check_prop65Is this chemical on the Proposition 65 listA
Read-only
Inspect

Look up a chemical by CAS number or name and report whether it is on California's Proposition 65 list. Use this when deciding whether a product sold into California needs a warning label. Returns every matching entry with the toxicity endpoint, the listing mechanism, the date listed and the safe-harbour level where one has been adopted, plus whether the entry has since been delisted. A not_found result does not mean the chemical is safe or unregulated: it means this edition of this one list has no entry under that name or number.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA CAS number such as 71-43-2, or a chemical name such as Benzene.

Output Schema

ParametersJSON Schema
NameRequiredDescription
listedNoWhether an active (not delisted) entry exists. Present when status is `ok`.
statusYesOutcome of the lookup. `not_found` is not a clearance. `ambiguous` means the name matched several entries and you should pick one or use a CAS number.
editionNoThe edition of the list this answer came from.
entriesNoEach matching entry, including delisted ones, with its endpoint and safe-harbour level.
candidatesNoPossible chemicals, when the name matched several entries.
notCoveredNoWhat this answer does not establish. Present on both hits and misses.
delistedOnlyNoTrue when every matching entry was listed and later removed.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, and the description adds substantial behavioral detail: it returns every matching entry with specific fields (toxicity endpoint, mechanism, date listed, safe-harbour level, delisted status) and clarifies the meaning of not_found. This goes far beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the purpose, and every sentence carries necessary information. The important caveat about not_found is included without any waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even with an output schema present, the description thoroughly explains return-value semantics, including the list of fields, delisted entries, and the scope limitation ('this edition of this one list'). It covers all necessary context for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single query parameter with examples ('A CAS number such as 71-43-2, or a chemical name such as Benzene'). The description repeats this but does not add new meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'look up' and clearly identifies the resource: a chemical on California's Proposition 65 list. It distinguishes itself from sibling tools like search_prop65 by focusing on a targeted lookup/report for a single chemical and enumerating the output fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the intended use: 'Use this when deciding whether a product sold into California needs a warning label.' This provides clear context, but it does not mention when not to use it or mention alternative tools, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_prop65_listWhat this list is and what it coversA
Read-only
Inspect

Report the size and edition of the embedded Proposition 65 list, and what the listing-mechanism codes mean. Use this to check how current the data is before relying on a lookup, or to interpret the AB, SQE, FR and LC codes on an entry. Returns counts of total, active and delisted entries, how many carry a CAS number, and the edition date. It reports on the data only and cannot tell you whether any product requires a warning.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoEntries in the embedded list, including delisted ones.
activeNoEntries currently listed.
statusYesAlways ok.
editionNoEdition date of the OEHHA list.
withCasNoEntries carrying at least one CAS number.
delistedNoEntries listed and later removed.
mechanismsNoListing-mechanism codes and their meanings.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavioral traits beyond the provided annotations: it specifies that it 'reports on the data only and cannot tell you whether any product requires a warning,' and it details the return contents ('counts of total, active and delisted entries...'). This adds context about limitations and scope that readOnlyHint and openWorldHint do not fully capture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: purpose, usage, and output/limitations. It is front-loaded with the main action and uses no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter metadata tool with an output schema, the description is complete. It covers what the tool does, when to use it, what it returns, and its limitations. The sibling context is also clear from the description's differentiation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters, and baseline for 0 params is 4. The description does not need to explain parameters. It focuses on behavior and output, which is sufficient and appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Report the size and edition of the embedded Proposition 65 list, and what the listing-mechanism codes mean.' This is a specific verb and resource, and it distinguishes the tool from siblings like check_prop65 or search_prop65 which focus on individual entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit use cases: 'Use this to check how current the data is before relying on a lookup, or to interpret the `AB`, `SQE`, `FR` and `LC` codes on an entry.' It also provides a when-not-to-use boundary: 'cannot tell you whether any product requires a warning.' However, it does not explicitly name alternative sibling tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_listingsChemicals added to the list since a yearA
Read-only
Inspect

List the chemicals added to Proposition 65 on or after a given year. Use this to find recent additions, which matters because a warning is generally required twelve months after a chemical is listed, so a new entry starts a compliance clock. Returns active listings only, newest first, with their dates, and reports how many entries carry no parseable date and are therefore missing from the answer. It does not tell you whether any particular product is affected.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceYesFour-digit year, from 1986 onwards. Prop 65 listings begin in 1987.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoHow many active chemicals were listed on or after that year.
statusYesOutcome of the lookup. `not_found` is not a clearance. `ambiguous` means the name matched several entries and you should pick one or use a CAS number.
editionNoThe edition of the list this answer came from.
resultsNoThe chemicals, newest first.
undatedEntriesNoActive entries with no parseable listing date, absent from this answer.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even with readOnlyHint=true, the description adds valuable behavioral details: returns active listings only, orders newest first, includes dates, and reports how many entries lack parseable dates and are excluded. This goes well beyond annotations and gives a clear picture of edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action, and each sentence serves a distinct purpose: usage, rationale, output behavior, and a limitation. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple single-parameter schema, rich annotations, and presence of an output schema, the description covers usage context, output specifics, and caveats (missing dates, product-inapplicability). It is fully sufficient for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for the 'since' parameter, including type, range, and context. The description only paraphrases 'on or after a given year' without adding new parameter-level semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists chemicals added to Proposition 65 on or after a given year, with a specific verb+resource+scope. It distinguishes itself by emphasizing 'recent additions' and 'active listings only,' which separates it from sibling tools like search_prop65.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this for finding recent additions and explains the compliance-clock relevance. It notes what it does not do ('does not tell you whether any particular product is affected'), though it doesn't name an alternative tool for product-specific queries, so it falls slightly short of full alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_prop65Find listed chemicals by partial nameA
Read-only
Inspect

Search the Proposition 65 list for chemicals whose name contains a fragment. Use this when you do not have an exact name or a CAS number, or to survey a family of related substances. Returns matching chemicals with their CAS numbers, toxicity endpoints, listing dates and delisted flags, capped at a limit with truncated set when there were more. It searches names only, so it will not find a chemical listed under a synonym you did not search for, and a result here is not a determination that a warning is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesA fragment of a chemical name, such as 'benz' or 'chromium'.
limitNoMaximum results to return. Defaults to 25.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoHow many entries matched in total.
statusYesOutcome of the lookup. `not_found` is not a clearance. `ambiguous` means the name matched several entries and you should pick one or use a CAS number.
editionNoThe edition of the list this answer came from.
resultsNoThe matching chemicals.
truncatedNoWhether more matched than were returned.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint by disclosing the name-only search behavior, the synonym limitation, the `truncated` flag behavior, and the returned fields (CAS, toxicity endpoints, listing dates, delisted flags). It even notes that a result is not a determination that a warning is required. This is rich behavioral context with no contradiction to annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action, then usage context, then limitations and return behavior. Every sentence adds value without redundancy, making it appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter search tool with an output schema and strong annotations, the description covers use cases, constraints, and result interpretation. It mentions the truncated flag and the non-determinative nature of the result, which is essential for agents to set expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters with descriptions (term as a fragment, limit as max results), so baseline is 3. However, the description adds the important behavioral detail that results are capped and `truncated` is set when there are more matches, which clarifies the effect of the limit parameter beyond the schema's wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Search the Proposition 65 list for chemicals whose name contains a fragment.' It clearly distinguishes from siblings like check_prop65 (exact lookup) and list_recent_listings by emphasizing partial-name matching and family surveys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use this when you do not have an exact name or a CAS number, or to survey a family of related substances.' It also gives a clear exclusion: the tool searches names only and will miss synonyms, implying that other tools are better for exact or synonym-based queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Provides chemical hazard data from ECHA, NIOSH, GHS, and ICSC, enabling lookups of SVHC status, occupational exposure limits, GHS classifications, and cross-references to cosmetic and food additive databases.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Enables checking food additive safety, nutrition profiles, pesticide residues, and ingredient lists with regulatory flags and dietary compatibility. All data is sourced from authoritative bodies like JECFA, EFSA, and FDA.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Chemical safety intelligence for AI-assisted experiment design. 18 MCP tools for compatibility checks, hazard analysis, PPE, storage, waste disposal, mixing order, exposure limits, transport classification, regulatory compliance (8 jurisdictions), and signed audit reports. Supports 4,200+ chemicals in 5 languages.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.