CAD-Query MCP Server

Um servidor para gerar e verificar modelos CAD usando a biblioteca Python CAD-Query.

Documentação

Servidor MCP CAD-Query

Um servidor Model Context Protocol (MCP) que fornece ferramentas de geração e verificação de CAD para o Claude Code. Este servidor permite modelagem 3D conversacional ao expor a funcionalidade do CAD-Query por meio de ferramentas MCP.

Recursos

  • verify_cad_query - Valida modelos gerados pelo CAD-Query contra critérios
  • generate_cad_query - (Implementação provisória) Gera scripts Python do CAD-Query a partir de descrições
  • Integração CAD-Query - Suporte completo ao CAD-Query para modelagem 3D paramétrica
  • Exportação STL/STEP - Exportação direta para formatos de impressão 3D e CAD
  • Feedback Visual - Geração de SVG para inspeção de modelos

Instalação

# Install dependencies
uv sync

# For development with CAD verification capabilities
uv sync --extra cad

# Test the server
uv run python tests/test_server.py

# Run with MCP Inspector (interactive testing)
uv run mcp dev server.py

Configuração do Claude Desktop

Adicione isto ao seu arquivo de configuração do Claude Desktop:

macOS

Localização: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows

Localização: %APPDATA%/Claude/claude_desktop_config.json

Configuração

{
  "mcpServers": {
    "cadquery-server": {
      "command": "python",
      "args": ["/path/to/cadquery-mcp-server/server.py"],
      "env": {}
    }
  }
}

Ferramentas MCP

verify_cad_query

Valida um modelo gerado pelo CAD-Query contra critérios especificados.

Parâmetros:

  • file_path (string): Caminho para o arquivo Python do CAD-Query
  • verification_criteria (string): Descrição do que verificar

Exemplo:

{
  "file_path": "models/coffee_mug.py",
  "verification_criteria": "coffee mug with handle, 10cm height, 8cm diameter"
}

Retorna:

{
  "status": "PASS" | "FAIL",
  "message": "Description of result",
  "file_path": "Path to verified file",
  "criteria": "Verification criteria used",
  "details": "Additional verification details"
}

generate_cad_query (Implementação Provisória)

Gera scripts Python do CAD-Query a partir de descrições em linguagem natural.

NOTA: Atualmente retorna uma resposta provisória indicando que o recurso ainda não foi implementado.

Parâmetros:

  • description (string): Descrição em linguagem natural do modelo 3D desejado
  • parameters (string, opcional): Dimensões ou restrições específicas

Exemplo:

{
  "description": "Create a coffee mug with a handle, 10cm tall and 8cm diameter",
  "parameters": "height=100mm, diameter=80mm, handle_width=15mm"
}

Retorna:

{
  "status": "NOT_IMPLEMENTED",
  "message": "CAD code generation is not yet implemented",
  "description": "Input description",
  "parameters": "Input parameters",
  "details": "Additional information"
}

Requisitos do Script CAD-Query

Todos os scripts CAD-Query devem terminar com show_object(result):

import cadquery as cq
result = cq.Workplane("XY").box(10, 10, 10)
show_object(result)  # Required for processing

Desenvolvimento

Testes

# Test server functionality
uv run python tests/test_server.py

# Interactive testing with MCP Inspector
uv run mcp dev server.py

# Run evaluations
uv run python evaluations/evaluate_verify.py

Estendendo o Servidor

A implementação atual de verify_cad_query é um validador básico. Você pode aprimorá-lo para:

  • Analisar e validar a sintaxe do CAD-Query
  • Executar a geração de modelos e capturar erros
  • Analisar as dimensões da geometria resultante
  • Verificar recursos e restrições específicos
  • Gerar relatórios de validação detalhados

Ferramentas de desenvolvimento

# formatting
uvx rff format

# running the MCP server
npx @modelcontextprotocol/inspector \
  uv \
  --directory $(pwd) \
  run \
  server.py