← Discover MCPs and Agents
c
MCPDeveloper toolsMCP Registry

com.fitiny/moissanite-tools

FITINY jewellery tools: density-corrected carat/mm, GIA grades, ISO 8653 ring sizes

Links

README

From the repo.

moissanite-tools

smithery badge

Moissanite grading and size chart

Grading reference and carat↔millimetre conversion for moissanite — calculated, not copied.

Why this exists

Practically every carat/mm chart on the web is calculated for diamond. Moissanite has a different density (3.21 vs 3.52 g/cm³), so applying a diamond chart to moissanite is wrong by roughly 9%:

DiameterDiamondMoissaniteCubic zirconia
4.0 mm0.24 ct0.22 ct0.39 ct
5.0 mm0.47 ct0.43 ct0.76 ct
6.5 mm1.03 ct0.94 ct1.66 ct
8.0 mm1.91 ct1.74 ct3.09 ct

This is why moissanite is usually sold by millimetre rather than by carat — the same "1 carat" looks like a different size depending on the stone.

What's in here

data/grading.json    GIA colour (D–K) and clarity (FL–SI) scales, plus published
                     optical constants for moissanite / diamond / cubic zirconia
data/sizing.json     ISO 8653 ring sizes (US/UK/EU/mm), necklace lengths, stud sizes
src/conversion.js    carat ↔ mm for round brilliant cut, density-corrected
src/sizing.js        ring size conversion, necklace length and stud appearance lookups
mcp/server.js        Model Context Protocol server exposing all of the above

Ring sizes

Cross-border ring buying goes wrong because the systems are unrelated: a US 6 is a UK M, not a UK 6. EU sizes under ISO 8653 are simply the inner circumference in millimetres.

USUKEUInner Ø
5J49.315.7 mm
6M51.916.5 mm
7O54.417.3 mm
8Q57.018.1 mm
959.518.9 mm

Sizes that aren't on the chart return the nearest listed size flagged exact: false, rather than inventing a value.

Usage

import { caratFromMm, mmFromCarat, compareAtWeight } from './src/conversion.js';

mmFromCarat(1, 'moissanite');   // 6.65 mm
mmFromCarat(1, 'diamond');      // 6.45 mm
caratFromMm(6.5, 'moissanite'); // 0.94 ct

compareAtWeight(1);
// { carat: 1, moissanite_mm: 6.65, diamond_mm: 6.45, cz_mm: 5.49 }

MCP server

Two ways to run it.

Hosted — nothing to install. Point any MCP client at:

https://mcp.fitiny.com/mcp

Listed in the official MCP Registry as com.fitiny/moissanite-tools.

Local — stdio:

node mcp/server.js

Exposes six tools:

ToolAnswers
carat_to_mmHow wide is a 1 ct moissanite?
mm_to_caratWhat does a 6.5 mm stone weigh in each material?
grading_scaleWhat does VVS1 / D colour actually mean?
ring_size_convertWhat is a UK M in US sizing?
necklace_lengthWhere does an 18" necklace sit?
stud_appearanceHow big does a 6 mm stud read on the ear?

The maths

GIA's round-brilliant formula, scaled by relative density:

weight_ct = diameter_mm² × depth_mm × 0.0061 × (ρ_stone / ρ_diamond)
depth_mm  = diameter_mm × 0.612        (average depth ratio, well-cut round)

Accuracy against published diamond charts: 1.4% mean, 3.3% max. Real stones vary with cut proportions — treat the output as guidance, not as a substitute for weighing a stone.

Round brilliant only. Fancy shapes (oval, princess, emerald, pear) distribute weight differently and need shape-specific factors that aren't in here.

On the data

Colour and clarity scales follow the GIA diamond grading system, which the moissanite trade has adopted. The optical constants (refractive index, dispersion, Mohs hardness, density) are published gemmological values. Nothing here was scraped from another site — the conversion figures are computed from the formula above, which is why they can be released under MIT.

This is a descriptive reference, not a certification. A graded stone comes with a report from a gemmological laboratory; this repo just explains what those grades mean.

Live tool

An interactive version runs at fitiny.com/pages/moissanite-grading.

Licence

MIT — see LICENSE. Maintained by FITINY Jewelry.

Config for your environment

Use the endpoint URL below in your config. No API key — you connect directly.

Tool

OS

Config file: ~/.cursor/mcp.json

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://mcp.fitiny.com/mcp"
    }
  }
}

Paste into mcpServers in the config file. Restart Cursor after saving.

If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.