Tapercraft — VHS Label Maker
Compose printable VHS, DVD, cassette, CD and vinyl packaging from any movie, show, or album.
Connect it
Settings → Connectors → Add custom connector
URL: https://vhs.texs.org/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://vhs.texs.org/mcp{
"mcpServers": {
"tapercraft": {
"url": "https://vhs.texs.org/mcp"
}
}
}claude mcp add --transport http tapercraft https://vhs.texs.org/mcp{
"servers": {
"tapercraft": {
"type": "http",
"url": "https://vhs.texs.org/mcp"
}
}
}16 tools, verified live
list_formatsread-onlyList the packaging formats that can be composed, with their printed dimensions. Call this first if you are unsure which format the user wants.
describe_formatread-onlyOne 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_decalsread-onlyThe 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 style.productionLogos takes. Call it before placing decals; ids are exact strings, never guessed. Pass a
get_contentread-onlyA 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, a still on the back) — sized by width like any decal. Ids come from search_content.
search_contentread-onlyLook 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_designread-onlyBuild 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 the user rather than reporting them as done. The user's own artwork goes in through `images` (uploa
upload_imagePut 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 not exceed 4.5 MB, so keep the base64 under 3 MB (~2.2 MB of image); a file up to 4 MB goes through
list_uploadsread-onlyThe user's Uploads library, newest first: id, upload:<id> 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_uploadcan modifyRemove 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 themselves.
save_designSave 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 from the library afterwards). The preview thumbnail and the frozen content snapshot are captured the fi
list_designsread-onlyThe 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/album title). Needs an API key with read.
get_designread-onlyOne saved design by id: name, format, link and its raw design params. Needs an API key with read.
delete_designcan modifyDelete 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_designRender 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, cover art, text sizes and colours against what the user asked for, fix the intent and save again bef
get_exportread-onlyStatus 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_accountread-onlyWho 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.
Alternatives in Other
Compare →
TracePassB
Manage products, EU Digital Product Passports, operator parties, and GS1 EPCIS supply-chain events.
MBmailbox.botB
Hosted mailbox.bot postal MCP. $15/mo mailboxes are live now.
MAMacfaxB
Identify any Apple serial and read its device record, plus used-Mac prices, listings and checks.
KNKenwea NotaryB
Signed, traced record of what an npm package or file attempts when run, network included. No key.
ABaboardB
Falsifiable claims about systemic problems: causal graph, forecasts, dossiers.
BBBible by MidvashB
Free, no-key Bible MCP server — 86 translations in 32 languages, from any MCP client.