Skip to main content
Glama

CAD-Query MCP Server

A Model Context Protocol (MCP) server that provides CAD generation and verification tools for Claude Code. This server enables conversational 3D modeling by exposing CAD-Query functionality through MCP tools.

Features

  • verify_cad_query - Validates CAD-Query generated models against criteria

  • generate_cad_query - (Stub implementation) Generates CAD-Query Python scripts from descriptions

  • CAD-Query Integration - Full CAD-Query support for parametric 3D modeling

  • STL/STEP Export - Direct export to 3D printing and CAD formats

  • Visual Feedback - SVG generation for model inspection

Installation

# 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

Claude Desktop Configuration

Add this to your Claude Desktop configuration file:

macOS

Location: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows

Location: %APPDATA%/Claude/claude_desktop_config.json

Configuration

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

MCP Tools

verify_cad_query

Validates a CAD-Query generated model against specified criteria.

Parameters:

  • file_path (string): Path to the CAD-Query Python file

  • verification_criteria (string): Description of what to verify

Example:

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

Returns:

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

generate_cad_query (Stub Implementation)

Generates CAD-Query Python scripts from natural language descriptions.

NOTE: Currently returns a stub response indicating the feature is not yet implemented.

Parameters:

  • description (string): Natural language description of the desired 3D model

  • parameters (string, optional): Specific dimensions or constraints

Example:

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

Returns:

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

CAD-Query Script Requirements

All CAD-Query scripts must end with show_object(result):

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

Development

Testing

# 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

Extending the Server

The current verify_cad_query implementation is a basic validator. You can enhance it to:

  • Parse and validate CAD-Query syntax

  • Execute model generation and catch errors

  • Analyze resulting geometry dimensions

  • Check for specific features and constraints

  • Generate detailed validation reports

Dev tools

# formatting uvx rff format
# running the MCP server npx @modelcontextprotocol/inspector \ uv \ --directory $(pwd) \ run \ server.py
-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rishigundakaram/cadquery-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server