Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for pixoo-mcp-server

Pod holds 21 of 44 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to pixoo-mcp-server.

Most discussed

bug(remote-image): https images depend on a writable temp dir and render unlike local files

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

fetchRemoteImageToTempPng (src/renderer/remote-image.ts) re-encodes every https download as a PNG in the OS temp dir so loadImage can read it, and pixoo_push_image and the pixoo_compose_scene image preload unlink it afterwards. The round trip costs three things: every remote source fails when the temp dir isn't writable,…

Read the thread · 2026-09-24 · closed · 4 comments

feat(text): report characters drawn as the ? fallback in standard and compact text

Use case

A caller renders 20 €, 9 ♥ 7×, or common typed punctuation (it’s, —) in the standard or compact font. Both faces draw the same characters, printable ASCII plus ° ← ↑ → ↓ ▲ ▼ ♥ · …; anything else, including a newline inside a single string or the invisible U+FE0F that often follows ♥, draws as ?, and nothing in the response says so. The caller only finds out by inspecting the preview image, which a model may not do closely enough to notice a single substituted…

Read the thread · 2026-09-27 · closed · 3 comments

bug(tools): Object.prototype names like constructor resolve as colors

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

constructor and __proto__, in any case, pass as colors. @cyanheads/pixoo-toolkit 0.8.2's resolveColor returns the inherited Object.prototype member instead of throwing (cyanheads/pixoo-toolkit#51), so every color input of pixoo_compose_scene, pixoo_display_text, and pixoo_overlay_text accepts them and draws black.…

Read the thread · 2026-09-26 · closed · 3 comments

bug(pixoo_overlay_text): x/y bounds hardcoded to 64 regardless of PIXOO_SIZE

Server version

1.0.0

mcp-ts-core version

0.10.6

Runtime

Bun

Runtime version

Bun 1.3.x

Transport

stdio

OS

macOS

Description

pixoo_overlay_text's x/y are .min(0).max(64) regardless of PIXOO_SIZE: one past the edge on a 64px display (last addressable index is 63), far off-canvas on a 16/32px device. Unlike pixoo_display_text and pixoo_compose_scene, which read getServerConfig() in their handlers, this tool never imports it.

The bound can't…

Read the thread · 2026-06-30 · closed · 3 comments

enhancement(pixoo_push_image): enforce fetch size cap during streaming

Use case

fetchRemoteImageToTempPng (src/renderer/remote-image.ts) — the single fetch path shared by pixoo_push_image and the scene image preloader — enforces its 10 MB cap (MAX_IMAGE_BYTES) only after the full response body is buffered: it checks content-length, then await resp.arrayBuffer(), then checks buf.byteLength. A response with no content-length header passes the pre-check and is buffered in full before the post-check fires, so a remote URL can force unbounded…

Read the thread · 2026-06-30 · closed · 3 comments

bug(pixoo_display_text): a scrolling line's layout box is not where its frame draws it

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

When single-line text is too wide for the panel, pixoo_display_text scrolls it and reports layout[0].action: "scrolling", but box.x is the centered placement, off the left edge. The static frame, the preview, and the scroll's starting position all draw the text from x = 0, so a caller reading box to place other content gets a column the…

Read the thread · 2026-09-27 · closed · 2 comments

bug(pixoo_compose_scene): image and icon w/h accept 0 and negatives

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

The pixoo_compose_scene image element declares w and h as z.number().int() with no lower bound, so 0 and negative values pass validation and reach sharp inside loadImage. The caller gets an unclassified internal error with no recovery hint. The icon element has the same gap: w: 0 renders nothing and reports success.…

Read the thread · 2026-09-26 · closed · 2 comments

bug(config): a relative PIXOO_OUTPUT_DIR reports relative outputFiles

Server version

1.2.2

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

PIXOO_OUTPUT_DIR accepts any string, and preview files are written to path.join(<dir>, <name>). A relative value such as previews saves under the server's working directory and reports relative outputFiles, while every render tool's output schema describes outputFiles as absolute paths. A caller can't resolve a relative path without…

Read the thread · 2026-09-27 · closed · 1 comment

Most recent

bug(pixoo_display_text): unknown keys in style, position, and background are dropped silently

Server version

1.2.2

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

pixoo_display_text rejects an unknown top-level key, but its nested objects are open: style and its custom palette stop, position, and both background object forms drop unknown keys silently. A misspelled key (style.colour, position.X, background.gradeint) renders as if it were absent. pixoo_compose_scene closes the same objects…

Read the thread · 2026-09-27 · closed · 1 comment

bug(pixoo_compose_scene): an element's effect is ignored when it also has animate

Server version

1.2.2

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

An element holding both effect and animate renders only its animate tracks: the scene renderer compiles effect only when animate is absent, so the effect is dropped with no error or notice. The design doc states one of effect or animate per element, but the element schemas accept both.

