SketchupMCP
Enables direct interaction and control of SketchUp models, allowing for component creation and manipulation, material management, scene inspection, and the execution of Ruby code for advanced 3D modeling tasks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SketchupMCPcreate a modern minimalist desk with a glass top and wooden legs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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:
Sketchup Extension: A Sketchup extension that creates a TCP server within Sketchup to receive and execute commands
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
Download or build the latest
.rbzfileIn Sketchup, go to Window > Extension Manager
Click "Install Extension" and select the downloaded
.rbzfileRestart Sketchup
Usage
Starting the Connection
In Sketchup, go to Extensions > SketchupMCP > Start Server
The server will start on the default port (9876)
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 sceneget_selected_components- Gets information about currently selected componentscreate_component- Create a new component with specified parametersdelete_component- Remove a component from the scenetransform_component- Move, rotate, or scale a componentset_material- Apply materials to componentsexport_scene- Export the current scene to various formatseval_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
typeand optionalparamsResponses are JSON objects with a
statusandresultormessage
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Available Tools
10 toolscreate_componentC
Create a new component in Sketchup
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | cube | |
| position | No | ||
| dimensions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| tail_id | Yes | ||
| pin_id | Yes | ||
| width | No | ||
| height | No | ||
| depth | No | ||
| angle | No | ||
| num_tails | No | ||
| offset_x | No | ||
| offset_y | No | ||
| offset_z | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| board1_id | Yes | ||
| board2_id | Yes | ||
| width | No | ||
| height | No | ||
| depth | No | ||
| num_fingers | No | ||
| offset_x | No | ||
| offset_y | No | ||
| offset_z | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| mortise_id | Yes | ||
| tenon_id | Yes | ||
| width | No | ||
| height | No | ||
| depth | No | ||
| offset_x | No | ||
| offset_y | No | ||
| offset_z | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | skp |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| material | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| position | No | ||
| rotation | No | ||
| scale | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
10 tool updates
v0.1.17- First observed
create_component - First observed
create_dovetail - First observed
create_finger_joint - First observed
create_mortise_tenon - First observed
delete_component - First observed
eval_ruby - First observed
export_scene - First observed
get_selection - First observed
set_material - First observed
transform_component
TDQS
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.
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.
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.
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
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
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- AlicenseBqualityDmaintenanceConnects 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.10396MIT
- AlicenseBqualityCmaintenanceIntegration that connects Sketchup to Claude AI through the Model Context Protocol, allowing Claude to directly interact with and control Sketchup for prompt-assisted 3D modeling, scene creation, and manipulation.1024MIT
- AlicenseAqualityAmaintenanceConnects SketchUp to Claude AI through the Model Context Protocol, enabling prompt-assisted 3D modeling, scene manipulation, and woodworking joinery operations.2218MIT
- AlicenseAqualityCmaintenanceConnects Claude AI to SketchUp, allowing you to create and modify 3D models via natural language commands.217MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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