Skip to main content
Glama
ziyuant222

Crystal Suppliers MCP

by ziyuant222
README.md
# Crystal Suppliers MCP

Crystal Suppliers MCP is a read-only procurement server for [KT Crystals](https://ktcrystals.com). It searches a verified catalog of 104 crystal bracelet SKUs and provides traceable sourcing checklists for loose beads, crystal accessories, and raw crystal materials.

The service does not invent price, MOQ, inventory, lead time, treatment, origin, certification, or shipping claims. Commercial fields remain `requires_manual_confirmation`.

## Install and connect

Run directly from the repository:

```json
{
  "mcpServers": {
    "crystal-suppliers": {
      "command": "node",
      "args": ["/absolute/path/to/crystal-suppliers-mcp/src/index.mjs"]
    }
  }
}
```

Run the OCI image over stdio:

```json
{
  "mcpServers": {
    "crystal-suppliers": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/ziyuant222/crystal-suppliers-mcp:0.1.0"
      ]
    }
  }
}
```

Start Streamable HTTP:

```bash
docker run --rm -p 3000:3000 \
  ghcr.io/ziyuant222/crystal-suppliers-mcp:0.1.0 --http
```

The endpoint is then `http://localhost:3000/mcp`, with health status at `http://localhost:3000/health`.

## Tools

| Tool | Purpose |
| --- | --- |
| `crystal_search_products` | Search real bracelet SKUs by SKU, name, material, or theme. |
| `crystal_get_product` | Retrieve one verified bracelet and related catalog products. |
| `crystal_list_materials` | List normalized materials and verified bracelet SKU counts. |
| `crystal_get_sourcing_guidance` | Get supplier-verification checks for bracelets, beads, accessories, or raw materials. |
| `crystal_build_procurement_shortlist` | Keep verified bracelet results separate from adjacent advisory categories. |
| `crystal_prepare_inquiry` | Validate supplied SKUs and draft an inquiry without sending or storing it. |

## Coverage contract

- `verified_catalog`: grounded in the current 104-SKU bracelet catalog.
- `advisory_only`: sourcing guidance only; no verified SKU coverage for the requested category.
- `mixed`: verified bracelet candidates plus separately labeled advisory categories.

Inquiry drafting is local and stateless. It does not send email, submit a form, write to a database, or retain buyer details.

## Development

```bash
npm ci
npm test
npm run start:http
```

The server supports Node.js 22 or newer and implements MCP over both stdio and stateless Streamable HTTP.

<!-- mcp-name: io.github.ziyuant222/crystal-suppliers-mcp -->

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a distinct purpose: search, single product retrieval, materials listing, sourcing guidance, shortlist building, and inquiry preparation. No overlap in functionality.

Naming Consistency5/5

All tools follow the 'crystal_verb_noun' pattern consistently, e.g., crystal_search_products, crystal_get_product, crystal_list_materials. The naming is clear and predictable.

Tool Count5/5

With 6 tools covering search, detail, materials, guidance, shortlist, and inquiry, the count is appropriate for the domain of crystal supply procurement without being excessive or insufficient.

Completeness4/5

The tool set covers the key workflows for bracelet procurement: search, details, materials, sourcing guidance, shortlist, and inquiry. Minor gaps exist for real-time inventory or order placement, but these are outside the stated advisory scope.

Maintenance

ActivityStale
ResponsivenessNo issues