Skip to main content
Glama
ext-sakamoro

Aseprite MCP Tools

by ext-sakamoro

add_layer

Create a new layer in an Aseprite file to organize pixel art elements, enabling structured editing and composition.

Instructions

Add a new layer to the Aseprite file.

Args: filename: Name of the Aseprite file to modify layer_name: Name of the new layer

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filenameYes
layer_nameYes

Implementation Reference

  • The 'add_layer' function is defined as an MCP tool, handling the logic of adding a layer to an Aseprite file using LuaBuilder.
    async def add_layer(filename: str, layer_name: str) -> str:
        """Add a new layer to the Aseprite file.
    
        Args:
            filename: Name of the Aseprite file to modify
            layer_name: Name of the new layer
        """
        try:
            log_operation("add_layer", filename, layer_name=layer_name)
            
            # Validate inputs
            file_path = validate_file_path(filename, must_exist=True)
            layer_name = validate_layer_name(layer_name)
            
            # 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.create_layer(layer_name)
            builder.end_transaction()
            builder.save_sprite()
            
            # Execute script
            cmd = get_command()
            success, output = cmd.execute_lua_script(builder.build(), str(file_path))
            
            logger.info(f"Layer added successfully", file=str(file_path), layer=layer_name)
            return f"Layer '{layer_name}' added successfully to {file_path}"
            
        except (ValidationError, AsepriteError) as e:
            log_error(f"Failed to add layer", e, "add_layer", filename=filename, layer_name=layer_name)
            return f"Failed to add layer: {e}"
        except Exception as e:
            log_error(f"Unexpected error in add_layer", e, "add_layer", filename=filename)
            return f"Unexpected error: {e}"
  • The 'add_layer' function is registered as an MCP tool using the @mcp.tool() decorator.
    @mcp.tool()
    async def add_layer(filename: str, layer_name: str) -> str:

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