Skip to content

Add appscreen MCP server#1

Merged
flocom merged 1 commit into
mainfrom
feat/mcp-server
Jun 7, 2026
Merged

Add appscreen MCP server#1
flocom merged 1 commit into
mainfrom
feat/mcp-server

Conversation

@flocom

@flocom flocom commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

Adds an MCP (Model Context Protocol) server under mcp-server/ that generates App Store / Play Store / web marketing screenshots server-side — a Node port of appscreen's 2D rendering pipeline (app.js) using @napi-rs/canvas, no browser required.

What it does

  • Tools: list_output_sizes, list_gradient_presets, generate_screenshot, generate_batch
  • Transports: stdio (default) and Streamable HTTP (--http / MCP_TRANSPORT=http)
  • Faithful to app.js — reuses the same output sizes, the 25 gradient presets, and the exact background / placement / text / element / popout maths, in the app's layer order.

Parameter coverage

  • Background: gradient (preset / raw CSS / explicit), solid, image (cover/contain/stretch, blur, overlay) + noise
  • Screenshot: scale, position, rotation, perspective, corner radius, drop shadow, device frame
  • Text: headline + subheadline with full styling, plus per-language texts maps selected by language
  • elements[]: text / emoji / icon / graphic on any z-layer, with laurel / badge / star frames
  • popouts[]: cropped zoom callouts of the screenshot
  • layout.avoidTextOverlap: measures the text block and constrains the screenshot to the free band so the headline never overlaps the image, whatever the line count

Notes

  • Self-contained: nothing outside mcp-server/ is touched; node_modules/, dist/ and local example output are gitignored.
  • 3D device mockups (Three.js/WebGL) are intentionally out of scope — they can't be rendered reliably headless; the full 2D pipeline is covered.

🤖 Generated with Claude Code

A Model Context Protocol server that generates App Store / Play Store / web
marketing screenshots server-side — a Node port of appscreen's 2D rendering
pipeline using @napi-rs/canvas (no browser).

- Tools: list_output_sizes, list_gradient_presets, generate_screenshot,
  generate_batch
- Transports: stdio (default) and Streamable HTTP (--http / MCP_TRANSPORT=http)
- Full parameter coverage faithful to app.js: gradient/solid/image backgrounds
  with noise, screenshot placement (scale/position/rotation/perspective/corner
  radius/shadow/device frame), headline + subheadline text, free-floating
  elements (text/emoji/icon/graphic) with laurel/badge/star frames across all
  three z-order layers, cropped "popout" callouts, and multi-language text maps
- layout.avoidTextOverlap: measures the text block and constrains the screenshot
  to the free band so text never overlaps the image regardless of line count

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@flocom
flocom merged commit c3ad05e into main Jun 7, 2026
@flocom
flocom deleted the feat/mcp-server branch June 7, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant