with one click
pixellab-mcp
// Generate pixel art game assets (characters, animations, tilesets) directly from code using PixelLab MCP Server. Use when creating game assets, character sprites, animations, or tilesets for game development.
// Generate pixel art game assets (characters, animations, tilesets) directly from code using PixelLab MCP Server. Use when creating game assets, character sprites, animations, or tilesets for game development.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | pixellab-mcp |
| description | Generate pixel art game assets (characters, animations, tilesets) directly from code using PixelLab MCP Server. Use when creating game assets, character sprites, animations, or tilesets for game development. |
| tags | ["game-development","pixel-art","assets","sprites","tilesets","animations","godot","unity"] |
Generate pixel art game assets (characters, animations, tilesets) directly from code using the PixelLab MCP Server.
The PixelLab MCP Server provides tools for generating pixel art game assets programmatically. All creation operations are non-blocking - they return immediately with job IDs and process in the background (typically 2-5 minutes).
Server URL: https://api.pixellab.ai/mcp
The MCP server is already configured and enabled. You can call these tools directly - they will be available in your tool list.
CRITICAL CONCEPT: All creation tools return immediately with job IDs - they process in the background (2-5 minutes):
get_* toolThis means you should:
create_character - Create a new character spriteanimate_character - Add animations to an existing characterget_character - Get character status and download URLslist_characters - List all your charactersdelete_character - Delete a charactercreate_topdown_tileset - Create a top-down tileset (16 Wang tiles)get_topdown_tileset - Get tileset status and download URLslist_topdown_tilesets - List all your top-down tilesetsdelete_topdown_tileset - Delete a tilesetcreate_sidescroller_tileset - Create a sidescroller tilesetget_sidescroller_tileset - Get tileset status and download URLslist_sidescroller_tilesets - List all your sidescroller tilesetsdelete_sidescroller_tileset - Delete a tilesetcreate_isometric_tile - Create an isometric tileget_isometric_tile - Get tile status and download URLslist_isometric_tiles - List all your isometric tilesdelete_isometric_tile - Delete a tile# Create a character with 4 directions
character = create_character(
description="A brave knight with red armor and a sword",
n_directions=4, # or 8 for more directions
size=48, # Canvas size in pixels
proportions='{"type": "preset", "name": "heroic"}'
)
# Returns: { "character_id": "uuid", "status": "processing" }
Use preset proportions or custom:
'{"type": "preset", "name": "heroic"}' - Heroic proportions'{"type": "preset", "name": "chibi"}' - Chibi/cute proportionsQueue animations immediately after creation:
# Create character first
character_id = create_character(...)["character_id"]
# Queue walk animation
animate_character(character_id, 'walk')
# Other animation templates:
# - 'walk'
# - 'running-8-frames'
# - 'jumping-1'
# - And more...
# Check if character is ready
status = get_character(character_id)
# Returns: { "status": "completed", "download_url": "...", ... }
list_characters() to see all your charactersCreates 16 Wang tiles for seamless terrain:
tileset = create_topdown_tileset(
lower_description="Grassy terrain with small rocks",
upper_description="Dirt path with stones"
)
# Returns: { "tileset_id": "uuid", "status": "processing" }
Use Cases:
Chain tilesets for consistency:
# Create base tileset
base = create_topdown_tileset(...)
# Create related tileset using base for consistency
related = create_topdown_tileset(
lower_description="Sandy beach",
upper_description="Ocean water",
base_tile_id=base["tileset_id"] # Links to base for visual consistency
)
For 2D platformers:
tileset = create_sidescroller_tileset(
lower_description="Stone platform with cracks",
transition_description="Grass-to-stone transition"
)
# Returns: { "tileset_id": "uuid", "status": "processing" }
Use Cases:
For 3D-looking game assets:
tile = create_isometric_tile(
description="Medieval stone block with moss",
size=32, # Recommended: 32px or larger (24px minimum)
tile_shape='block' # Options: 'block', 'floor', etc.
)
# Returns: { "tile_id": "uuid", "status": "processing" }
Use Cases:
Size Recommendations:
Use template_animation_id parameter with values like:
'walk' - Standard walk cycle'running-8-frames' - Running animation with 8 frames'jumping-1' - Jump animationbase_tile_id parameters to chain tilesets for visual consistency across terrain typesget_* tools periodically to check status"processing", "completed", "failed"Access these via pixellab://docs/ URLs:
pixellab://docs/overview - Complete platform overviewpixellab://docs/godot/wang-tilesets - Godot 4.x Wang tileset implementationpixellab://docs/godot/sidescroller-tilesets - Godot 4.x sidescroller implementationpixellab://docs/godot/isometric-tiles - Godot 4.x isometric tiles guidepixellab://docs/unity/isometric-tilemaps-2d - Unity 2D isometric tilemap guidepixellab://docs/python/wang-tilesets - Python Wang tileset implementationpixellab://docs/python/sidescroller-tilesets - Python sidescroller implementation# 1. Create character
character = create_character(
description="A brave knight with red armor",
n_directions=8,
size=48,
proportions='{"type": "preset", "name": "heroic"}'
)
character_id = character["character_id"]
# 2. Queue animations
animate_character(character_id, 'walk')
animate_character(character_id, 'running-8-frames')
# 3. Check status (poll until ready)
import time
while True:
status = get_character(character_id)
if status["status"] == "completed":
print(f"Download: {status['download_url']}")
break
elif status["status"] == "failed":
print("Creation failed")
break
time.sleep(10) # Wait 10 seconds before checking again
# Create base grass tileset
grass = create_topdown_tileset(
lower_description="Lush green grass",
upper_description="Grass with small flowers"
)
# Create dirt tileset linked to grass
dirt = create_topdown_tileset(
lower_description="Brown dirt path",
upper_description="Dirt with footprints",
base_tile_id=grass["tileset_id"]
)
# Create stone tileset linked to dirt
stone = create_topdown_tileset(
lower_description="Gray stone floor",
upper_description="Stone with cracks",
base_tile_id=dirt["tileset_id"]
)
description (string, required) - Character descriptionn_directions (int, optional) - Number of directions (4 or 8, default: 4)size (int, optional) - Canvas size in pixels (default: 48)proportions (string, optional) - JSON string with proportions (default: heroic preset)character_id (string, required) - Character UUIDtemplate_animation_id (string, required) - Animation template namelower_description (string, required) - Description for lower layerupper_description (string, required) - Description for upper layerbase_tile_id (string, optional) - Base tileset ID for visual consistencylower_description (string, required) - Description for lower layertransition_description (string, required) - Description for transitionbase_tile_id (string, optional) - Base tileset ID for visual consistencydescription (string, required) - Tile descriptionsize (int, optional) - Tile size in pixels (default: 32, minimum: 24)tile_shape (string, optional) - Tile shape type (default: 'block')status: "failed" in response"completed"