accueil / serveurs / Médias / io.github.alexmensak/agentmade-print-on-demand
io.github.alexmensak/agentmade-print-on-demand
serveur MCP (Model Context Protocol) · agentmade-print-on-demand 0.1.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 io.github.alexmensak/agentmade-print-on-demand est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.alexmensak/agentmade-print-on-demand » 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 9 outils
- cancel_order≈ 1158 tokens
Cancel an order. Unpaid: closes the payment link; nothing is charged. Paid and not yet in production: cancels and refunds in full. In production or shipped: cannot be cancelled; the error gives the reason. A second call on a cancelled order is safe.
Paramètres, retour & exemple (2)
Paramètresreason· string · optionnelorder_id· string · requis
order_id returned by purchase.
Exemple d'appel{"name": "cancel_order", "arguments": {"order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"items": [], "total": {}, "status": "AWAITING_PAYMENT", "payment": {}, "order_id": "texte", "quote_id": "texte", "timeline": [], "next_step": "texte", "order_url": "texte", "shipments": [], "destination": "texte", "status_reason": "texte"}} - create_mockup≈ 717 tokens
Render a preview PNG of the artwork on the product in the chosen colour and placement. style flat draws the placement; style packshot uses a product photo with the exact print at real size, or gives the flat preview with a note when no photo exists. Returns mockup_url, blank_image_url and image_prompt (an optional text prompt for an illustration of a person who wears the product; such an image is an illustration, not the exact print). Optional.
Paramètres, retour & exemple (11)
Paramètressize· string · optionnelcolor· string · requis
Product colour, e.g. "black".style· string · optionnel · flat | packshot
flat: quick placement drawing. packshot: product photo with the exact print at real size (where a product photo exists).preset· string · optionnel
Named position inside the placement, e.g. "center_chest", "left_chest", "full_front". Defaults to the placement default.top_mm· number · optionnel
Distance from the top of the print area to the top of the artwork.left_mm· number · optionnel
Distance from the left edge of the print area. Default: horizontally centred.width_mm· number · optionnel
Exact printed width of the visible artwork in millimetres. Height follows the aspect ratio.height_mm· number · optionnel
Maximum printed height in millimetres.placement· string · optionnel
Print location on the product, e.g. "front" or "back". See get_product for the list.artwork_id· string · requisproduct_id· string · requis
Exemple d'appel{"name": "create_mockup", "arguments": {"color": "texte", "artwork_id": "texte", "product_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "style": "flat", "summary": "texte", "mockup_url": "texte", "image_prompt": "texte", "blank_image_url": "texte", "validation_status": "PASS"}} - get_order≈ 1133 tokens
Current order status (AWAITING_PAYMENT, PAID, SUBMITTED, IN_PRODUCTION, SHIPPED, DELIVERED or an exception state), next_step in plain language, the payment link while unpaid, shipments and a timeline.
Paramètres, retour & exemple (1)
Paramètresorder_id· string · requis
order_id returned by purchase.
Exemple d'appel{"name": "get_order", "arguments": {"order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"items": [], "total": {}, "status": "AWAITING_PAYMENT", "payment": {}, "order_id": "texte", "quote_id": "texte", "timeline": [], "next_step": "texte", "order_url": "texte", "shipments": [], "destination": "texte", "status_reason": "texte"}} - get_product≈ 1065 tokens
Full details for one product: colours with hex codes and product photos (images: url, view, style, alt; empty when none yet; ai_generated marks AI photos), sizes, variant ids, print placements with the print area in mm, placement presets (for example center_chest, left_chest, full_front, full_back), materials and artwork guidance.
Paramètres, retour & exemple (1)
Paramètresproduct_id· string · requis
Product id from search_products, e.g. "tee-heavyweight".
Exemple d'appel{"name": "get_product", "arguments": {"product_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"brand": "texte", "model": "texte", "sizes": [], "title": "texte", "colors": [], "category": "texte", "variants": [], "image_url": "texte", "next_step": "texte", "placements": [], "product_id": "texte", "description": "texte"}} - purchase≈ 2347 tokens
Turn a quote into an order. Needs quote_id, the full recipient address (it must match the quoted destination) and rights_attestation=true. contact_email is the payer's own email, never the gift recipient's. Returns order_id and payment.url: the order page where the person pays by card, Apple Pay or Google Pay. Nothing is printed until the payment is confirmed. Idempotent per quote_id.
Paramètres, retour & exemple (7)
Paramètresorders· array · optionnel
Many parcels with one payment: one quote_id and one recipient per parcel. Not live yet: call purchase once per quote_id for now.quote_id· string · optionnel
quote_id returned by quote, for one parcel. Set quote_id or orders, not both.recipient· object · optionnel
Shipping address. Country, state and postal code must match the quote destination. Send the full address when you have it. If you cannot collect the street address, send only country_code, postal_code (and state_code for US, CA and AU): the person then enters the address on the order page before paying. Required with quote_id.gift_message· string · optionnel
Short message for the packing slip of a gift. Not printed yet: the answer says so.contact_email· string · optionnel
Email of the payer, for the order confirmation and the payment receipt. Not the recipient's email: for a gift, the recipient must not see the price. Optional.rights_attestation· boolean · requis
Must be true: confirms the customer owns or is licensed to print all submitted artwork, and that it is not prohibited content.payment_capabilities· array · optionnel
Payment methods the calling agent can use. "hosted_checkout" = a link that the person opens to pay by card, Apple Pay or Google Pay. Always supported.
Exemple d'appel{"name": "purchase", "arguments": {"rights_attestation": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"items": [], "notes": [], "total": {}, "status": "AWAITING_PAYMENT", "payment": {}, "order_id": "texte", "quote_id": "texte", "timeline": [], "next_step": "texte", "order_url": "texte", "shipments": [], "destination": "texte"}} - quote≈ 2492 tokens
Price printed items delivered to one destination. Returns quote_id, the total that the payer pays (products, shipping and VAT where AgentMade collects it), what is not included, the delivery estimate and the expiry. Needs artwork_id values from validate_artwork. Charges nothing. For a destination where orders are not open, the quote is for information only.
Paramètres, retour & exemple (8)
Paramètresbuyer· object · optionnel
Only for a company purchase with an invoice. Business checkout is not open yet: the quote charges destination VAT.items· array · requisspeed· string · optionnel · standard | express
Shipping speed. Only standard is offered now; express returns a note and a standard quote.purpose· string · optionnel · gift | personal | group | work | event | sample
What the order is for. Set it only if the user already said it. Do not ask for it.ship_to· object · requis
Destination. country_code is required; postal_code and state_code improve shipping accuracy.currency· string · optionnel
ISO 4217 currency of the payer, e.g. "USD". Optional. The quote states the currency that it uses.deliver_by· string · optionnel
Date by which the parcel should arrive, e.g. "2026-12-20". The quote is never refused because of it: if the estimate is later, the quote says so.preference· string · optionnel · fewest_packages | cheapest | fastest
How AgentMade picks the manufacturing route: fewest_packages (default: fewest parcels, then best price among the fastest routes), cheapest, or fastest.
Exemple d'appel{"name": "quote", "arguments": {"items": [], "ship_to": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"tax": {}, "items": [], "notes": [], "status": "valid", "totals": {}, "ship_to": {}, "currency": "texte", "packages": [], "quote_id": "texte", "shipping": {}, "next_step": "texte", "expires_at": "texte"}} - search_products≈ 705 tokens
Use this when the user wants their own picture, words or logo printed on a T-shirt, hoodie, sweatshirt or tote bag and delivered, as a gift or for themselves. Finds products by free text, category, colour and size. Returns product_id, image_url (a product photo, or null), colours, sizes and print placements. No account needed. Not for mugs, posters, caps, stickers or embroidery.
Paramètres, retour & exemple (4)
Paramètressize· string · optionnel
Only products available in this size, e.g. "XL".color· string · optionnel
Only products available in this colour, e.g. "black".query· string · optionnel
Free-text description, e.g. "heavyweight black t-shirt" or "hoodie".category· string · optionnel · t-shirt | long-sleeve | sweatshirt | hoodie | tote-bag
Exemple d'appel{"name": "search_products", "arguments": {"size": "texte", "color": "texte", "query": "texte", "category": "t-shirt"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "count": 1, "products": []}} - track_order≈ 471 tokens
Carrier, tracking number and tracking link for each shipment of an order, and the delivery estimate.
Paramètres, retour & exemple (1)
Paramètresorder_id· string · requis
order_id returned by purchase.
Exemple d'appel{"name": "track_order", "arguments": {"order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"status": "AWAITING_PAYMENT", "order_id": "texte", "next_step": "texte", "order_url": "texte", "shipments": [], "tracking_available": true, "delivery_estimate_business_days": "texte"}} - validate_artwork≈ 1502 tokens
Upload artwork and check that it prints well on one product placement. Send exactly one of: artwork with svg (markup, best for text and logos), base64 (a PNG, JPEG or SVG file up to about 2 MB, no data: prefix) or url (a public HTTPS link to the file); file (a file object from your client); or upload_link:true when you cannot send the file in this call. Returns artwork_id and PASS/WARN/FAIL checks: print size in mm, resolution (DPI), print and safe area, transparent background, contrast with the product colour. For photos and AI images use preset center_chest. Use the artwork_id in quote.
Paramètres, retour & exemple (13)
Paramètresfile· object · optionnel
A file that your client gives you as a file object (for example in ChatGPT).size· string · optionnel
Garment size, e.g. "XL". Print areas can differ by size; without it the smallest size is checked.color· string · optionnel
Product colour, for the contrast check.preset· string · optionnel
Named position inside the placement, e.g. "center_chest", "left_chest", "full_front". Defaults to the placement default.top_mm· number · optionnel
Distance from the top of the print area to the top of the artwork.artwork· object · optionnel
New artwork to upload: exactly one of svg, base64 or url.left_mm· number · optionnel
Distance from the left edge of the print area. Default: horizontally centred.width_mm· number · optionnel
Exact printed width of the visible artwork in millimetres. Height follows the aspect ratio.height_mm· number · optionnel
Maximum printed height in millimetres.placement· string · optionnel
Print location on the product, e.g. "front" or "back". See get_product for the list.artwork_id· string · optionnel
Re-validate artwork uploaded earlier, or validate the file of an upload link.product_id· string · requis
Product to print on.upload_link· boolean · optionnel
Set true when you cannot send the file in this call. The answer gives an artwork_id and a one-time upload_url: upload with curl, or give the link to the person. Then call validate_artwork with the artwork_id.
Exemple d'appel{"name": "validate_artwork", "arguments": {"product_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"artwork": {}, "next_step": "texte", "artwork_id": "texte", "expires_at": "texte", "upload_url": "texte", "validation": {}}}
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é ».