Steps to reproduce

  1. Call…

Read the thread · 2026-09-27 · closed · 1 comment

bug(tools): layout action misreports static overflow and advertises values no path returns

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

The layout[] output schema on pixoo_display_text and pixoo_compose_scene advertises values no path returns. action lists none, shrunk-to-compact, scrolling, wrapped, truncated, and clipped: pixoo_display_text returns only the first three, and pixoo_compose_scene returns only none, since scene elements are placed as given…

Read the thread · 2026-09-27 · closed · 1 comment

bug(pixoo_compose_scene): misspelled element keys are dropped silently

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

pixoo_compose_scene rejects an unknown top-level key, but every nested object drops unknown keys silently: each element type, style and its custom palette stop, effect, animate, a rect gradient, each pixels point, and the background objects. Only finish is closed. A misspelled key (colour, strokewidth, amplitud), a key the…

Read the thread · 2026-09-27 · closed · 1 comment

bug(image): relative image and sprite paths resolve against the server's working directory

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

pixoo_push_image source, and the pixoo_compose_scene image source and sprite path, are described as absolute local paths, but a relative path is accepted and resolved against the server process's working directory. A caller can't know that directory, so the same call finds a file or fails as asset_not_found depending on how the server…

Read the thread · 2026-09-27 · closed · 1 comment

bug(pixoo_compose_scene): asset_not_found never sends its declared recovery hint

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

pixoo_compose_scene declares asset_not_found with the recovery hint "Verify the file path exists and is readable, or check the URL is reachable.", but no path that raises it sends that hint: assertReadableAsset (src/renderer/scene-renderer.ts) writes its own ("Pass an absolute path to an existing, readable image file."), and the…

Read the thread · 2026-09-26 · closed · 1 comment

bug(keyframes): twinkle renders different frames for identical calls

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

The twinkle effect adds Math.random() jitter to each frame's brightness (src/renderer/keyframes.ts), so two identical pixoo_compose_scene calls render different frames. The tool declares idempotentHint: true, an agent comparing a preview with what it pushed a moment later sees different pixels, and any hash pin on a twinkling scene is…

Read the thread · 2026-09-26 · closed · 1 comment

bug(pixoo_display_text): layout reports fits:true for text off the top, left, or bottom

Server version

1.2.1

mcp-ts-core version

0.13.9

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

stdio

Description

pixoo_display_text reports layout[].fits: true for text that runs off the display. The single-line check compares only the text width to the panel (src/renderer/text-engine.ts), and the multi-line check tests only the right and bottom edges (pixoo-display-text.tool.ts), so text that is too tall, or placed above or left of the panel, still…

Read the thread · 2026-09-26 · closed · 1 comment

bug(keyframes): non-numeric track values are accepted, then render wrong or fail unclassified

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

The pixoo_compose_scene animate schema accepts any string as a keyframe value, and the renderer reads opacity, dx and dy with Number(). A non-numeric string therefore becomes NaN and is never rejected. visible reads with Boolean(), so "false" keeps the element shown. Related: #45.

Steps to reproduce

1.…

Read the thread · 2026-09-26 · closed · 1 comment

bug(keyframes): numeric-string keyframes hold or draw fully opaque between keyframes

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

interpolateKeyframe treats every pair of strings as colors. A numeric-string opacity, dx or dy keyframe that isn't a color holds its first value instead of ramping. One that looks like a hex color ("000", "100", "123456") lerps to #rrggbb, which reads as NaN, so the element draws fully opaque between keyframes.…

Read the thread · 2026-09-26 · closed · 1 comment

bug(pixoo_compose_scene): effect amplitude is ignored by pulse and twinkle

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

The pixoo_compose_scene effect amplitude is described as "0–1 scale for fade/pulse", but only float, scroll-left/scroll-right and drift read it. The other effects ignore it:

Steps to reproduce…

Read the thread · 2026-09-26 · closed · 1 comment

bug(keyframes): an invalid color keyframe past the last frame is never reported

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

When a color keyframe doesn't resolve, interpolateKeyframe (src/renderer/keyframes.ts) holds the previous color. The bad keyframe errors only on its own frame, so a typo in a keyframe past the scene's last frame is never reported.

Steps to reproduce

  1. Call pixoo_compose_scene with push: false, frames: 2, and one…

Read the thread · 2026-09-26 · closed · 1 comment

bug(pixoo_compose_scene): stroke-drawn icons lose their glyphs

Server version

1.2.0

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

Bun 1.4.2

Transport

HTTP (Streamable HTTP)

Description

Several registry icons are drawn as strokes, but the icon element fills every path with the even-odd rule. A two-point subpath has no area, so those strokes vanish:

Read the thread · 2026-09-26 · closed · 1 comment

The remaining reports are on the project's issue tracker.