Skip to main content
Glama
ext-sakamoro

Aseprite MCP Tools

by ext-sakamoro

draw_line

Draw straight lines on Aseprite canvas by specifying start and end coordinates, color, and thickness for pixel art creation.

Instructions

Draw a line on the canvas.

Args: filename: Name of the Aseprite file to modify x1: Starting x coordinate y1: Starting y coordinate x2: Ending x coordinate y2: Ending y coordinate color: Hex color code (default: "#000000") thickness: Line thickness in pixels (default: 1)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYes
x1Yes
y1Yes
x2Yes
y2Yes
colorNo#000000
thicknessNo

Implementation Reference

  • The draw_line handler function, which validates inputs, generates a Lua script using LuaBuilder, and executes it via Aseprite.
    @mcp.tool()
    async def draw_line(filename: str, x1: int, y1: int, x2: int, y2: int, color: str = "#000000", thickness: int = 1) -> str:
        """Draw a line on the canvas.
    
        Args:
            filename: Name of the Aseprite file to modify
            x1: Starting x coordinate
            y1: Starting y coordinate
            x2: Ending x coordinate
            y2: Ending y coordinate
            color: Hex color code (default: "#000000")
            thickness: Line thickness in pixels (default: 1)
        """
        try:
            # Validate inputs
            file_path = validate_file_path(filename, must_exist=True)
            color = validate_color(color)
            
            if thickness < 1:
                raise ValidationError("thickness", thickness, "Thickness must be at least 1")
            
            # Build Lua script
            builder = LuaBuilder()
            builder.add_line('local spr = app.activeSprite')
            builder.if_condition('not spr')
            builder.add_line('error("No active sprite")')
            builder.end_if()
            builder.add_line()
            
            builder.begin_transaction()
            builder.draw_line(x1, y1, x2, y2, color, thickness)
            builder.end_transaction()
            builder.save_sprite()
            
            # Execute script
            cmd = get_command()
            success, output = cmd.execute_lua_script(builder.build(), str(file_path))
            
            return f"Line drawn successfully in {file_path}"
            
        except (ValidationError, AsepriteError) as e:
            return f"Failed to draw line: {e}"
        except Exception as e:
            return f"Unexpected error: {e}"

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/ext-sakamoro/AsepriteMCP'

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