Releases: rabbitcannon/pixellab-forge-mcp
Release list
v1.7.0
Added
5 new tools covering the talking-animation family and character portraits (84 → 89), closing the last gaps against the v2 OpenAPI spec:
vocal_animation+get_vocal_animation_job— generate the mouth-position ("viseme") set for a portrait or saved character. The only talking-animation step that costs generations; results stream in while the job runs.talking_gif— turn a line of text into an animated GIF of the character speaking it (free; re-orders visemes already produced).lip_sync— frame-by-frame mouth plan for driving lips in a game engine (free, nothing rendered).set_character_portrait— attach a bust portrait to a saved character (free), the starting framevocal_animationgenerates from.
Changed
- README tool tables gained a Talking Animation section; tool count now reads 89.
v1.6.0
Completes coverage of the documented PixelLab v2 API — 72 → 84 tools. All 12 additions are retrieval or cleanup routes; every generation endpoint was already covered.
New tools
- Deletion:
delete_tileset,delete_tileset_sidescroller,delete_isometric_tile,delete_tiles_pro - Sidescroller tilesets:
get_tileset_sidescroller,list_tilesets_sidescroller(previously create-only) list_tiles_pro,get_map_objectdelete_character_animations/delete_object_animations— all animations by default, or scoped viaanimation_type,animation_group_id,directionget_font_pro_job/get_portrait_character_pro_job— dedicated endpoints thatget_job_statusdoes not resolve
See CHANGELOG.md for details.
v1.5.0
Adds the 6 remaining PixelLab v2 Pro API endpoints, bringing tool coverage to full parity (66 → 72 tools).
Added
- UI assets — persistent shape-based UI panels (distinct from the one-shot
generate_ui):
create_ui_asset,list_ui_assets,get_ui_asset,delete_ui_asset generate_font_pro— generate a styled pixel-art font (glyph atlas +.ttf)portrait_character_pro— convert between a bust portrait and a full-body character sprite- Async
POSTresponses now carry through any resource id the endpoint returns alongside
the job id (e.g.create_ui_assetechoesui_asset_id).
Changed
- Bumped dev/runtime dependencies (
zod,@types/node,typescript,vitest).
All tool schemas verified against the OpenAPI spec. Tests: 103 passing.
v1.4.3
Fixed
- The MCP server now reports its real version from
package.jsonin the handshake (serverInfo.version) instead of a hardcoded1.2.0— so clients andclaude mcp listshow the actual running version.
Mirrored to GitHub Packages as @rabbitcannon/pixellab-forge-mcp@1.4.3.
v1.4.2
Bug fix + hardening release. Reimplements ideas from #1 (credit: @ultimatefrisbie1) cleanly across all tools, with tests.
- Fix
download_character_zip— it calledres.json()on a binary ZIP (broken on every call). Now downloads binary viagetBinary(), saves topixellab-forge-output/, and returns{ file_path, size_bytes }. - Strip base64 from error responses across all HTTP methods, so failures don't flood context with image data.
- Validate + URL-encode all path-segment ids (characters/objects, including the v1.4.0 object animation/state endpoints) to prevent path traversal / injection.
file_pathimage arguments — any image arg can carry afile_path(resolved from disk, confined to the output dir / workspace root) instead of inline base64.
Tests: 78 → 101 passing. Mirrored to GitHub Packages as @rabbitcannon/pixellab-forge-mcp@1.4.2.
v1.4.1
Docs/packaging-only patch — no functional code changes.
Republishes to keep the npmjs.org package page in sync (its 1.4.0 tarball predated these doc updates, and npm versions are immutable):
- README: full 66-tool list + npm registry note
package.json: normalizedbinandrepositoryfields
Mirrored to GitHub Packages as @rabbitcannon/pixellab-forge-mcp@1.4.1 via CI.
v1.4.0
Adds 19 missing PixelLab v2 API tools, fixes a dead tool, and resolves a flaky-test race. Tool count 48 → 66; suite 78 passing.
New tools (verified against the v2 OpenAPI spec)
- Image gen:
create_image_pixen,create_image_pixflux_background,image_to_pixelart_pro - Rotation:
generate_8_rotations_v3 - Characters:
create_character_v3,create_character_pro,create_character_state,create_character_animation - Objects:
create_object_1dir,create_object_8dir,animate_object,create_object_state,select_object_frames,dismiss_object_review - Prompt enhancement:
enhance_character_prompt,enhance_animation_prompt,enhance_pixen_prompt - Listing:
list_tilesets,list_isometric_tiles
Fixes
create_object_4dirremoved — it posted to/create-object-with-4-directions, which does not exist in the API. Replaced withcreate_object_1dir(/create-1-direction-object) andcreate_object_8dir(/create-8-direction-object) using the correctsizeand reference/style image fields.- Flaky job-log tests — log path is now overridable via
PIXELLAB_JOB_LOG_DIR(resolved lazily), so parallel test files no longer race on a sharedjobs.json.
Full PR: #2
v1.3.1
Improved tool descriptions for better LLM routing
- All tool descriptions now include accurate size constraints verified against the OpenAPI spec
- Added routing guidance ("use this when... / prefer X instead") so LLMs pick the right tool for each task
- Fixed
create_tiles_proschema: cappedtile_sizeandtile_heightat 128px (was incorrectly 256) - Clarified fixed-size-only constraints for
rotate(16/32/64/128) andanimate_with_skeleton(16/32/64/128/256) - Marked legacy tools (
animate_with_text,inpaint,create_image_pixflux,create_image_bitforge) with guidance to prefer v2/v3 alternatives
v1.3.0
What's New
- RGBA→PNG conversion — Images from the PixelLab API (returned as raw
rgba_bytes) are now properly encoded as PNG before saving. Previously saved files were corrupted. read_imagetool — Read a previously saved image from disk and return it as a Base64Image object for chaining into other tools (edit_image, remove_background, etc.).- Prompt-based filenames — Saved images are now named from the generation prompt (e.g.
glowing_purple_potion_bottle_0_1775...png) instead of the tool name. - 48 tools (was 47)
Fixes
- Fixed all saved images being 0-byte / corrupted when the API returns
rgba_bytesformat get_job_statusnow resolves the original prompt description for meaningful filenames
v1.2.1
Non-blocking background jobs & image handling fixes
Breaking change in behavior: All creation/generation endpoints now return immediately with a job_id instead of blocking while polling for completion (which could take up to 20 minutes and crash the MCP connection). Use get_job_status to check progress and retrieve results — matching the official PixelLab MCP server pattern.
Changes
- Remove blocking
pollJob()from api-client — 202 responses return job ID immediately - Update
get_job_statusdescription to clarify it's the primary way to retrieve results - Add base64 image validation (PNG/JPEG/WebP/GIF magic byte checks)
- Add MIME type auto-detection for inline image blocks
- Limit inline images to 4 per response (all still saved to disk)
- Clean base64 strings (strip data URI prefixes, whitespace)
- Add debug logging to stderr