Odel
moissanite tools

moissanite tools

@fitinyJavaScriptMITUpdated 1w ago

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

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

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.