Tapercraft — VHS Label Maker

org.texsPublished by texs.orgOfficial publisherv1.0.0Updated Oct 24, 2026

Compose printable VHS, DVD, cassette, CD and vinyl packaging from any movie, show, or album.

VerifiedStreamable HTTPWeb executableMedia & Design

Overview

AI-generated overview

Lets an assistant compose printable VHS, DVD, cassette, CD and vinyl packaging artwork from a movie, show, or album.

What you can do
Tapercraft generates print-ready packaging designs for physical media formats including VHS, DVD, cassette, CD and vinyl. An assistant can supply a movie, show, or album and receive composed label and cover artwork for printing. The registry description presents it as a design/composition tool rather than a media library or catalog.
When to use it
Useful when someone wants custom or replacement artwork for physical media — a VHS sleeve, cassette J-card, CD insert, or vinyl cover — and wants an assistant to produce it from a title. Not intended for browsing media metadata or managing a collection.
Requirements
Runs as a remote streamable HTTP endpoint at no local package, environment variables, or headers are declared. The manifest declares no authentication, so no credentials appear to be needed. Network access to the endpoint is required.
Before you install
The manifest declares no authentication, so requests to the remote endpoint are not tied to an account or key. Output is generated artwork; verify print dimensions and content before printing or distributing. No payment, wallet, or write/delete behavior is described in the available input.

Installation

In SourceWeft

  1. Open Tapercraft — VHS Label Maker in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/org.texs%2Ftapercraft/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tapercraft-vhs-label-maker": {
      "type": "http",
      "url": "https://vhs.texs.org/mcp"
    }
  }
}

Tools

16

list_formats

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.

Takes no parameters.

describe_format

Describe a 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.

Parametersformatrequired

list_decals

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 style.productionLogos takes. Call it before placing decals; ids are exact strings, never guessed. Pass a category id to get one category, or a query to search names.

Parametersquerycategory

get_content

Get title artwork

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, a still on the back) — sized by width like any decal. Ids come from search_content.

Parametersidrequiredtyperequired

search_content

Search movies, shows and albums

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.

Parameterstyperequiredqueryrequired

compose_design

Compose a 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 the user rather than reporting them as done. The user's own artwork goes in through `images` (upload it first with upload_image; needs an API key): `images.background` covers the whole sheet, `images.panels.<key>` one panel each (keys from describe_format), `images.logo` a custom studio logo. `decals` places catalog stickers / shapes / retro marks (ids from list_decals) or the user's uploads anywhere on the sheet, `texts` adds free text blocks, `style.productionLogos` picks the studio marks (`style.productionLogoColorize: 'off'` keeps their own colours), and `layout.hide: ["poster"]` clears the cover art — enough to rebuild a specific vintage cover. Without a key, compose from format + content and tell the user to drag images in after opening the URL.

Parameterstextstyletextsdecalsformatrequiredimageslayoutcontent

upload_image

Upload an 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 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 POST https://vhs.texs.org/api/v1/uploads as multipart instead — re-encode as JPEG quality 80–85 before either. Identical bytes already in the library return the existing item instead of a copy. The library has a per-plan image count (get_account → uploads); at the ceiling the call answers LIBRARY_IMAGE_LIMIT — call list_uploads and delete_upload to make room.

ParametersdatarequirednamemimeTyperequired

list_uploads

List uploads

The 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.

Parameterslimit

delete_upload

Delete an 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 themselves.

ParametersuploadIdrequired

save_design

Save a 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 from the library afterwards). The preview thumbnail and the frozen content snapshot are captured the first time the owner opens and saves it in the browser — say so.

Parametersnametextstyletextsdecalsformatrequiredimageslayoutcontent

list_designs

List saved 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/album title). Needs an API key with read.

Parameterslimitqueryformatoffset

get_design

Get a saved design

One saved design by id: name, format, link and its raw design params. Needs an API key with read.

ParametersdesignIdrequired

delete_design

Delete a saved 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.

ParametersdesignIdrequired

export_design

Export a print file

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, cover art, text sizes and colours against what the user asked for, fix the intent and save again before exporting. 'png' is the Original full-resolution print PNG (600 DPI) and 'pdf' its design-size PDF — members only, and only once the preview looks right. Needs an API key with the export scope.

ParametersoutputdesignIdrequired

get_export

Check an 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`.

ParametersjobIdrequired

get_account

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.

Takes no parameters.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.