Skip to content

Releases: rabbitcannon/pixellab-forge-mcp

v1.7.0

Choose a tag to compare

@rabbitcannon rabbitcannon released this 15 Aug 00:09
59ee017

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 frame vocal_animation generates from.

Changed

  • README tool tables gained a Talking Animation section; tool count now reads 89.

v1.6.0

Choose a tag to compare

@rabbitcannon rabbitcannon released this 25 Jul 20:36
720b583

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_object
  • delete_character_animations / delete_object_animations — all animations by default, or scoped via animation_type, animation_group_id, direction
  • get_font_pro_job / get_portrait_character_pro_job — dedicated endpoints that get_job_status does not resolve

See CHANGELOG.md for details.

v1.5.0

Choose a tag to compare

@rabbitcannon rabbitcannon released this 03 Jul 01:20
7ef326a

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 POST responses now carry through any resource id the endpoint returns alongside
    the job id (e.g. create_ui_asset echoes ui_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

Choose a tag to compare

@rabbitcannon rabbitcannon released this 13 Jun 22:39
27cdbfb

Fixed

  • The MCP server now reports its real version from package.json in the handshake (serverInfo.version) instead of a hardcoded 1.2.0 — so clients and claude mcp list show the actual running version.

Mirrored to GitHub Packages as @rabbitcannon/pixellab-forge-mcp@1.4.3.

v1.4.2

Choose a tag to compare

@rabbitcannon rabbitcannon released this 13 Jun 22:02
69d4a64

Bug fix + hardening release. Reimplements ideas from #1 (credit: @ultimatefrisbie1) cleanly across all tools, with tests.

  • Fix download_character_zip — it called res.json() on a binary ZIP (broken on every call). Now downloads binary via getBinary(), saves to pixellab-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_path image arguments — any image arg can carry a file_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

Choose a tag to compare

@rabbitcannon rabbitcannon released this 13 Jun 21:36
2a76d4b

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: normalized bin and repository fields

Mirrored to GitHub Packages as @rabbitcannon/pixellab-forge-mcp@1.4.1 via CI.

v1.4.0

Choose a tag to compare

@rabbitcannon rabbitcannon released this 13 Jun 21:05
c87b5a5

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_4dir removed — it posted to /create-object-with-4-directions, which does not exist in the API. Replaced with create_object_1dir (/create-1-direction-object) and create_object_8dir (/create-8-direction-object) using the correct size and 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 shared jobs.json.

Full PR: #2

v1.3.1

Choose a tag to compare

@rabbitcannon rabbitcannon released this 15 Apr 20:19

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_pro schema: capped tile_size and tile_height at 128px (was incorrectly 256)
  • Clarified fixed-size-only constraints for rotate (16/32/64/128) and animate_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

Choose a tag to compare

@rabbitcannon rabbitcannon released this 09 Apr 00:41

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_image tool — 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_bytes format
  • get_job_status now resolves the original prompt description for meaningful filenames

v1.2.1

Choose a tag to compare

@rabbitcannon rabbitcannon released this 07 Apr 02:12

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_status description 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