Skip to main content
Glama

SketchupMCP - Sketchup Model Context Protocol Integration

SketchupMCP connects Sketchup to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Sketchup. This integration enables prompt-assisted 3D modeling, scene creation, and manipulation in Sketchup.

Big Shoutout to Blender MCP for the inspiration and structure.

Features

  • Two-way communication: Connect Claude AI to Sketchup through a TCP socket connection

  • Component manipulation: Create, modify, delete, and transform components in Sketchup

  • Material control: Apply and modify materials and colors

  • Scene inspection: Get detailed information about the current Sketchup scene

  • Selection handling: Get and manipulate selected components

  • Ruby code evaluation: Execute arbitrary Ruby code directly in SketchUp for advanced operations

Related MCP server: SketchupMCP

Components

The system consists of two main components:

  1. Sketchup Extension: A Sketchup extension that creates a TCP server within Sketchup to receive and execute commands

  2. MCP Server (sketchup_mcp/server.py): A Python server that implements the Model Context Protocol and connects to the Sketchup extension

Installation

Python Packaging

We're using uv so you'll need to brew install uv

Sketchup Extension

  1. Download or build the latest .rbz file

  2. In Sketchup, go to Window > Extension Manager

  3. Click "Install Extension" and select the downloaded .rbz file

  4. Restart Sketchup

Usage

Starting the Connection

  1. In Sketchup, go to Extensions > SketchupMCP > Start Server

  2. The server will start on the default port (9876)

  3. Make sure the MCP server is running in your terminal

Using with Claude

Configure Claude to use the MCP server by adding the following to your Claude configuration:

    "mcpServers": {
        "sketchup": {
            "command": "uvx",
            "args": [
                "sketchup-mcp"
            ]
        }
    }

This will pull the latest from PyPI

Once connected, Claude can interact with Sketchup using the following capabilities:

Tools

  • get_scene_info - Gets information about the current Sketchup scene

  • get_selected_components - Gets information about currently selected components

  • create_component - Create a new component with specified parameters

  • delete_component - Remove a component from the scene

  • transform_component - Move, rotate, or scale a component

  • set_material - Apply materials to components

  • export_scene - Export the current scene to various formats

  • eval_ruby - Execute arbitrary Ruby code in SketchUp for advanced operations

Example Commands

Here are some examples of what you can ask Claude to do:

  • "Create a simple house model with a roof and windows"

  • "Select all components and get their information"

  • "Make the selected component red"

  • "Move the selected component 10 units up"

  • "Export the current scene as a 3D model"

  • "Create a complex arts and crafts cabinet using Ruby code"

Troubleshooting

  • Connection issues: Make sure both the Sketchup extension server and the MCP server are running

  • Command failures: Check the Ruby Console in Sketchup for error messages

  • Timeout errors: Try simplifying your requests or breaking them into smaller steps

Technical Details

Communication Protocol

The system uses a simple JSON-based protocol over TCP sockets:

  • Commands are sent as JSON objects with a type and optional params

  • Responses are JSON objects with a status and result or message

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Available Tools

10 tools
create_componentC

Create a new component in Sketchup

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNocube
positionNo
dimensionsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't address permissions needed, whether the creation is reversible, rate limits, or what happens on success/failure. This leaves significant behavioral gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just 5 words, front-loading the core purpose with zero wasted words. Every word earns its place in conveying the essential action and target.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 3 parameters, 0% schema coverage, no annotations, but an output schema, the description is inadequate. It doesn't explain what gets created, parameter requirements, behavioral aspects, or how it differs from sibling creation tools. The presence of an output schema helps with return values, but the description should do more given the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 3 parameters (type, position, dimensions), the description provides no parameter information whatsoever. It doesn't explain what 'type' accepts beyond 'cube', what format 'position' and 'dimensions' arrays should use, or their units/constraints. This fails to compensate for the complete lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('new component in Sketchup'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'create_dovetail' or 'create_finger_joint' which also create components, so it lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when not to use it, or how it differs from other creation tools like 'create_dovetail' or 'create_mortise_tenon' in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_dovetailC

Create a dovetail joint between two components

ParametersJSON Schema
NameRequiredDescriptionDefault
tail_idYes
pin_idYes
widthNo
heightNo
depthNo
angleNo
num_tailsNo
offset_xNo
offset_yNo
offset_zNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions creation but fails to describe side effects (e.g., whether components are modified or new ones generated), permissions needed, error conditions, or output format. This is inadequate for a mutation tool with 10 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words, making it easy to parse and front-loaded with the core action. It efficiently conveys the basic purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 parameters, mutation operation, no annotations) and the presence of an output schema (which reduces need to describe returns), the description is incomplete. It covers the basic purpose but lacks usage guidelines, parameter details, and behavioral context, making it minimally viable but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only implies parameters related to joint creation (e.g., dimensions, angles) but doesn't explain any of the 10 parameters' purposes, units, or relationships, leaving significant gaps in understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create a dovetail joint') and the target ('between two components'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'create_finger_joint' or 'create_mortise_tenon' beyond the joint type name, missing a direct comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'create_finger_joint' or 'create_mortise_tenon', nor does it mention prerequisites, dependencies, or contextual constraints. It states what the tool does but not when or why to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_finger_jointC

