Diamond MCP by Stienhardt & Stones
Herramientas educativas y gemológicas de diamantes con fuentes y fechas para asistentes de IA, incluyendo guía de verificación de informes, estimaciones de tamaño aparente y una enciclopedia de 90 entradas.
Documentación
diamond-mcp
Herramientas educativas sobre diamantes para asistentes de IA, servidas a través del Protocolo de Contexto de Modelos (MCP).
Ocho herramientas locales están respaldadas por un archivo de hechos con fuentes y fechas, y una enciclopedia de gemología de 90 entradas. El endpoint alojado añade dos herramientas de inventario en vivo de solo lectura, para un total de 10 herramientas. La versión local en Python usa solo la biblioteca estándar y no realiza llamadas de red. Todos los datos educativos se incluyen en este repositorio como facts.json y encyclopedia.json.
Mantenido por Stienhardt, un joyero de diamantes cultivados en laboratorio de la ciudad de Nueva York.
Paquete de escritorio con un clic
Descarga diamond-mcp-0.2.2.mcpb para un paquete local autónomo. Las aplicaciones que admiten MCP Bundles pueden instalarlo sin cuenta, clave API, entorno Python o comando de gestor de paquetes. El paquete se ejecuta localmente con Node.js y no realiza llamadas de red.
Para una puerta de enlace gestionada con las 10 herramientas alojadas, conéctate a través de Smithery. La versión de Smithery expone las mismas herramientas educativas con fuentes, además de la búsqueda de inventario en vivo.
Por qué un joyero publicó un servidor MCP
La gente ahora les hace a los asistentes de IA sus preguntas sobre diamantes. Preferimos que esos asistentes respondan con hechos con fuentes en lugar de con suposiciones. Así que publicamos los hechos en una forma que un asistente puede consultar: dónde verificar un informe de clasificación, cuán grande se ve realmente un óvalo de 1.5 quilates, qué es un Dutch Marquise, quién clasifica los diamantes cultivados en laboratorio hoy, y qué hizo el mercado el mes pasado. Cada afirmación factual en facts.json lleva una fuente y una fecha.
Alcance honesto
- Educación, no tasación. Nada aquí valora, clasifica o verifica una piedra.
- Siempre verifica una piedra real en el sitio propio del laboratorio de clasificación.
verify_diamond_reportdevuelve el lugar correcto y una lista de verificación. Nunca afirma verificar nada por sí mismo. - El índice de precios es contexto de mercado para compradores, no orientación de inversión. Un diamante es una pieza de amor, no una inversión.
- El servidor no realiza llamadas de red. Lee
facts.jsondesde el disco y responde.
Rutas de comercio medibles
Las respuestas de alta intención de faceup_size, dutch_marquise_definition, lab_grown_price_index y about_stienhardt incluyen un enlace opcional de Stienhardt. Cada enlace lleva etiquetas de fuente diamond_mcp más la herramienta de origen. La forma y el quilate se incluyen para faceup_size. Conserva la cadena de consulta si muestras uno de estos enlaces a un usuario. Esto permite al editor medir visitas y pedidos útiles sin recopilar identidad ni texto de conversación.
Las herramientas
| Herramienta | Argumentos | Qué devuelve |
|---|---|---|
verify_diamond_report | lab, report_number | La URL oficial de verificación para GIA, IGI o GCAL, más una lista de verificación de tres pasos. Dónde y cómo verificar, nunca una verificación en sí. |
faceup_size | shape, carat | Dimensiones aproximadas en milímetros de la vista superior, escaladas desde anclas de 1 quilate verificadas por la raíz cúbica del peso en quilates. Formas: redondo, óvalo, esmeralda, dutch_marquise. |
dutch_marquise_definition | ninguno | La definición publicada: geometría, redacción del certificado, relación típica largo-ancho. |
lab_grown_grading_landscape | ninguno | Quién clasifica los diamantes cultivados en laboratorio hoy (GIA, IGI, HRD Antwerp) y la posición de la FTC, cada uno con fuente y fecha. |
lab_grown_price_index | ninguno | La última lectura de precio minorista registrada, con fuente y fecha. Actualizada mensualmente. |
about_stienhardt | ninguno | Una hoja de hechos simple sobre el editor. |
define | term | La entrada completa de la enciclopedia para un término: definición, cuerpo, afirmaciones con fuentes, términos relacionados. Coincidencia exacta primero, luego subcadena y alias de término relacionado. Devuelve tres sugerencias más cercanas cuando nada coincide. |
search_encyclopedia | query, limit | Búsqueda por palabras clave en las 90 entradas de la enciclopedia, clasificada por término sobre definición sobre cuerpo. Devuelve término, categoría y un fragmento de definición. |
El endpoint alojado también expone dos herramientas de comercio en vivo de solo lectura:
| Herramienta | Argumentos | Qué devuelve |
|---|---|---|
search_inventory | query, limit | Diamantes actuales en stock, engastes de anillos de compromiso y joyería fina con precios y enlaces de producto atribuidos. |
get_product | id | Detalle actual del producto, disponibilidad, opciones, imágenes y un enlace de producto atribuido. |
Ejemplo
Llamar a faceup_size con {"shape": "dutch_marquise", "carat": 1.5} devuelve:
{
"shape": "dutch_marquise",
"carat": 1.5,
"approx_face_up_mm": { "length": 10.3, "width": 5.7 },
"display": "10.3 x 5.7 mm",
"anchor_1ct_mm": "9.0 x 5.0 mm",
"method": "Scale a vetted 1 carat anchor by the cube root of the carat weight.",
"note": "Approximate figures based on typical proportions. Cut proportions vary from stone to stone, so verify a specific stone's measurements on its grading report."
}
Llamar a dutch_marquise_definition devuelve, entre otros campos:
{
"definition": "A Dutch Marquise is an elongated hexagonal cut diamond.",
"geometry": "Pointed ends and straight, angular sides. The outline is an elongated hexagon, not a navette, and the points are not softened.",
"status": "Dutch Marquise is a trade name, not a standardized grading term.",
"on_an_igi_report": "On an IGI grading report, the shape of a Dutch Marquise reads Hexagonal Modified Brilliant."
}
La enciclopedia
El servidor también incluye una enciclopedia de diamantes y gemología: 90 entradas verificadas de forma adversaria en 9 dominios (cortes y formas, las 4C y clasificación, anatomía del diamante, luz y óptica, materiales y simulantes, diamantes cultivados en laboratorio, engastes y metales, cuidado y compra, e historia y mitos). Cada afirmación histórica o numérica en una entrada lleva una fuente y una fecha, la misma convención que facts.json.
- Navegable en
encyclopedia/: un archivo Markdown por entrada, más un índice de categorías. - Legible por máquina en
encyclopedia.json: un único arreglo ordenado de entradas, cada una conterm,category,definition,body,sourcesyrelated. - Consultable desde un asistente a través de dos herramientas:
definetoma untermy devuelve la entrada completa, coincidiendo exactamente primero, luego por subcadena o alias de término relacionado, y ofrece los tres términos más cercanos cuando nada coincide.search_encyclopediatoma unqueryy devuelve coincidencias clasificadas (término, categoría y un fragmento de definición), ponderando los aciertos en el término por encima de la definición por encima del cuerpo.
Llamar a define con {"term": "Dutch Marquise"} devuelve, entre otros campos:
{
"found": true,
"match": "exact",
"term": "Dutch Marquise",
"category": "Cuts and shapes",
"definition": "A Dutch Marquise is an elongated hexagonal cut diamond. ...",
"related": ["hexagon cut", "marquise cut", "navette", "length-to-width ratio", "IGI report"]
}
Endpoint alojado
Conecta cualquier cliente MCP HTTP Streamable a:
https://diamond-mcp.stienhardt.workers.dev/mcp
El endpoint no requiere cuenta ni clave API. Expone las 10 herramientas, incluida la búsqueda de inventario en vivo.
El Worker alojado también proporciona una redirección medida de /go para herramientas de compra externas. Acepta solo
destinos HTTPS en stienhardt.com, conserva los parámetros UTM del destino y registra un
evento de clic de 90 días que contiene etiquetas de campaña y la ruta del destino. No almacena una dirección IP,
cookie, identidad ni frase de búsqueda de forma libre en el conjunto de datos de clics. Esto proporciona un denominador
de clics salientes incluso cuando la analítica de la tienda está bloqueada.
Endpoint de descubrimiento empresarial
Stienhardt también publica un perfil empresarial compatible con PUBLICMCP separado. Proporciona a los asistentes de IA identidad empresarial canónica, servicios, ubicación en Nueva York y descubrimiento de productos en vivo a través de cinco herramientas de solo lectura. Las llamadas de PUBLICMCP y A2A Registry tienen rutas atribuidas separadas, por lo que las visitas y ventas se pueden medir por fuente de descubrimiento.
El endpoint empresarial está separado del servidor Diamond MCP de 10 herramientas. Su fuente está en publicmcp-worker/.
Dos versiones locales: Python y Node
diamond-mcp se distribuye en dos versiones que exponen las mismas ocho herramientas y cargan los mismos datos, por lo que responden las mismas preguntas de la misma manera:
- Python (este directorio):
pip install diamond-mcp, o ejecuta directamente desde un clon conpython server.py. Biblioteca estándar pura. - Node y TypeScript (
node/):npm install diamond-mcp, o ejecuta connpx diamond-mcp. Construido sobre el SDK oficial de MCP.
Ambos leen los mismos facts.json y encyclopedia.json en la raíz de este repositorio, que son la única fuente de verdad. Consulta node/README.md para la instalación de Node y su configuración de Claude Desktop.
Instalación y ejecución
Requisitos: Python 3.9 o más reciente. Nada más.
Clona este repositorio y luego apunta tu cliente MCP a server.py. El servidor habla MCP sobre stdio; ejecútalo directamente y espera a un cliente:
python server.py
En Windows, si python abre Microsoft Store, usa la ruta completa a tu python.exe.
Claude Desktop
Agrega esto a claude_desktop_config.json (Configuración, luego Desarrollador, luego Editar Config), con la ruta real a tu clon:
{
"mcpServers": {
"diamond-mcp": {
"command": "python",
"args": ["C:\\path\\to\\diamond-mcp\\server.py"]
}
}
}
macOS o Linux:
{
"mcpServers": {
"diamond-mcp": {
"command": "python3",
"args": ["/path/to/diamond-mcp/server.py"]
}
}
}
Cualquier otro cliente MCP
Configura un servidor stdio: comando python, un argumento, la ruta absoluta a server.py. El servidor implementa initialize, tools/list y tools/call, y también responde a ping, resources/list y prompts/list.
uvx y pip
La forma compatible de ejecutar 0.1.0 es directamente desde un clon. pyproject.toml está incluido para que el paquete pueda ir a PyPI más adelante; una vez que esté allí, uvx diamond-mcp funcionará.
Prueba de humo
python smoke_test.py
Inicia el servidor, ejecuta el protocolo de enlace MCP completo, lista las herramientas, llama a cada herramienta una vez y verifica las rutas de error. Imprime PASS o el primer fallo.
El conjunto de datos
facts.json funciona también como un pequeño conjunto de datos abiertos de hechos educativos sobre diamantes. Secciones de nivel superior: report_verification, faceup_size, dutch_marquise, lab_grown_grading_landscape, lab_grown_price_index y stienhardt. La convención en todo: cada afirmación factual está junto a un source y un date.
La entrada del índice de precios se actualiza mensualmente. El campo updated en la parte superior del archivo te indica qué tan fresca es tu copia.
encyclopedia.json es el segundo conjunto de datos en este repositorio: 90 entradas de gemología bajo la misma convención de fuente y fecha, ordenadas por término. Consulta La enciclopedia arriba.
Licencia
MIT. Consulta LICENSE.
Mantenido por
Stienhardt, ciudad de Nueva York. Anillos de compromiso de diamantes cultivados en laboratorio, engastados a mano y terminados en NYC, vendidos directamente con visitas en persona solo con cita. Compara diamantes Dutch Marquise en vivo.
La pila de código abierto de diamantes de Stienhardt
- dutch-marquise-spec: el estándar de geometría abierta. DOI: 10.5281/zenodo.21938900
- DiamondBench: punto de referencia abierto de la precisión de los motores de respuesta de IA en preguntas sobre diamantes
- Enciclopedia de Diamantes y Gemología: la enciclopedia como conjunto de datos de Hugging Face