Skip to main content
Glama

create_mortise_tenon

Generate precise mortise and tenon joints between components in Sketchup using specified dimensions and offsets for accurate 3D woodworking designs.

Instructions

Create a mortise and tenon joint between two components

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
depthNo
heightNo
mortise_idYes
offset_xNo
offset_yNo
offset_zNo
tenon_idYes
widthNo

Implementation Reference

  • MCP tool handler that proxies the create_mortise_tenon command to the SketchUp extension socket server using JSON-RPC. The function parameters define the input schema implicitly.
    @mcp.tool()
    def create_mortise_tenon(
        ctx: Context,
        mortise_id: str,
        tenon_id: str,
        width: float = 1.0,
        height: float = 1.0,
        depth: float = 1.0,
        offset_x: float = 0.0,
        offset_y: float = 0.0,
        offset_z: float = 0.0
    ) -> str:
        """Create a mortise and tenon joint between two components"""
        try:
            logger.info(f"create_mortise_tenon called with mortise_id={mortise_id}, tenon_id={tenon_id}, width={width}, height={height}, depth={depth}, offsets=({offset_x}, {offset_y}, {offset_z})")
            
            sketchup = get_sketchup_connection()
            
            result = sketchup.send_command(
                method="tools/call",
                params={
                    "name": "create_mortise_tenon",
                    "arguments": {
                        "mortise_id": mortise_id,
                        "tenon_id": tenon_id,
                        "width": width,
                        "height": height,
                        "depth": depth,
                        "offset_x": offset_x,
                        "offset_y": offset_y,
                        "offset_z": offset_z
                    }
                },
                request_id=ctx.request_id
            )
            
            logger.info(f"create_mortise_tenon result: {result}")
            return json.dumps(result)
        except Exception as e:
            logger.error(f"Error in create_mortise_tenon: {str(e)}")
            return f"Error creating mortise and tenon joint: {str(e)}"
  • FastMCP decorator that registers the create_mortise_tenon tool with the MCP server.
    @mcp.tool()
  • Function signature defining the input parameters (schema) for the create_mortise_tenon tool.
    def create_mortise_tenon(
        ctx: Context,
        mortise_id: str,
        tenon_id: str,
        width: float = 1.0,
        height: float = 1.0,
        depth: float = 1.0,
        offset_x: float = 0.0,
        offset_y: float = 0.0,
        offset_z: float = 0.0
    ) -> str:
Install Server

Other Tools

Related Tools

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/BearNetwork-BRNKC/SketchUp-MCP'

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