CAD-Query MCP Server

Un servidor para generar y verificar modelos CAD utilizando la librería Python CAD-Query.

Documentación

CAD-Query MCP Server

Un servidor de Model Context Protocol (MCP) que proporciona herramientas de generación y verificación CAD para Claude Code. Este servidor permite el modelado 3D conversacional al exponer la funcionalidad de CAD-Query a través de herramientas MCP.

Características

  • verify_cad_query - Valida modelos generados por CAD-Query contra criterios
  • generate_cad_query - (Implementación preliminar) Genera scripts de Python de CAD-Query a partir de descripciones
  • Integración CAD-Query - Soporte completo de CAD-Query para modelado 3D paramétrico
  • Exportación STL/STEP - Exportación directa a formatos de impresión 3D y CAD
  • Retroalimentación visual - Generación de SVG para inspección de modelos

Instalación

# 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

Configuración de Claude Desktop

Añade esto a tu archivo de configuración de Claude Desktop:

macOS

Ubicación: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows

Ubicación: %APPDATA%/Claude/claude_desktop_config.json

Configuración

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

Herramientas MCP

verify_cad_query

Valida un modelo generado por CAD-Query contra criterios especificados.

Parámetros:

  • file_path (string): Ruta al archivo Python de CAD-Query
  • verification_criteria (string): Descripción de qué verificar

Ejemplo:

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

Devuelve:

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

generate_cad_query (Implementación preliminar)

Genera scripts de Python de CAD-Query a partir de descripciones en lenguaje natural.

NOTA: Actualmente devuelve una respuesta preliminar que indica que la función aún no está implementada.

Parámetros:

  • description (string): Descripción en lenguaje natural del modelo 3D deseado
  • parameters (string, opcional): Dimensiones o restricciones específicas

Ejemplo:

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

Devuelve:

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

Requisitos de los scripts de CAD-Query

Todos los scripts de CAD-Query deben terminar con show_object(result):

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

Desarrollo

Pruebas

# 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

Ampliación del servidor

La implementación actual de verify_cad_query es un validador básico. Puedes mejorarla para:

  • Analizar y validar la sintaxis de CAD-Query
  • Ejecutar la generación de modelos y capturar errores
  • Analizar las dimensiones de la geometría resultante
  • Verificar características y restricciones específicas
  • Generar informes de validación detallados

Herramientas de desarrollo

# formatting
uvx rff format

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