Skip to main content
Glama
mhyrr
by mhyrr

create_mortise_tenon

Generate precise mortise and tenon joints in Sketchup using predefined parameters for width, height, depth, and offsets, enabling accurate woodworking designs and structural connections.

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

  • The @mcp.tool()-decorated handler function that implements the create_mortise_tenon tool. It handles input parameters, logs the call, proxies the command to SketchUp via JSON-RPC, and returns the result or error.
    @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)}"
  • The @mcp.tool() decorator registers the create_mortise_tenon function as an MCP tool.
    @mcp.tool()
  • Function signature defines the input schema with type hints for parameters.
    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
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/mhyrr/sketchup-mcp'

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