ir. cbest/ lighting
by cbest.ir · remote · no sign-in to list tools · v1.0.0 · published by ir.cbest
Iranian lighting supplier directory: products, brands, and a bilingual Persian/English taxonomy.
8 tools: 2 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http lighting https://www.cbest.ir/lighting/api/mcpFindings
Matches of fixed checks, with the text they matched.
The description contains 1 hidden character: zero-width (U+200C).
What this check looks forMatched text
description: "...rase onto the canonical taxonomy — «داون<U+200C>لایت توکار», 'trimless plaster frame', '..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
8 tools
Changes things 2Claude Code: ask
classify_lighting_termMap any Persian or English lighting phrase onto the canonical taxonomy — «داون[U+200C]لایت توکار», 'trimless plaster frame', 'high bay'.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- High
The description contains 1 hidden character: zero-width (U+200C).
What this check looks forMatched text
description: "...rase onto the canonical taxonomy — «داون<U+200C>لایت توکار», 'trimless plaster frame', '..."
Description, as the server wrote itContains invisible characters, shown as [U+…] Map any Persian or English lighting phrase onto the canonical taxonomy — «داون[U+200C]لایت توکار», 'trimless plaster frame', 'high bay'. Backed by 522 learned type→category pairs plus rules measured at 95% agreement. Returns null for a phrase that names no category rather than guessing.
start_consultationTurn a described need into a link the person opens themselves, where an adviser builds a brief and matches it against suppliers' real stock.No findings
Why it is in this group
- The name "start_consultation" says "start": a word for a change.
Description, as the server wrote it Turn a described need into a link the person opens themselves, where an adviser builds a brief and matches it against suppliers' real stock. This is how someone actually reaches a supplier: there are no contact details in this server, and this call does not contact anyone. It stores nothing and it REFUSES any personal data — no name, no number, no email. Describe the project, not the person.
Only reads 6Claude Code: allow
compare_brandsWhich suppliers cover a category, with counts, share, and per-facet data coverage.No findings
Why it is in this group
- The name "compare_brands" says "compare": a word for reading.
Description, as the server wrote it Which suppliers cover a category, with counts, share, and per-facet data coverage. Coverage describes what each supplier's SOURCE stated, never product quality, and a one-supplier category says so rather than pretending to be a comparison.
get_brandOne supplier in full: what they make, the product families they run, and — the field worth the call — doesNotDo, a statement of what they genuinely do NOT make, computed from absen…No findings
Why it is in this group
- The name "get_brand" says "get": a word for reading.
Description, as the server wrote it One supplier in full: what they make, the product families they run, and — the field worth the call — doesNotDo, a statement of what they genuinely do NOT make, computed from absence in their product list rather than inferred from their marketing.
get_productEvery field on file for one product, by the id search_products returns ('brand/product-slug'), including provenance: whether the fact came from the supplier's own website or from a…No findings
Why it is in this group
- The name "get_product" says "get": a word for reading.
Description, as the server wrote it Every field on file for one product, by the id search_products returns ('brand/product-slug'), including provenance: whether the fact came from the supplier's own website or from a page of their PDF catalog, and when it was read.
list_brandsEvery supplier on file with what they cover, how complete their data is, and when it was last read.No findings
Why it is in this group
- The name "list_brands" says "list": a word for reading.
Description, as the server wrote it Every supplier on file with what they cover, how complete their data is, and when it was last read. No contact details — see the server instructions.
list_categoriesThe 20 canonical categories with Persian and English names, product counts, and which suppliers are in each.No findings
Why it is in this group
- The name "list_categories" says "list": a word for reading.
Description, as the server wrote it The 20 canonical categories with Persian and English names, product counts, and which suppliers are in each. Small enough to fetch once and reason over the whole market; flags categories that only one supplier covers.
search_productsSearch the catalog of real products stocked by the suppliers on file.No findings
Why it is in this group
- The name "search_products" says "search": a word for reading.
Description, as the server wrote it Search the catalog of real products stocked by the suppliers on file. Accepts Persian or English. Returns normalized facets (mounting, indoor/outdoor, IP, colour temperature, and wattage/lumen where stated) plus what the query matched on. Colour temperature is returned but is NOT filterable: a fixture is usually sold in several, and the row carries the one its source printed. The response always reports what the filters excluded and why, split into 'not stated in our data' and 'did not match' — a product missing from a result is NEVER evidence that a supplier does not make it; use get_brand's doesNotDo for that.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http lighting https://www.cbest.ir/lighting/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__lighting__search_products",
"mcp__lighting__get_product",
"mcp__lighting__list_categories",
"mcp__lighting__list_brands",
"mcp__lighting__get_brand",
"mcp__lighting__compare_brands"
],
"ask": [
"mcp__lighting__classify_lighting_term",
"mcp__lighting__start_consultation"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lighting. Review it before you use it.