accueil / serveurs / Médias / org.texs/tapercraft
org.texs/tapercraft
serveur MCP (Model Context Protocol) · tapercraft 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que org.texs/tapercraft est sûr ?
Au dernier audit MCP Hub, le serveur MCP « org.texs/tapercraft » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 16 outils
- compose_design≈ 2825 tokens
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.
Paramètres, retour & exemple (8)
Paramètrestext· object · optionnel
Overrides for the fetched metadata (video formats only — on audio formats these come back as unsupported). Omit a field to keep the provider value.style· object · optionneltexts· array · optionnel
Free text blocks placed on the label (the designer's Text tab). x/y are the block's center in percent of the sheet; width is the percent of the sheet width the block spans (text wraps); size is the font size as percent of the sheet height.decals· array · optionnel
Stickers, graphics, shapes and the user's own images placed on the label. Each entry names a catalog decal by id (list_decals) OR an upload by ref (upload_image; needs the API key). x/y are percent of the sheet (center-anchored; see describe_format → placement for the coordinate space and the size units). Size with `width` (percent of the sheet width) where describe_format accepts it, else `scale`.format· string · requis · slipcover | side-load-vhs | doublevhs | betamax | compact-tape | bluray-cover | bluray-slipcover | dvd-cover
Which packaging formatimages· object · optionnel
The user's own artwork by upload ref (from upload_image). Needs the API key that owns the uploads. Single-surface formats only (describe_format → singleSurface). Each value is a ref string or { ref, fit, opacity }.layout· object · optionnelcontent· object · optionnel
What the design is of. Provide a query, or an id from search_content. Video formats take movie/tv; audio formats (cassette, jcard, cd*, vinyl*, minidisc*) take album. For audio, the album alone builds the complete design — cover art, tracklist sides, QR code — and style.font / labelColor / background restyle it.
Exemple d'appel{"name": "compose_design", "arguments": {"format": "slipcover"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_design≈ 123 tokens
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.
Paramètres, retour & exemple (1)
ParamètresdesignId· string · requis
Exemple d'appel{"name": "delete_design", "arguments": {"designId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_upload≈ 174 tokens
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.
Paramètres, retour & exemple (1)
ParamètresuploadId· string · requis
The id (or upload:<id> ref) to remove
Exemple d'appel{"name": "delete_upload", "arguments": {"uploadId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - describe_format≈ 265 tokens
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.
Paramètres, retour & exemple (1)
Paramètresformat· string · requis · slipcover | side-load-vhs | doublevhs | betamax | compact-tape | bluray-cover | bluray-slipcover | dvd-cover
A slug from list_formats
Exemple d'appel{"name": "describe_format", "arguments": {"format": "slipcover"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - export_design≈ 286 tokens
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.
Paramètres, retour & exemple (2)
Paramètresoutput· string · optionnel · png | pdf | preview
'preview' to see the design, 'png' (default) or 'pdf' for the print filedesignId· string · requis
From save_design or list_designs
Exemple d'appel{"name": "export_design", "arguments": {"designId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_account≈ 139 tokens
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.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_account", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_content≈ 202 tokens
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.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
TMDB id from search_contenttype· string · requis · movie | tv
Exemple d'appel{"name": "get_content", "arguments": {"id": "texte", "type": "movie"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_design≈ 120 tokens
One saved design by id: name, format, link and its raw design params. Needs an API key with read.
Paramètres, retour & exemple (1)
ParamètresdesignId· string · requis
From list_designs or save_design
Exemple d'appel{"name": "get_design", "arguments": {"designId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_export≈ 134 tokens
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`.
Paramètres, retour & exemple (1)
ParamètresjobId· string · requis
Exemple d'appel{"name": "get_export", "arguments": {"jobId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_decals≈ 233 tokens
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.
Paramètres, retour & exemple (2)
Paramètresquery· string · optionnel
Case-insensitive match on decal id / namecategory· string · optionnel
One category id (e.g. "priceTags", "oldDistributors", "shapes")
Exemple d'appel{"name": "list_decals", "arguments": {"query": "texte", "category": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_designs≈ 260 tokens
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.
Paramètres, retour & exemple (4)
Paramètreslimit· integer · optionnel
Default 25query· string · optionnel
Case-insensitive match on the design name or content titleformat· string · optionnel
Only designs of this format slug (list_formats)offset· integer · optionnel
Skip this many (newest first). Use nextOffset from the previous page.
Exemple d'appel{"name": "list_designs", "arguments": {"limit": 1, "query": "texte", "format": "texte", "offset": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_formats≈ 102 tokens
List the packaging formats that can be composed, with their printed dimensions. Call this first if you are unsure which format the user wants.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_formats", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_uploads≈ 163 tokens
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.
Paramètres, retour & exemple (1)
Paramètreslimit· integer · optionnel
Default 50
Exemple d'appel{"name": "list_uploads", "arguments": {"limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - save_design≈ 2696 tokens
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.
Paramètres, retour & exemple (9)
Paramètresname· string · optionnel
Design name shown on the dashboard (max 120 chars)text· object · optionnel
Overrides for the fetched metadata (video formats only — on audio formats these come back as unsupported). Omit a field to keep the provider value.style· object · optionneltexts· array · optionnel
Free text blocks placed on the label (the designer's Text tab). x/y are the block's center in percent of the sheet; width is the percent of the sheet width the block spans (text wraps); size is the font size as percent of the sheet height.decals· array · optionnel
Stickers, graphics, shapes and the user's own images placed on the label. Each entry names a catalog decal by id (list_decals) OR an upload by ref (upload_image; needs the API key). x/y are percent of the sheet (center-anchored; see describe_format → placement for the coordinate space and the size units). Size with `width` (percent of the sheet width) where describe_format accepts it, else `scale`.format· string · requis · slipcover | side-load-vhs | doublevhs | betamax | compact-tape | bluray-cover | bluray-slipcover | dvd-cover
Which packaging formatimages· object · optionnel
The user's own artwork by upload ref (from upload_image). Needs the API key that owns the uploads. Single-surface formats only (describe_format → singleSurface). Each value is a ref string or { ref, fit, opacity }.layout· object · optionnelcontent· object · optionnel
What the design is of. Provide a query, or an id from search_content. Video formats take movie/tv; audio formats (cassette, jcard, cd*, vinyl*, minidisc*) take album. For audio, the album alone builds the complete design — cover art, tracklist sides, QR code — and style.font / labelColor / background restyle it.
Exemple d'appel{"name": "save_design", "arguments": {"format": "slipcover"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_content≈ 187 tokens
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.
Paramètres, retour & exemple (2)
Paramètrestype· string · requis · movie | tv | album
movie, tv, or albumquery· string · requis
Title to search for, e.g. "Predator 1987" or "Michael Jackson Thriller"
Exemple d'appel{"name": "search_content", "arguments": {"type": "movie", "query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - upload_image≈ 378 tokens
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.
Paramètres, retour & exemple (3)
Paramètresdata· string · requis
Base64 of the image bytes (no data: prefix needed; one is tolerated)name· string · optionnel
A filename or label shown in the library, e.g. "predator-front.png"mimeType· string · requis · image/jpeg | image/jpg | image/png | image/webp | image/gif | image/avif | image/heic | image/heif
e.g. image/png
Exemple d'appel{"name": "upload_image", "arguments": {"data": "texte", "mimeType": "image/jpeg"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».