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
- 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:
pulsealways ramps opacity 50–100.twinklealways flickers 40–100.fade-in,fade-outandblinkignore 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
- Call
pixoo_compose_scenewithpush: 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:
snowdraws nothing.- The arrows lose their shafts, and
sunloses its rays. x-circle,alert-circleandinforender as plain disks.check-circle's…
Read the thread · 2026-09-26 · closed · 1 comment
The remaining reports are on the project's issue tracker.