Create a finger joint (box joint) between two components

ParametersJSON Schema
NameRequiredDescriptionDefault
board1_idYes
board2_idYes
widthNo
heightNo
depthNo
num_fingersNo
offset_xNo
offset_yNo
offset_zNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a destructive operation, what permissions are needed, how it affects existing components, or error conditions. 'Create' suggests mutation, but no further context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no annotations, but has output schema), the description is minimal. The output schema existence means return values don't need explanation, but for a creation tool with many parameters and no behavioral context, more detail would be helpful to understand scope and effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what board1_id/board2_id refer to, what width/height/depth units are, or the meaning of offsets. With 9 parameters, this leaves significant gaps in understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('finger joint between two components'), specifying it's a box joint type. It doesn't differentiate from sibling woodworking tools like create_dovetail or create_mortise_tenon, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like create_dovetail or create_mortise_tenon. The description implies it's for creating finger joints but doesn't specify scenarios, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mortise_tenonC

Create a mortise and tenon joint between two components

ParametersJSON Schema
NameRequiredDescriptionDefault
mortise_idYes
tenon_idYes
widthNo
heightNo
depthNo
offset_xNo
offset_yNo
offset_zNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'create' implies a write operation but lacks details on permissions, side effects (e.g., if it modifies existing components), error handling, or response format. This is inadequate for a tool with 8 parameters and no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, with every part contributing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no annotations, but has an output schema), the description is incomplete. It lacks parameter explanations, behavioral details, and usage guidelines, though the output schema may cover return values. This is minimally adequate but with significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters, but it adds no meaning beyond the schema. Parameters like 'mortise_id', 'tenon_id', and dimensions are not contextualized, leaving their purpose and units unclear. This fails to address the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('create') and the specific resource ('mortise and tenon joint between two components'), which is a specific woodworking joint. It distinguishes from siblings like 'create_dovetail' and 'create_finger_joint' by specifying the joint type, though it doesn't explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'create_dovetail' or 'create_finger_joint', nor does it mention prerequisites such as needing existing components or a specific context. The description only states what it does without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_componentC

Delete a component by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states the destructive action ('Delete') but lacks critical details: whether deletion is permanent or reversible, what permissions are required, if there are side effects (e.g., breaking references in other components), or rate limits. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—a single, direct sentence that states the core function without any fluff. It's front-loaded with the essential action and parameter, making it efficient for quick understanding, though this brevity contributes to gaps in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a destructive operation with no annotations, 0% schema coverage, but an output schema exists), the description is incomplete. It doesn't address behavioral risks, usage context, or parameter details, relying solely on the output schema for return values. For a delete operation, this leaves significant gaps in understanding how to use it safely and effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds minimal value by specifying that the 'id' parameter identifies the component to delete. However, it doesn't explain what format the ID should be (e.g., UUID, numeric), where to find it, or if it corresponds to outputs from tools like 'get_selection'. The baseline is 3 since there's only one parameter, but the description doesn't fully compensate for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and target ('a component by ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'transform_component' or 'set_material' beyond the obvious destructive nature, nor does it specify what type of component is being deleted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the component must exist), consequences of deletion, or relationships with sibling tools like 'create_component' for re-creation. The agent must infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

eval_rubyB

Evaluate arbitrary Ruby code in Sketchup

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states 'evaluate arbitrary Ruby code' but lacks critical behavioral details: it doesn't disclose security risks (e.g., code execution), performance impacts, error handling, or output format. This is a significant gap for a tool that executes arbitrary code.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to understand quickly. Every part of the sentence earns its place by conveying essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (executing arbitrary code) and lack of annotations, the description is incomplete. It doesn't cover safety, performance, or usage context. However, the presence of an output schema reduces the need to explain return values, but more behavioral disclosure is still required for adequate understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'Ruby code', which aligns with the 'code' parameter in the schema. However, with 0% schema description coverage, the schema provides no details about the parameter. The description adds some meaning by specifying the code type, but it doesn't compensate fully for the coverage gap, such as explaining syntax or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'evaluate' and the resource 'arbitrary Ruby code in Sketchup', which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'create_component' or 'export_scene', which are more focused on CAD operations rather than code execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing Ruby code or Sketchup context, or exclusions, like avoiding it for non-code tasks. Without this, users might misuse it for operations better handled by siblings like 'create_component'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_sceneC

