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.
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.
Tool Definition Quality
Average 4.7/5 across 4 of 4 tools scored.
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.
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.
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.
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 toolscheck_prop65Is this chemical on the Proposition 65 listARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A CAS number such as 71-43-2, or a chemical name such as Benzene. |
Output Schema
| Name | Required | Description |
|---|---|---|
| listed | No | Whether an active (not delisted) entry exists. Present when status is `ok`. |
| status | Yes | Outcome 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. |
| edition | No | The edition of the list this answer came from. |
| entries | No | Each matching entry, including delisted ones, with its endpoint and safe-harbour level. |
| candidates | No | Possible chemicals, when the name matched several entries. |
| notCovered | No | What this answer does not establish. Present on both hits and misses. |
| delistedOnly | No | True when every matching entry was listed and later removed. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 coversARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | Entries in the embedded list, including delisted ones. |
| active | No | Entries currently listed. |
| status | Yes | Always ok. |
| edition | No | Edition date of the OEHHA list. |
| withCas | No | Entries carrying at least one CAS number. |
| delisted | No | Entries listed and later removed. |
| mechanisms | No | Listing-mechanism codes and their meanings. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 yearARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | Four-digit year, from 1986 onwards. Prop 65 listings begin in 1987. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | How many active chemicals were listed on or after that year. |
| status | Yes | Outcome 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. |
| edition | No | The edition of the list this answer came from. |
| results | No | The chemicals, newest first. |
| undatedEntries | No | Active entries with no parseable listing date, absent from this answer. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 nameARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | A fragment of a chemical name, such as 'benz' or 'chromium'. | |
| limit | No | Maximum results to return. Defaults to 25. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | How many entries matched in total. |
| status | Yes | Outcome 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. |
| edition | No | The edition of the list this answer came from. |
| results | No | The matching chemicals. |
| truncated | No | Whether more matched than were returned. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceProvides 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
- Alicense-qualityCmaintenanceEnables 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
- Alicense-qualityDmaintenanceEnables checking cosmetic ingredient safety and multi-jurisdiction compliance across 12 regulatory bodies, backed by a comprehensive dataset of safety opinions and studies.MIT
- Alicense-qualityCmaintenanceChemical 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