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

AllMCPs Verified MCP Badge

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_report retorna 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.json do 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

FerramentaArgumentosO que retorna
verify_diamond_reportlab, report_numberA 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_sizeshape, caratDimensõ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_definitionnenhumA definição publicada: geometria, redação do certificado, proporção típica de comprimento para largura.
lab_grown_grading_landscapenenhumQuem 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_indexnenhumA leitura mais recente do preço de varejo rastreado, com fonte e data. Atualizado mensalmente.
about_stienhardtnenhumUma ficha informativa simples sobre o editor.
definetermA 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_encyclopediaquery, limitPesquisa 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:

FerramentaArgumentosO que retorna
search_inventoryquery, limitDiamantes atualmente em estoque, configurações de anéis de noivado e joias finas com preços e links de produtos atribuídos.
get_productidDetalhes 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 com term, category, definition, body, sources e related.
  • Consultável por um assistente através de duas ferramentas:
    • define recebe um term e 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_encyclopedia recebe um query e 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 com python server.py. Biblioteca padrão pura.
  • Node e TypeScript (node/): npm install diamond-mcp, ou execute com npx 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