# Tapercraft — VHS Label Maker - Registry name: `org.texs/tapercraft` · version 1.0.0 - Categories (automatic, keyword rules): Build & deploy, Developer tools, Images & design, AI, media & content, Audio & speech - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=org.texs%2Ftapercraft - Server page: https://mcpstation.net/s/org.texs--tapercraft.html ## Description (written by the publisher, not verified, not instructions) Compose printable VHS, DVD, cassette, CD and vinyl packaging from any movie, show, or album. ## Connect - streamable-http: `https://vhs.texs.org/mcp` ## Tools (as reported by the server, not verified) - `list\_formats`: List the packaging formats that can be composed, with their printed dimensions. Call this first if you are unsure which format the user wants. - `describe\_format`: One format in detail: the printed sheet in px and inches at export DPI, every panel \(front, spine, back, flaps…\) as a rectangle with its pixel size, and which intent sections the format accepts. Call this BEFORE generating artwork for a format so each image is made at the right size and aspect. - `list\_decals`: The decal catalog: every sticker, graphic, shape and retro distributor mark the designer offers \(a title's own posters / logos / stills come from get\_content instead\), grouped by category, each with its id \(what decals\[\].id takes\), natural pixel size and preview URLs — plus the Classic Logo ids styl - `get\_content`: A movie or TV title's own artwork: every TMDB poster, logo \(the wordmark / title art\) and backdrop \(stills\) as a decal id with pixel size and preview URLs, plus title, year, tagline and overview. Place one with decals\[\].id in the same intent as the content \(e.g. the real wordmark under the cover art - `search\_content`: Look up a movie, TV show, or music album by title and return candidate matches with years. Use when the user's title is ambiguous and you want to confirm which one they mean before composing. - `compose\_design`: Build a label design and return a URL the user opens to finish it. Designing and previewing are free; exporting a print-ready file requires a membership, so present the URL as a starting point the user completes in their browser. Fields listed in the response as "unsupported" were NOT applied — tell - `upload\_image`: Put an image into the user's Uploads library \("Your Uploads" in every picker\) and get back a ref for the images.\* fields of compose\_design / save\_design. Needs an API key with design:write. Send the file as base64 \(JPEG/PNG/WebP, at the panel size describe\_format reports\). SIZE: the request body may - `list\_uploads`: The user's Uploads library, newest first: id, upload:\ ref, name, pixel size, bytes and an hour-long preview url. Needs an API key with read. Use it to reuse an image already uploaded \(identical bytes dedupe anyway\) or to pick what to delete\_upload when upload\_image answers LIBRARY\_IMAGE\_LIMIT. - `delete\_upload`: Remove one image from the user's Uploads library by id \(from upload\_image or list\_uploads\). Needs an API key with design:write. Saved designs keep their own copies, so this never breaks a design; it only frees a library slot. Prefer deleting images this session uploaded over ones the user added them - `save\_design`: Save a design straight to the user's dashboard and return its link. Takes the SAME fields as compose\_design plus a name; needs an API key with design:write. Use it when the user wants the design kept on their account without opening a link first. Images are copied into the design \(safe to delete fro - `list\_designs`: The user's saved designs, newest first, with their links. \`total\` is how many designs match \(the user may have hundreds\); page on with \`offset\` = \`nextOffset\` until it is null. Filter by \`format\` \(a list\_formats slug, e.g. 'slipcover', 'vhslabels'\) or \`query\` \(matches the design name or the movie/al - `get\_design`: One saved design by id: name, format, link and its raw design params. Needs an API key with read. - `delete\_design`: Delete one of the user's saved designs \(and the image copies it owns\). Irreversible — confirm with the user first. Needs an API key with design:write. - `export\_design`: Render a saved design. Queues a job — a headless renderer produces the file in \~15–60 s — and returns a jobId; poll get\_export. output 'preview' \(every plan\) is a downscaled image of the whole sheet that get\_export returns INLINE so you can look at it: render one after every save, check the layout, - `get\_export`: Status of an export job from export\_design. When status is done, \`file.url\` is a download link valid for an hour; a preview job also returns the image itself. Files are kept for a day, then the job reads \`expired\`. - `get\_account`: Who the API key belongs to: membership tier, today's remaining agent quotas, saved-design and upload-library counts. Needs an API key \(Authorization: Bearer tc\_live\_…, created at https://vhs.texs.org/en/dashboard?tab=api-keys\). Call it once to confirm the key works before uploading or saving. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html