AI-powered woodworking assistant for SketchUp Make 2017. A Model Context Protocol server for integrating SketchUp with Claude.
Server has 6 tools with basic descriptions and parameter schemas, but significant gaps limit production readiness. Tool names follow verb_noun convention (good), but descriptions lack LLM-optimization guidance and parameter constraints are underspecified. No output schemas documented. Error handling is minimal. The eval_ruby tool is particularly risky, it accepts arbitrary code with no validation, confirmation, or dry-run capability. Most tools lack enum constraints for string parameters (e.g., export_format, region, joinery, template_type accept free-form strings). Parameter descriptions exist but are generic; none explain constraints, ranges, or valid values explicitly. No tool returns structured output schemas. This is a typical community server with functional but incomplete definitions.
Build a woodworking project from a template. Creates complete 3D models in SketchUp from predefined templates. Templates include furniture (bookshelf, table) and small projects (box, cutting board).
Get information about the current SketchUp model. Returns a description of the active model including entity counts, current selection, and model bounds.
Execute Ruby code in SketchUp. This is the power tool for advanced operations. It can execute any valid SketchUp Ruby API code. Use this for operations not covered by other tools.
Export the current SketchUp model to a file.
Generate a lumber shopping list from the current SketchUp model. Analyzes all groups and components, extracts dimensions, and formats them as a cut list with quantities. Similar pieces are grouped together.
List all available project templates. Returns information about each template including name, description, and default joinery type.
eval_ruby accepts arbitrary Ruby code with no validation, confirmation, or dry-run. Marked IRREVERSIBLE but lacks confirmation-request pattern. LLM can execute destructive code without safeguards.
String parameters lack enum constraints. export_format, region, joinery, template_type, lumber, material accept free-form strings. LLMs will hallucinate invalid values (e.g., 'jpeg' instead of 'jpg', 'walnut_stain' instead of 'walnut'). No validation errors guide recovery.
No output schemas documented. Tool descriptions do not specify what fields are returned or their types. LLMs cannot plan downstream calls or extract required data (e.g., does describe_model return bounds as {x, y, z} or {min, max}?).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
Parameter descriptions lack constraint details. 'Width in mm' does not specify min/max bounds, whether fractional values are allowed, or what happens if width exceeds material limits. LLMs cannot validate inputs before calling.
build_project has 10 parameters with complex interdependencies (template_type determines valid options, region affects lumber defaults, joinery depends on template). Dependencies are not documented. LLMs will pass invalid combinations.