PixelLab Forge MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PIXELLAB_API_KEY | Yes | Your PixelLab API key — get one at pixellab.ai/account |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_balanceA | Get your current PixelLab credit balance |
| get_job_statusA | Check the status of a background job and retrieve its results when complete. All creation tools return a job_id immediately — use this tool to poll for completion and get the generated images/data. |
| list_pending_jobsA | List background jobs that were started but haven't completed yet. Use this to recover jobs after a disconnection or timeout. |
| list_job_historyA | List recent job history (completed, failed, and pending). Jobs are pruned after 24 hours. |
| generate_imageA | Generate pixel art from a text description. PRIMARY generation tool — use this for standalone sprites, icons, and one-off images. 16-512px. Variants by size: ≤42px → 64, 43-85px → 16, 86-170px → 4, >170px → 1. For style-matched sets use generate_with_style. For game characters with directional views use create_character_4dir/8dir instead. For UI elements use generate_ui. |
| generate_with_styleA | Generate pixel art matching a specific visual style from 1-4 style reference images. Use this when you need consistent style across multiple assets. SQUARE images only, 16-512px. Auto-pads to nearest bucket (16/32/64/128/256/512). Variants: 16-32px → 64, 33-64px → 16, 65-128px → 4, 129-512px → 1. |
| generate_uiA | Generate pixel art UI elements for games — buttons, panels, health bars, inventory slots, icons, frames. Use this instead of generate_image when creating interface/HUD elements. Min 16x16, max 512x512. |
| create_image_pixfluxA | Generate pixel art using the legacy Pixflux engine. 32-400px. Prefer generate_image (v2) for most tasks — use Pixflux only when you need fine-grained control over outline/shading/detail style params, view/direction, or coverage_percentage. |
| create_image_bitforgeA | Generate pixel art using the legacy Bitforge engine. Max 200x200. Prefer generate_image (v2) for most tasks — use Bitforge only when you need inline skeleton keypoints, combined inpainting+generation, or style_image influence control in a single call. |
| create_image_pixenA | Generate pixel art using the Pixen engine. Width/height 16-768px each but max area 512x512, and both must be divisible by 4. Supports outline/detail style hints, view/direction, and optional prompt enhancement. A modern alternative to generate_image with finer outline/detail control. |
| create_image_pixflux_backgroundA | Generate a seamless/background image using the Pixflux engine. Same parameters as create_image_pixflux but tuned for backgrounds and environments rather than isolated sprites. |
| image_to_pixelartA | Convert a photograph or regular image into pixel art. Input 16-1280px, output 16-320px. Recommended: output = 1/4 of input size. |
| image_to_pixelart_proA | Convert a photograph or regular image into pixel art using the Pro engine. The model derives output size from the input — you only supply the source image and optional style instructions. Higher quality than image_to_pixelart but less manual size control. |
| resize_imageA | AI-powered resize of a pixel art image to a different resolution while preserving quality. Source and target 16-200px. Best in steps: max 50% shrink or 2x grow per operation. |
| remove_backgroundC | Remove the background from a pixel art image (max 400x400). |
| edit_animationA | Edit an existing animation sequence (2-16 frames) using a text description. 16-256px. Use this to modify animations you already have — to create new animations from scratch use animate_with_text_v2 or animate_character. |
| interpolate_framesA | Generate intermediate animation frames between a start and end keyframe. 16-128px. Use this to smooth out animations by adding in-between frames. For full animation creation from a single image use animate_with_text_v2. |
| transfer_outfitA | Transfer an outfit/costume from a reference image onto animation frames (2-16 frames, 32-256px). Use this to reskin an existing animation with a different character appearance. |
| animate_with_skeletonA | Create animation using skeleton keypoints for precise joint/pose control. Fixed sizes only: 16, 32, 64, 128, or 256px. Use this when you need exact body positioning per frame. For simpler text-described animation use animate_with_text_v2. |
| animate_with_textA | Legacy animation from text description + reference image. FIXED 64x64 only. Prefer animate_with_text_v2 (any size 32-256px) or animate_with_text_v3 (keyframe-based) for new work. Use animate_character if you already have a saved character ID. |
| animate_with_text_v2A | RECOMMENDED animation tool — animate a character image with a text-described action. Provide a reference image + action text. 32-256px. Frames by size: 32-64px → 16, 128-256px → 4. Use this when you have a character image but NOT a saved character ID. If you have a character ID, use animate_character instead. |
| animate_with_text_v3A | Keyframe-based animation — provide a first frame and optional last frame, get interpolated animation. Best for precise start/end control. 4-16 frames, max 256px. Pixel budget: W×H×frames ≤ 524,288. Use animate_with_text_v2 instead if you just want to describe an action. |
| estimate_skeletonB | Estimate skeleton keypoints from a character image. |
| generate_8_rotationsA | Generate 8 directional views from an existing image, style, or concept art. 32-168px. Does NOT create a persistent character — for that use create_character_8dir instead. Methods: rotate_character (from existing sprite), create_with_style (from description), create_from_concept (from concept art). |
| generate_8_rotations_v3A | Generate 8 directional rotations from a single source frame using the v3 model. Simpler than generate_8_rotations — just provide one image and the model produces all 8 views. Does NOT create a persistent character; use create_character_8dir for that. |
| rotateA | Rotate a single character sprite from one view/direction to another. Fixed sizes only: 16, 32, 64, or 128px. For generating all 8 directions at once use generate_8_rotations or create_character_8dir instead. |
| inpaint_v3A | Edit a specific region of a pixel art image using a mask. White mask = generate, black mask = preserve. Image 32-512px, optional context image up to 1024x1024. Preferred over legacy inpaint (which caps at 200px). |
| inpaintA | Legacy inpainting using the Bitforge engine. Max 200x200. Prefer inpaint_v3 (up to 512px, better quality). Only use this if you need Bitforge-specific params like style controls or oblique projection during inpainting. |
| edit_imagesA | Batch-edit 1-16 images consistently using text or a reference image. Use this for editing animation frames or sprite sets uniformly. Output 32-512px, input max 256px each. Max frames by output size: 32-64px → 16, 65-80px → 9, 81-128px → 4, 129-512px → 1. For single image edits use edit_image instead. |
| edit_imageA | Edit a single image globally using a text description (e.g. 'add a hat', 'change colors'). 16-400px. For editing a specific REGION use inpaint_v3 with a mask instead. For batch-editing multiple images at once use edit_images. |
| create_tilesetA | Create a TOP-DOWN tileset with base terrain, elevated terrain, and transitions (16x16 or 32x32 tiles). Outputs 16-23 seamless tiles. Use this for RPG/strategy maps. For platformer/sidescroller games use create_tileset_sidescroller. For isometric games use create_isometric_tile or create_tiles_pro. |
| get_tilesetB | Get a previously created tileset by ID. |
| list_tilesetsB | List your previously created tilesets with pagination. |
| delete_tilesetA | Delete a top-down tileset by ID. For sidescroller tilesets use delete_tileset_sidescroller. |
| create_tileset_sidescrollerA | Create a SIDESCROLLER/PLATFORMER tileset with terrain and transitions (16x16 or 32x32 tiles). Side-view perspective only. Use this for platformer games. For top-down RPG maps use create_tileset instead. |
| get_tileset_sidescrollerA | Get a previously created sidescroller tileset by ID. For top-down tilesets use get_tileset. |
| list_tilesets_sidescrollerA | List your sidescroller tilesets with pagination. For top-down tilesets use list_tilesets. |
| delete_tileset_sidescrollerA | Delete a sidescroller tileset by ID. For top-down tilesets use delete_tileset. |
| create_isometric_tileA | Create an isometric tile. Size 16x16 to 64x64 (best quality >24px). For other tile types (hex, octagon, square_topdown) use create_tiles_pro instead. |
| get_isometric_tileA | Get a previously created isometric tile by ID. |
| list_isometric_tilesB | List your previously created isometric tiles with pagination. |
| delete_isometric_tileB | Delete an isometric tile by ID. |
| create_tiles_proA | Create professional tiles. Types: hex, hex_pointy, isometric, octagon, square_topdown. Size 16-128px (32px recommended). |
| get_tiles_proB | Get previously created pro tiles by ID. |
| list_tiles_proB | List your previously created pro tiles with pagination. |
| delete_tiles_proB | Delete a pro tile by ID. |
| create_map_objectA | Generate a single-view map object (tree, rock, chest, etc.) with transparent background. Use this for environment/prop assets that don't need multiple directions. For objects with 4 directional views use create_object_4dir. For characters use create_character_4dir/8dir. |
| get_map_objectA | Get a map object's status and metadata by ID (from create_map_object). |
| create_character_4dirA | Create a PERSISTENT game character with 4 directional views (N/S/E/W). 32-168px. Returns a character_id that can be reused with animate_character for animations. Use this for game characters that need multiple directions and animations. For 8 directions use create_character_8dir. For one-off sprites without persistence use generate_image. |
| create_character_8dirA | Create a PERSISTENT game character with 8 directional views (N/NE/E/SE/S/SW/W/NW). 32-168px. Returns a character_id for use with animate_character. Use this for top-down or isometric games needing diagonal directions. For 4-direction games use create_character_4dir. |
| animate_characterB | Animate a SAVED character by ID using a preset animation template (walk, run, attack, etc). Requires a character_id from create_character_4dir/8dir. Uses the character's existing size. If you only have an image (not a saved character), use animate_with_text_v2 instead. |
| create_character_v3A | Create a character using the v3 model. Two modes: provide a south-facing reference_image to rotate that exact character, or omit it to generate from scratch via description. Output 32-256px (advisory in reference mode). Returns a character_id. The newest character generator — prefer over create_character_4dir/8dir for best quality. |
| create_character_proB | Create a character or object using the Pro engine. Output 32-168px. Methods: create_with_style (text-driven, optional style reference_image), create_from_concept (from a concept_image up to 1024x1024), rotate_character. Returns a character_id. |
| create_character_stateA | Create a new state/variant of an existing character by editing it with a text description (e.g. 'wearing armor', 'damaged'). Requires a source character_id. Optionally snap the edit to the source character's color palette for visual consistency. |
| create_character_animationA | Animate a SAVED character by ID with flexible modes. mode='template' uses a skeleton-based template_animation_id; mode='v3' interpolates frames from a custom action_description (4-16 frames); mode='pro' is the pro animator. More flexible than animate_character, which is template-only. Requires a character_id. |
| list_charactersA | List your created characters with pagination. |
| get_characterA | Get a character by ID including all directional views and animations. |
| delete_characterC | Delete a character by ID. |
| download_character_zipA | Download a character as a ZIP file with all sprites and metadata. Saves it to the pixellab-forge-output directory and returns the file path. |
| update_character_tagsA | Update tags on a character (max 20 tags, 50 chars each). |
| delete_character_animationsA | Delete animations from a character. Omit all optional filters to delete every animation; pass animation_type and/or animation_group_id (both shown by get_character) to narrow it, and direction to remove a single direction only. |
| create_object_1dirA | Create a persistent single-direction object. Square size 32-256px (default 64). view 'top-down' or 'sidescroller'. Optionally pass style_images for visual reference. Larger sizes may yield multiple objects (use item_descriptions to label each). For an object rotatable to 8 directions use create_object_8dir. For single-view non-persistent props use create_map_object. |
| create_object_8dirA | Create a persistent object with 8 directional views. Square size 32-256px (default 64). view 'low top-down', 'high top-down', or 'side'. Provide reference_image to rotate that exact object, OR style_image to generate a new object in that style (mutually exclusive). For a single-direction object use create_object_1dir. |
| animate_objectA | Animate a SAVED object by ID. mode='v3' (default, higher quality, supports custom_start_frame/end_frame interpolation) or 'pro'. Do NOT pass directions for 1-direction objects; for 8-direction objects pass the directions to animate. Requires an object_id from create_object_1dir/8dir. |
| create_object_stateB | Create a new state/variant of an existing object by editing it with a text description (e.g. 'open chest', 'broken'). Requires a source object_id. |
| select_object_framesB | From an object that generated multiple candidate frames, keep specific frames (by 0-based index) as completed individual objects. Optionally tag all newly-created objects. |
| dismiss_object_reviewB | Dismiss the review state on an object, accepting it as-is without selecting specific frames. Takes no body beyond the object_id. |
| list_objectsC | List your created objects with pagination. |
| get_objectC | Get an object by ID. |
| delete_objectC | Delete an object by ID. |
| update_object_tagsC | Update tags on an object. |
| delete_object_animationsA | Delete animations from an object. Omit all optional filters to delete every animation; pass animation_type and/or animation_group_id (both shown by get_object) to narrow it, and direction to remove a single direction only. |
| create_ui_assetA | Generate a shape-based pixel-art UI panel (Pro) from a text description — a persistent, saved UI asset (distinct from generate_ui, which is a one-shot generator). Returns a job_id and a ui_asset_id immediately; poll get_job_status or get_ui_asset until ready. Optionally scaffold the panel from named UI elements or a custom shape template. |
| list_ui_assetsA | List your saved UI panels (newest first), with pagination. Includes ghost rows for panels still generating. |
| get_ui_assetB | Get a UI panel's details by ID. Reports progress while the panel is still generating. |
| delete_ui_assetA | Permanently delete a UI panel and its backing image files. |
| generate_font_proA | Generate a styled pixel-art font (Pro) from a text description. Produces a glyph atlas plus a ready-to-use TrueType (.ttf) font. Returns a job_id immediately — poll get_job_status for the result. |
| get_font_pro_jobA | Get the status and result of a generate_font_pro job by its job_id. Use this rather than get_job_status for font-pro jobs — they are served from a dedicated endpoint. |
| portrait_character_proA | Convert between a bust portrait and a full-body character sprite (Pro). direction='portrait_to_character' takes a portrait in and returns a full-body sprite; 'character_to_portrait' does the reverse. Returns a job_id immediately — poll get_job_status for the result. |
| get_portrait_character_pro_jobA | Get the status and result of a portrait_character_pro job by its job_id. Use this rather than get_job_status for portrait↔character jobs — they are served from a dedicated endpoint. |
| enhance_character_promptA | Expand a short character description into a richer, more detailed prompt for create_character_v3. Returns enhanced text — does not generate an image. Use this to preview/refine a prompt before generating. |
| enhance_animation_promptA | Expand a short action description into a richer motion prompt for animate_with_text_v3. Provide the first frame (and optional last frame for interpolation). Returns enhanced text — does not generate frames. |
| enhance_pixen_promptA | Expand a short image description into a richer prompt for create_image_pixen. Returns enhanced text — does not generate an image. |
| read_imageA | Read a previously saved image from disk and return it as a Base64Image object that can be passed directly to other tools (e.g. edit_image, remove_background, image_to_pixelart). Use the file paths shown in earlier tool responses. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| pf:help | Overview of PixelLab Forge tools and how to use them |
| pf:character | Create a pixel art character with directional views and optional animation |
| pf:tileset | Create a tileset for a top-down or platformer game |
| pf:tiles | Create hex, isometric, or octagon tiles for strategy or isometric games |
| pf:sprite | Generate a pixel art sprite from a description |
| pf:ui | Generate pixel art UI elements for a game |
| pf:animate | Animate an existing sprite or character image |
| pf:style | Generate new art matching the style of existing sprites |
| pf:edit | Edit or modify an existing pixel art image |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rabbitcannon/pixellab-forge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server