Skip to main content
Glama
jsspace

Bead Colors MCP

by jsspace
README.md
# Bead Colors MCP

A local MCP server for fuse bead color charts and approximate screen-color matching. It uses [`@meltbead/bead-colors`](https://github.com/jsspace/bead-colors) as its only palette data source. No account or network request is needed after installation.

## Requirements

Node.js 20 or newer.

## Run locally

```sh
npm install
npm start
```

The server uses stdio: an MCP client launches it and communicates through stdin/stdout. Starting it in a terminal will appear idle until a client connects. For a local client configuration, use an absolute path:

```json
{
  "mcpServers": {
    "bead-colors": {
      "command": "node",
      "args": ["/absolute/path/to/bead-colors-mcp/src/index.js"]
    }
  }
}
```

After publishing the npm package, clients can use `npx -y @meltbead/bead-colors-mcp` instead.

## Tools

| Tool | Purpose |
| --- | --- |
| `list_palettes` | List palette IDs, brands, sizes, counts, and sources. |
| `get_color` | Find a color by palette ID and code. |
| `search_colors` | Search codes, names, HEX, brand, or series; results are limited. |
| `nearest_colors` | Find the closest screen RGB references in one palette. |
| `match_across_palettes` | Find one approximate match in each requested palette. |

By default, search and cross-palette matching use one representative palette per brand or series. Subset palettes remain accessible by ID. Matching excludes effect finishes unless `includeEffects` is true. Transparent entries without one RGB value cannot be matched. Distances are ordinary Euclidean RGB distances, not measurements of actual beads.

Every color result includes a reminder to verify important shades against physical beads and printed product codes. Palette source URLs and notes come from the data package.

## Develop

```sh
npm test
npm run smoke
```

`smoke` starts the service through a real MCP stdio client, lists its tools, and calls them.

## License and data sources

The server code is MIT licensed. Palette data comes from `@meltbead/bead-colors`; see that package's [source and third-party notices](https://github.com/jsspace/bead-colors/blob/master/THIRD_PARTY_NOTICES.md) for attribution and data limitations. Brand names belong to their owners.

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

The tools mostly have clear, distinct purposes: list palettes, exact color lookup, search, nearest match within a palette, and match across palettes. There is some potential overlap because search_colors accepts HEX values while nearest_colors performs approximate RGB matching, but the descriptions help distinguish exact/catalog search from approximate matching.

Naming Consistency4/5

All names use consistent snake_case and are easy to read. Most follow a verb_noun pattern, though nearest_colors is adjective_noun rather than verb-led, and match_across_palettes adds a prepositional structure.

Tool Count5/5

Five tools is well-scoped for a read-only bead color reference server. Each tool covers a distinct mode of access without obvious bloat or redundancy.

Completeness4/5

The surface covers palette discovery, exact color lookup, search, nearest matching within a palette, and cross-palette matching. A dedicated way to list all colors in a specific palette is not explicitly exposed, which is a minor gap but not a major blocker.

Maintenance

ActivityMaintained
ResponsivenessNo issues