Export the current scene

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoskp

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose if this is a read/write operation, what permissions are needed, if it modifies the scene, rate limits, or output behavior (though output schema exists). This is inadequate for a mutation-like tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence ('Export the current scene'), which is front-loaded and wastes no words. For a simple tool, this brevity is appropriate and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's potential complexity (exporting a scene implies file generation or data output), no annotations, and low schema coverage, the description is incomplete. It doesn't explain what 'export' entails, the output format implications, or how it interacts with the scene. The output schema helps but doesn't fully compensate for the lack of context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain the 'format' parameter's purpose, default value, or valid options. However, with only 1 parameter and an output schema present, the baseline is 3 as the schema provides some structure, but the description fails to add meaningful semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Export the current scene' states a clear verb ('Export') and resource ('current scene'), providing basic purpose. However, it doesn't specify what 'scene' means in this context or differentiate from sibling tools like 'create_component' or 'get_selection', leaving it somewhat vague about its specific domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an open scene), exclusions, or comparisons to siblings like 'eval_ruby' or 'set_material', leaving the agent with no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_selectionB

Get currently selected components

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't cover aspects like whether this is a read-only operation, what happens if nothing is selected, response format, or any side effects, leaving significant gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words, clearly front-loading the core purpose. It's appropriately sized for a simple tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, as a read operation with no annotations, it lacks context on what 'selected components' means in this system and how the output is structured, leaving room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately doesn't add unnecessary param details, aligning with the baseline for zero-param tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and target resource ('currently selected components'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'transform_component' or 'delete_component' that might also operate on selected components, missing explicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing components to be selected first), exclusions, or how it relates to sibling tools like 'create_component' or 'transform_component', leaving usage context unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_materialC

Set material for a component

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
materialYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation operation ('Set'), but does not reveal critical traits such as whether this requires specific permissions, if changes are reversible, potential side effects (e.g., affecting other properties), or error handling. This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence ('Set material for a component'), which is front-loaded and wastes no words. While it may be under-specified, it is structurally efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a mutation tool with no annotations, 0% schema coverage, and an output schema (which might help but isn't described), the description is incomplete. It fails to address key aspects like behavioral risks, parameter details, or usage context, making it inadequate for safe and effective tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning parameters 'id' and 'material' are undocumented in the schema. The description adds minimal semantics by implying 'id' identifies a component and 'material' is what to set, but it lacks details like format constraints, valid material types, or examples. This does not adequately compensate for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('Set') and target ('material for a component'), which provides a basic understanding of purpose. However, it lacks specificity about what 'material' means in this context (e.g., physical properties, appearance, structural type) and does not distinguish it from sibling tools like 'create_component' or 'transform_component', leaving ambiguity about its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it does not specify if this is for modifying existing components (vs. creating new ones with 'create_component') or if there are prerequisites (e.g., the component must exist). The description offers no context on usage scenarios or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transform_componentB

Transform a component's position, rotation, or scale

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
positionNo
rotationNo
scaleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool transforms components, implying mutation, but lacks details on permissions, side effects (e.g., whether changes are reversible), rate limits, or response behavior. This is inadequate for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core action and parameters without waste. Every word contributes directly to explaining the tool's function, making it appropriately concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (which handles return values), no annotations, and moderate complexity with 4 parameters, the description is minimally adequate but incomplete. It covers the basic purpose and parameters but misses usage guidelines, behavioral details, and deeper parameter semantics, leaving room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists the parameters ('position, rotation, or scale'), adding some meaning beyond the schema's bare property names. However, it doesn't explain the format (e.g., arrays of numbers for 3D coordinates), defaults, or interactions, leaving gaps in parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('transform') and the resource ('a component's position, rotation, or scale'), making the purpose evident. However, it doesn't explicitly differentiate from siblings like 'create_component' or 'delete_component', which would require mentioning it modifies existing components rather than creating or deleting them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing component ID), exclusions, or comparisons to sibling tools like 'set_material' for other modifications, leaving usage context unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.17
    • First observedcreate_component
    • First observedcreate_dovetail
    • First observedcreate_finger_joint
    • First observedcreate_mortise_tenon
    • First observeddelete_component
    • First observedeval_ruby
    • First observedexport_scene
    • First observedget_selection
    • First observedset_material
    • First observedtransform_component

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes, but the joint creation tools (dovetail, finger_joint, mortise_tenon) could be confused as they all create joints between components with similar descriptions. However, their specific joint types are clearly named, reducing ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case, such as create_component, delete_component, and export_scene. This predictability makes the tool set easy to navigate and understand.

Tool Count5/5

With 10 tools, the server is well-scoped for Sketchup operations, covering component management, joint creation, scene export, and scripting. Each tool serves a clear purpose without redundancy or excessive complexity.

Completeness4/5

The tool set covers key operations like creating, deleting, transforming, and selecting components, with additional features for joints and materials. Minor gaps include no explicit update_component tool, but transform_component and set_material can handle updates, and scene import is missing, though export_scene is present.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Connects Sketchup to Claude AI through the Model Context Protocol, allowing Claude to directly interact with and control Sketchup for prompt-assisted 3D modeling and scene manipulation.
    10
    396
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Connects SketchUp to Claude AI through the Model Context Protocol, enabling prompt-assisted 3D modeling, scene manipulation, and woodworking joinery operations.
    22
    18
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Connects Claude AI to SketchUp, allowing you to create and modify 3D models via natural language commands.
    21
    7
    MIT

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/piexl/sketchup-mcp'

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