AgentMade Print on Demand
REMOTE · POD.AGENTMADE.DEV
Print on demand for AI agents. No sign-up. Picture, words or logo on a tee, hoodie or tote.
Available components
Last scanned (9 hours ago)
Scores higher than 57% of remote servers
Reachable. Last reached 5 Nov 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security49
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancel_order). See how to fix → View diagnostics → Fail
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability72
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2868 tokens (~318/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management80
- Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 88% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://pod.agentmade.dev/mcp/pay
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=agentmade.dev | CN=WE1,O=Google Trust Services,C=US | 2 Oct 2026 | 31 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | a7beb850c4f4aeec0e481f03e7b43bab |
| SANs: agentmade.dev, pod.agentmade.dev, *.pod.agentmade.dev | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of pod.agentmade.dev. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| agentmade.dev. | present | 2371 | 13 | Verified |
| pod.agentmade.dev. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://pod.agentmade.dev/mcp/pay | Verified | 200 | |
| http (plaintext) | http://pod.agentmade.dev/mcp/pay | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_order Cancel an order ~83
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.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | order_id returned by purchase. |
| reason | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| address_needed | boolean | yes | True when purchase had no street address: the person enters it on the order page before paying. |
| delivery_estimate_business_days | – | yes | Null when the order ended (cancelled, refunded, rejected, expired or delivered). |
| destination | – | yes | While address_needed: the quoted destination. |
| items | array | yes | – |
| next_step | string | yes | What the agent should do next, in plain language. |
| order_id | string | yes | A bearer key: whoever has it can read and cancel the order. Do not share it publicly. |
| order_url | string | yes | The order page. The person sees the status there. |
| payment | object | yes | – |
| quote_id | string | yes | – |
| shipments | array | yes | – |
| status | string | yes | – |
| status_reason | string|null | yes | – |
| timeline | array | yes | – |
| total | object | yes | – |
No examples provided.
create_mockup Create a preview mockup ~318
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.
| Name | Type | Req | Description |
|---|---|---|---|
| artwork_id | string | yes | – |
| color | string | yes | Product colour, e.g. "black". |
| height_mm | number | – | Maximum printed height in millimetres. |
| left_mm | number | – | Distance from the left edge of the print area. Default: horizontally centred. |
| placement | string | – | Print location on the product, e.g. "front" or "back". See get_product for the list. |
| preset | string | – | Named position inside the placement, e.g. "center_chest", "left_chest", "full_front". Defaults to the placement default. |
| product_id | string | yes | – |
| size | string | – | – |
| style | string | – | flat: quick placement drawing. packshot: product photo with the exact print at real size (where a product photo exists). |
| top_mm | number | – | Distance from the top of the print area to the top of the artwork. |
| width_mm | number | – | Exact printed width of the visible artwork in millimetres. Height follows the aspect ratio. |
| Name | Type | Req | Description |
|---|---|---|---|
| blank_image_url | string|null | yes | – |
| image_prompt | string | yes | A prompt for your own image model, to make an illustration from mockup_url. |
| mockup_url | string | yes | PNG preview of the exact print on the product. |
| note | string | yes | – |
| style | string | yes | – |
| summary | string | yes | – |
| validation_status | string | yes | – |
No examples provided.
get_order Get order status ~69
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.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | order_id returned by purchase. |
| Name | Type | Req | Description |
|---|---|---|---|
| address_needed | boolean | yes | True when purchase had no street address: the person enters it on the order page before paying. |
| delivery_estimate_business_days | – | yes | Null when the order ended (cancelled, refunded, rejected, expired or delivered). |
| destination | – | yes | While address_needed: the quoted destination. |
| items | array | yes | – |
| next_step | string | yes | What the agent should do next, in plain language. |
| order_id | string | yes | A bearer key: whoever has it can read and cancel the order. Do not share it publicly. |
| order_url | string | yes | The order page. The person sees the status there. |
| payment | object | yes | – |
| quote_id | string | yes | – |
| shipments | array | yes | – |
| status | string | yes | – |
| status_reason | string|null | yes | – |
| timeline | array | yes | – |
| total | object | yes | – |
No examples provided.
get_product Get product details ~102
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.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | string | yes | Product id from search_products, e.g. "tee-heavyweight". |
| Name | Type | Req | Description |
|---|---|---|---|
| artwork_guidance | string | yes | – |
| brand | string|null | yes | – |
| category | string | yes | – |
| colors | array | yes | – |
| decoration_method | string | yes | – |
| description | string | yes | – |
| image_url | string|null | yes | A product photo, or null when none is approved yet. |
| model | string | yes | – |
| next_step | string | yes | What the agent should do next, in plain language. |
| placements | array | yes | – |
| printed_in_regions | array | yes | Regions where this product is printed, e.g. ["EU", "US"]. |
| product_id | string | yes | Use in get_product, validate_artwork and quote. |
| production_business_days | object | yes | – |
| size_chart_cm | – | yes | – |
| sizes | array | yes | Size values to pass as size. |
| title | string | yes | – |
| variants | array | yes | – |
No examples provided.
purchase Place the order and get the payment link ~366
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contact_email | string | – | 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. |
| gift_message | string | – | Short message for the packing slip of a gift. Not printed yet: the answer says so. |
| orders | array | – | Many parcels with one payment: one quote_id and one recipient per parcel. Not live yet: call purchase once per quote_id for now. |
| payment_capabilities | array | – | 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. |
| quote_id | string | – | quote_id returned by quote, for one parcel. Set quote_id or orders, not both. |
| recipient | object | – | 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_cod… |
| rights_attestation | boolean | yes | Must be true: confirms the customer owns or is licensed to print all submitted artwork, and that it is not prohibited content. |
| Name | Type | Req | Description |
|---|---|---|---|
| address_needed | boolean | yes | True when purchase had no street address: the person enters it on the order page before paying. |
| delivery_estimate_business_days | – | yes | Null when the order ended (cancelled, refunded, rejected, expired or delivered). |
| destination | – | yes | While address_needed: the quoted destination. |
| items | array | yes | – |
| next_step | string | yes | What the agent should do next, in plain language. |
| notes | array | yes | – |
| order_id | string | yes | A bearer key: whoever has it can read and cancel the order. Do not share it publicly. |
| order_url | string | yes | The order page. The person sees the status there. |
| payment | object | yes | – |
| quote_id | string | yes | – |
| shipments | array | yes | – |
| status | string | yes | – |
| status_reason | string|null | yes | – |
| timeline | array | yes | – |
| total | object | yes | – |
No examples provided.
quote Get a delivered price quote ~302
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.
| Name | Type | Req | Description |
|---|---|---|---|
| buyer | object | – | Only for a company purchase with an invoice. Business checkout is not open yet: the quote charges destination VAT. |
| currency | string | – | ISO 4217 currency of the payer, e.g. "USD". Optional. The quote states the currency that it uses. |
| deliver_by | string | – | 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. |
| items | array | yes | – |
| preference | string | – | How AgentMade picks the manufacturing route: fewest_packages (default: fewest parcels, then best price among the fastest routes), cheapest, or fastest. |
| purpose | string | – | What the order is for. Set it only if the user already said it. Do not ask for it. |
| ship_to | object | yes | Destination. country_code is required; postal_code and state_code improve shipping accuracy. |
| speed | string | – | Shipping speed. Only standard is offered now; express returns a note and a standard quote. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| currency | string | yes | – |
| delivery_estimate_business_days | object | yes | – |
| delivery_estimate_dates | object | yes | Calendar dates (YYYY-MM-DD) for the delivery estimate. Tell the user these dates. |
| expires_at | string | yes | – |
| items | array | yes | – |
| next_step | string | yes | What the agent should do next, in plain language. |
| notes | array | yes | Things to tell the user before purchase. |
| package_count | integer | yes | – |
| packages | array | yes | – |
| purchase_open | boolean | yes | False when this destination does not take orders yet or the quote expired. Then do not call purchase. |
| quote_id | string | yes | Use in purchase before expires_at. |
| ship_to | object | yes | – |
| shipping | object | yes | – |
| status | string | yes | – |
| tax | object | yes | – |
| totals | object | yes | total_minor is the full amount that the payer pays. Show total_formatted to the user. products_minor and shipping_minor are before VAT; tax_minor is the VAT included in the total, or 0 when tax is no… |
No examples provided.
search_products Search printable products ~162
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| color | string | – | Only products available in this colour, e.g. "black". |
| query | string | – | Free-text description, e.g. "heavyweight black t-shirt" or "hoodie". |
| size | string | – | Only products available in this size, e.g. "XL". |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| note | string | yes | – |
| products | array | yes | – |
No examples provided.
track_order Track shipment ~40
Carrier, tracking number and tracking link for each shipment of an order, and the delivery estimate.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | order_id returned by purchase. |
| Name | Type | Req | Description |
|---|---|---|---|
| delivery_estimate_business_days | – | yes | Null when the order ended (cancelled, refunded, rejected, expired or delivered). |
| next_step | string | yes | What the agent should do next, in plain language. |
| order_id | string | yes | – |
| order_url | string | yes | – |
| shipments | array | yes | – |
| status | string | yes | – |
| tracking_available | boolean | yes | – |
No examples provided.
validate_artwork Upload and validate artwork ~475
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.
| Name | Type | Req | Description |
|---|---|---|---|
| artwork | object | – | New artwork to upload: exactly one of svg, base64 or url. |
| artwork_id | string | – | Re-validate artwork uploaded earlier, or validate the file of an upload link. |
| color | string | – | Product colour, for the contrast check. |
| file | object | – | A file that your client gives you as a file object (for example in ChatGPT). |
| height_mm | number | – | Maximum printed height in millimetres. |
| left_mm | number | – | Distance from the left edge of the print area. Default: horizontally centred. |
| placement | string | – | Print location on the product, e.g. "front" or "back". See get_product for the list. |
| preset | string | – | Named position inside the placement, e.g. "center_chest", "left_chest", "full_front". Defaults to the placement default. |
| product_id | string | yes | Product to print on. |
| size | string | – | Garment size, e.g. "XL". Print areas can differ by size; without it the smallest size is checked. |
| top_mm | number | – | Distance from the top of the print area to the top of the artwork. |
| upload_link | boolean | – | 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 ar… |
| width_mm | number | – | Exact printed width of the visible artwork in millimetres. Height follows the aspect ratio. |
| Name | Type | Req | Description |
|---|---|---|---|
| artwork | object | – | – |
| artwork_id | string | – | Only in the upload_link answer: the reserved id for the file. |
| expires_at | string | – | – |
| next_step | string | yes | What the agent should do next, in plain language. |
| upload_url | string | – | Only in the upload_link answer: the one-time upload link. |
| validation | object | – | – |
No examples provided.
How do I install the AgentMade Print on Demand MCP server?
AgentMade Print on Demand is a hosted endpoint at https://pod.agentmade.dev/mcp/pay, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · pod.agentmade.dev
claude mcp add --transport http alexmensak-agentmade-print-on-demand 'https://pod.agentmade.dev/mcp/pay'
What is the AgentMade Print on Demand MCP server?
AgentMade Print on Demand is an MCP server listed in the public MCP registry as io.github.alexmensak/agentmade-print-on-demand. Print on demand for AI agents. No sign-up. Picture, words or logo on a tee, hoodie or tote. This page covers its hosted endpoint (https://pod.agentmade.dev/mcp/pay).
Is the AgentMade Print on Demand MCP server safe to use?
AgentMade Print on Demand scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the AgentMade Print on Demand MCP server expose?
AgentMade Print on Demand exposes 9 tools: search_products, get_product, validate_artwork, create_mockup, quote, and 4 more. Their descriptions and schemas cost roughly 1,917 tokens of context every time the server is loaded.
Does the AgentMade Print on Demand MCP server require authentication?
No. We connected to AgentMade Print on Demand without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the AgentMade Print on Demand MCP server still maintained?
AgentMade Print on Demand is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.