Research China-origin botanicals, supplier evidence gaps, sourcing briefs and ingredient costs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Generate an RFQ draft for a catalog ingredient. Returns text only: does not store personal data, submit an inquiry, contact a supplier or place an order. Review the draft before using the website inquiry form.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http cleaningredients https://cleaningredients.co/api/mcp
Generate an RFQ draft for a catalog ingredient. Returns text only: does not store personal data, submit an inquiry, contact a supplier or place an order. Review the draft before using the website inquiry form.
| Argument | Type | Description |
|---|---|---|
| grade | string | |
| notes | string | |
| quantity | string | |
| application | string | |
| destination | string | |
| ingredientSlug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ingredientSlug"
],
"properties": {
"grade": {
"type": "string",
"default": "",
"maxLength": 2000
},
"notes": {
"type": "string",
"default": "",
"maxLength": 2000
},
"quantity": {
"type": "string",
"default": "",
"maxLength": 2000
},
"application": {
"type": "string",
"default": "",
"maxLength": 2000
},
"destination": {
"type": "string",
"default": "",
"maxLength": 2000
},
"ingredientSlug": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}Compare assay-based ingredient costs. Price is per kg; assay is percent (0 < assay <= 100); targetActiveMg is desired active mass per serving. This is formulation arithmetic, not dosage advice.
| Argument | Type | Description |
|---|---|---|
| currency | string | |
| pricePerKg* | number | |
| assayPercent* | number | |
| targetActiveMg* | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pricePerKg",
"assayPercent",
"targetActiveMg"
],
"properties": {
"currency": {
"type": "string",
"default": "USD",
"pattern": "^[A-Z]{3}$"
},
"pricePerKg": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0
},
"assayPercent": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
},
"targetActiveMg": {
"type": "number",
"maximum": 1000000000,
"exclusiveMinimum": 0
}
}
}Estimate total and per-kg cost from buyer-provided inputs. All amounts must be in one currency. Duty is a total monetary amount, not a percentage. No live freight, duty or supplier quotes are fetched.
| Argument | Type | Description |
|---|---|---|
| other | number | |
| freight | number | |
| testing | number | |
| currency | string | |
| dutyAmount | number | |
| pricePerKg* | number | |
| quantityKg* | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"quantityKg",
"pricePerKg"
],
"properties": {
"other": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0
},
"freight": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0
},
"testing": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0
},
"currency": {
"type": "string",
"default": "USD",
"pattern": "^[A-Z]{3}$"
},
"dutyAmount": {
"type": "number",
"default": 0,
"maximum": 1000000000000,
"minimum": 0
},
"pricePerKg": {
"type": "number",
"maximum": 1000000000000,
"minimum": 0
},
"quantityKg": {
"type": "number",
"maximum": 1000000000,
"exclusiveMinimum": 0
}
}
}Read current coverage counts for the core ingredients, including confirmed offerings and source reviews. These are directory counts, not market-wide statistics.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Get a botanical ingredient's grades, species, buying considerations and published source reviews. Use the slug from search_ingredients. Includes actual offering counts; does not imply availability.
| Argument | Type | Description |
|---|---|---|
| slug* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}Search CleanIngredients ingredient names, summaries and species notes. Includes core and later-stage research; returns status, source links and review dates. Empty query lists ingredients.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | |
| offset | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 200
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0
}
}
}Search company-published botanical supplier research. Every result is an unconfirmed research lead with a source URL and outstanding evidence checks. No stock, price, sample or quote availability is implied.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | |
| offset | integer | |
| ingredient | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"default": "",
"maxLength": 200
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0
},
"ingredient": {
"type": "string",
"maxLength": 100
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 15, 2026.