Diamond MCP by Stienhardt & Stones
Ferramentas de educação sobre diamantes e gemologia, com fontes e datas, para assistentes de IA, incluindo orientação de verificação de relatórios, estimativas de tamanho aparente e uma enciclopédia com 90 verbetes.
Documentação
diamond-mcp
Ferramentas de educação sobre diamantes para assistentes de IA, servidas através do Model Context Protocol (MCP).
Oito ferramentas locais são apoiadas por um arquivo de fatos com fontes e datas, e uma enciclopédia de gemologia com 90 entradas. O endpoint hospedado adiciona duas ferramentas somente leitura de inventário ao vivo, totalizando 10 ferramentas. A versão local em Python usa apenas a biblioteca padrão e não faz chamadas de rede. Todos os dados educacionais estão incluídos neste repositório como facts.json e encyclopedia.json.
Mantido por Stienhardt, uma joalheria de diamantes cultivados em laboratório na cidade de Nova York.
Pacote desktop com um clique
Baixe diamond-mcp-0.2.2.mcpb para um pacote local autossuficiente. Aplicativos que suportam MCP Bundles podem instalá-lo sem conta, chave de API, ambiente Python ou comando de gerenciador de pacotes. O pacote roda localmente com Node.js e não faz chamadas de rede.
Para um gateway gerenciado com todas as 10 ferramentas hospedadas, conecte-se através do Smithery. A versão do Smithery expõe as mesmas ferramentas educacionais com fontes, além da busca de inventário ao vivo.
Por que um joalheiro publicou um servidor MCP
As pessoas fazem perguntas sobre diamantes aos assistentes de IA agora. Preferimos que esses assistentes respondam com fatos com fontes do que com suposições. Então publicamos os fatos em uma forma que um assistente pode consultar: onde verificar um relatório de classificação, quão grande um oval de 1,5 quilate realmente parece, o que é um Dutch Marquise, quem classifica diamantes cultivados em laboratório hoje, e o que o mercado fez no mês passado. Cada afirmação factual em facts.json carrega uma fonte e uma data.
Escopo honesto
- Educação, não avaliação. Nada aqui avalia, classifica ou verifica uma pedra.
- Sempre verifique uma pedra real no site do próprio laboratório de classificação.
verify_diamond_reportretorna o lugar certo e uma lista de verificação. Nunca afirma verificar nada por si só. - O índice de preços é contexto de mercado para compradores, não orientação de investimento. Um diamante é uma peça de amor, não um investimento.
- O servidor não faz chamadas de rede. Ele lê
facts.jsondo disco e responde.
Caminhos de comércio mensuráveis
Respostas de alta intenção de faceup_size, dutch_marquise_definition, lab_grown_price_index e about_stienhardt incluem um link opcional da Stienhardt. Cada link carrega diamond_mcp tags de fonte mais a ferramenta de origem. Forma e quilate são incluídos para faceup_size. Preserve a string de consulta se você exibir um desses links para um usuário. Isso permite que o editor meça visitas e pedidos úteis sem coletar identidade ou texto de conversa.
As ferramentas
| Ferramenta | Argumentos | O que retorna |
|---|---|---|
verify_diamond_report | lab, report_number | A URL oficial de verificação para GIA, IGI ou GCAL, além de uma lista de verificação de três etapas. Onde e como verificar, nunca uma verificação em si. |
faceup_size | shape, carat | Dimensões aproximadas em milímetros de face para cima, escaladas de âncoras de 1 quilate verificadas pela raiz cúbica do peso em quilates. Formas: redondo, oval, esmeralda, dutch_marquise. |
dutch_marquise_definition | nenhum | A definição publicada: geometria, redação do certificado, proporção típica de comprimento para largura. |
lab_grown_grading_landscape | nenhum | Quem classifica diamantes cultivados em laboratório hoje (GIA, IGI, HRD Antwerp) e a posição da FTC, cada um com fonte e data. |
lab_grown_price_index | nenhum | A leitura mais recente do preço de varejo rastreado, com fonte e data. Atualizado mensalmente. |
about_stienhardt | nenhum | Uma ficha informativa simples sobre o editor. |
define | term | A entrada completa da enciclopédia para um termo: definição, corpo, afirmações com fontes, termos relacionados. Correspondência exata primeiro, depois substring e alias de termos relacionados. Retorna três sugestões mais próximas quando nada corresponde. |
search_encyclopedia | query, limit | Pesquisa por palavras-chave em todas as 90 entradas da enciclopédia, classificada por termo sobre definição sobre corpo. Retorna termo, categoria e um trecho da definição. |
O endpoint hospedado também expõe duas ferramentas de comércio ao vivo, somente leitura:
| Ferramenta | Argumentos | O que retorna |
|---|---|---|
search_inventory | query, limit | Diamantes atualmente em estoque, configurações de anéis de noivado e joias finas com preços e links de produtos atribuídos. |
get_product | id | Detalhes atuais do produto, disponibilidade, opções, imagens e um link de produto atribuído. |
Exemplo
Chamar faceup_size com {"shape": "dutch_marquise", "carat": 1.5} retorna:
{
"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."
}
Chamar dutch_marquise_definition retorna, entre outros 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."
}
A enciclopédia
O servidor também inclui uma enciclopédia de diamantes e gemologia: 90 entradas verificadas adversarialmente em 9 domínios (cortes e formas, os 4Cs e classificação, anatomia do diamante, luz e óptica, materiais e simulantes, diamantes cultivados em laboratório, configurações e metais, cuidados e compra, e história e mitos). Cada afirmação histórica ou numérica em uma entrada carrega uma fonte e uma data, a mesma convenção de facts.json.
- Navegável em
encyclopedia/: um arquivo Markdown por entrada, além de um índice de categorias. - Legível por máquina em
encyclopedia.json: um único array ordenado de entradas, cada uma comterm,category,definition,body,sourceserelated. - Consultável por um assistente através de duas ferramentas:
definerecebe umterme retorna a entrada completa, correspondendo exatamente primeiro, depois por substring ou alias de termo relacionado, e oferecendo os três termos mais próximos quando nada corresponde.search_encyclopediarecebe umquerye retorna correspondências classificadas (termo, categoria e um trecho da definição), ponderando ocorrências no termo acima da definição acima do corpo.
Chamar define com {"term": "Dutch Marquise"} retorna, entre outros 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 hospedado
Conecte qualquer cliente MCP HTTP Streamable a:
https://diamond-mcp.stienhardt.workers.dev/mcp
O endpoint não requer conta ou chave de API. Ele expõe todas as 10 ferramentas, incluindo a busca de inventário ao vivo.
O Worker hospedado também fornece um redirecionamento medido de /go para ferramentas de compra externas. Ele aceita apenas
destinos HTTPS em stienhardt.com, preserva os parâmetros UTM do destino e registra um
evento de clique de 90 dias contendo rótulos de campanha e caminho do destino. Ele não armazena endereço IP,
cookie, identidade ou frase de busca de forma livre no conjunto de dados de cliques. Isso fornece um denominador
de cliques de saída mesmo quando a análise da loja é bloqueada.
Endpoint de descoberta de negócios
A Stienhardt também publica um perfil de negócios compatível com PUBLICMCP separado. Ele dá aos assistentes de IA identidade canônica do negócio, serviços, localização em Nova York e descoberta de produtos ao vivo através de cinco ferramentas somente leitura. Chamadas PUBLICMCP e A2A Registry têm caminhos atribuídos separados, então visitas e vendas podem ser medidas por fonte de descoberta.
O endpoint de negócios é separado do servidor Diamond MCP de 10 ferramentas. Sua fonte está em publicmcp-worker/.
Duas versões locais: Python e Node
diamond-mcp é distribuído em duas versões que expõem as mesmas oito ferramentas e carregam os mesmos dados, então respondem às mesmas perguntas da mesma maneira:
- Python (este diretório):
pip install diamond-mcp, ou execute diretamente de um clone compython server.py. Biblioteca padrão pura. - Node e TypeScript (
node/):npm install diamond-mcp, ou execute comnpx diamond-mcp. Construído no SDK oficial do MCP.
Ambos leem os mesmos facts.json e encyclopedia.json na raiz deste repositório, que são a fonte única de verdade. Veja node/README.md para a instalação do Node e sua configuração do Claude Desktop.
Instalação e execução
Requisitos: Python 3.9 ou mais recente. Nada mais.
Clone este repositório e aponte seu cliente MCP para server.py. O servidor fala MCP via stdio; execute-o diretamente e ele aguarda um cliente:
python server.py
No Windows, se python abrir a Microsoft Store, use o caminho completo para seu python.exe.
Claude Desktop
Adicione isso a claude_desktop_config.json (Configurações, depois Desenvolvedor, depois Editar Config), com o caminho real para seu clone:
{
"mcpServers": {
"diamond-mcp": {
"command": "python",
"args": ["C:\\path\\to\\diamond-mcp\\server.py"]
}
}
}
macOS ou Linux:
{
"mcpServers": {
"diamond-mcp": {
"command": "python3",
"args": ["/path/to/diamond-mcp/server.py"]
}
}
}
Qualquer outro cliente MCP
Configure um servidor stdio: comando python, um argumento, o caminho absoluto para server.py. O servidor implementa initialize, tools/list e tools/call, e também responde a ping, resources/list e prompts/list.
uvx e pip
A maneira suportada de executar 0.1.0 é diretamente de um clone. pyproject.toml está incluído para que o pacote possa ir para PyPI mais tarde; uma vez que estiver lá, uvx diamond-mcp funcionará.
Teste de fumaça
python smoke_test.py
Inicia o servidor, executa o handshake completo do MCP, lista as ferramentas, chama cada ferramenta uma vez e verifica os caminhos de erro. Imprime PASS ou a primeira falha.
O conjunto de dados
facts.json também serve como um pequeno conjunto de dados aberto de fatos educacionais sobre diamantes. Seções de nível superior: report_verification, faceup_size, dutch_marquise, lab_grown_grading_landscape, lab_grown_price_index e stienhardt. A convenção em todo lugar: cada afirmação factual fica ao lado de um source e um date.
A entrada do índice de preços é atualizada mensalmente. O campo updated no topo do arquivo informa o quão atualizada sua cópia está.
encyclopedia.json é o segundo conjunto de dados neste repositório: 90 entradas de gemologia sob a mesma convenção de fonte e data, ordenadas por termo. Veja A enciclopédia acima.
Licença
MIT. Veja LICENSE.
Mantido por
Stienhardt, cidade de Nova York. Anéis de noivado com diamantes cultivados em laboratório, montados e finalizados em NYC, vendidos diretamente com visitas presenciais somente com agendamento. Compare diamantes Dutch Marquise ao vivo.
A pilha de código aberto de diamantes da Stienhardt
- dutch-marquise-spec: o padrão aberto de geometria. DOI: 10.5281/zenodo.21938900
- DiamondBench: benchmark aberto da precisão de motores de resposta de IA em perguntas sobre diamantes
- Enciclopédia de Diamantes e Gemologia: a enciclopédia como um conjunto de dados Hugging Face