Designprint
Registry code: 3a7f337bab978f65
Print shop for AI agents: business cards, flyers, posters. Returns a proof, a price and a pay link.
from a public catalogue that lists it, not from the operator
- endpoint
- https://thedesignprint.com/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is Designprint live?
- Yes — it answered the hub's last check (checked 19m ago). It answered 100% of checks over the last 30 days.
- Is Designprint free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does Designprint have?
- 6 tools: print_design, create_business_card, update_business_card, show_card_designs, check_order, get_business_card.
- Is Designprint safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 6 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
print_design unknown never probed
Print something the user already designed in this chat as a flat, single-sided print: a poster, flyer, sign, invitation, menu or similar. Send exactly one of design_html (the design as a complete HTML document) or image_url (a public link to an image); a call with neither is refused. Give the finished size with width_in and height_in, each from 1 to 60 inches. The design is printed edge to edge at exactly that size: no bleed or margin is added, so author it at the true print size and keep text away from the edges. Only the first page is printed, and anything that does not fit on it is left off. An image is fitted inside the size without stretching or cropping, and any space left over stays white. If the size is left out, an image is sized from its pixels at 300 per inch and HTML is sized from how it lays out in a desktop browser window (at least 13.3 x 7.5 in), so always give the size for HTML. It is priced by printed area. The result states the size it will print at, the price per print at that size, a link to a preview image and one order link; on the order page the user picks a quantity and shipping, sees the final amount and pays as a guest (no account). Nothing is printed until they pay: after they say they have, call check_order to confirm. For business cards made from a person's name and contact details use create_business_card instead, which also prints both sides.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "title": { "type": "string", "description": "A short name for the order, shown on the order page, e.g. 'Baby shower invite'." }, "channel": { "type": "string", "description": "Where the request comes from, e.g. 'claude', 'chatgpt', 'cursor'. Defaults to 'claude'." }, "width_in": { "type": "number", "description": "Finished width in inches, 1 to 60. Give it together with height_in. A value outside the range is moved to the nearest limit and the result says so.", "exclusiveMinimum": 0 }, "height_in": { "type": "number", "description": "Finished height in inches, 1 to 60. Give it together with width_in.", "exclusiveMinimum": 0 }, "image_url": { "type": "string", "format": "uri", "description": "Public web address of the image to print (PNG, JPG, WebP or SVG), when there is no HTML." }, "design_html": { "type": "string", "description": "The design as one complete HTML document, with its styles inside it. Send this or image_url, not both. Fonts and images it links to must be public web addresses; they are loaded when the proof is made. Up to about 10 MB." } }, "additionalProperties": false }arguments 34 linescreate_business_card unknown never probed
Make print-ready business cards from a person's details and get a link to order them. Designprint fills one of its own card designs (front and back, 3.5 x 2 in), so you do not design anything yourself. Before calling, ask the user for their name and how to reach them (phone, email or website); title, company, tagline, address and a logo are optional. Returns a preview of both sides, the price (with shipping options and an estimated total when you pass a quantity) and one link where the user approves the card, picks a quantity and pays as a guest (no account). Call it once per card. To change a detail, the design or the color afterwards, call update_business_card with the link: the card keeps its link. Calling create_business_card again makes a second card with a different link. The job is finished only when the user has paid: after they say they have, call check_order to confirm. Use this when the user has named a design or asked for one card. If they have not chosen a design, call show_card_designs instead: it shows every design with their details, to choose from.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "name" ], "properties": { "name": { "type": "string", "maxLength": 80, "minLength": 1, "description": "Full name as it should appear on the card." }, "email": { "type": "string", "maxLength": 80, "description": "Email address." }, "phone": { "type": "string", "maxLength": 40, "description": "Phone number, written the way it should print." }, "style": { "enum": [ "classic", "noir", "warm", "bold", "center", "sidebar", "split", "monogram", "stripe", "soft" ], "type": "string", "description": "Card design. Defaults to classic. classic: White card, dark ink, a thin color rule. Clean and safe for any business. noir: Near-black card with warm gold details and a serif name. Formal, premium. warm: Cream card, espresso ink, terracotta accent and a serif name. Friendly, crafted. bold: Big name over a solid color band that holds the contact details. Modern, confident. center: Everything centered on a white card, with a short rule under the name. Quiet, minimal. sidebar: A solid color panel down the left side, with the details set beside it. Structured, modern. split: The name on white at the left, the contact details on a solid color half at the right. Crisp, balanced. monogram: The initials in a ring beside a serif name, with the contact details in two columns. Personal, classic. stripe: A color stripe across the top that carries the company name, with the name and details below. Tidy, corporate. soft: Lightly tinted paper with a round shape in one corner and a serif name set low. Calm, friendly." }, "title": { "type": "string", "maxLength": 80, "description": "Job title or role, e.g. 'Owner'." }, "address": { "type": "string", "maxLength": 120, "description": "Street address on one line." }, "channel": { "type": "string", "maxLength": 40, "description": "Where the request comes from, e.g. 'claude', 'chatgpt', 'cursor', 'terminal'." }, "company": { "type": "string", "maxLength": 80, "description": "Business or organization name." }, "tagline": { "type": "string", "maxLength": 100, "description": "Short line shown under the company name on the back of the card." }, "website": { "type": "string", "maxLength": 80, "description": "Website address." }, "logo_url": { "type": "string", "format": "uri", "description": "https link to a logo image (PNG, JPG or SVG). Shown on the back and small on the front. If it cannot be loaded the card is made without it and the warnings say so." }, "quantity": { "type": "integer", "maximum": 100000, "description": "How many cards the user wants, if they said. There is a minimum order; a smaller number is raised to the minimum and the change is reported in the warnings. With a quantity, the result also gives the shipping options and an estimated total. It is preselected on the order page.", "exclusiveMinimum": 0 }, "accent_color": { "type": "string", "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$", "description": "Hex color that replaces the design's accent, e.g. '#0E7C66'. Use the brand color if the user has one." } }, "additionalProperties": false }arguments 88 linesupdate_business_card unknown never probed
Change a business card that create_business_card already made: a detail, the design, the color or the quantity. Pass the order link (or the id in it) as order, plus only the fields that change. A field you leave out keeps its current value; a field sent as an empty string is taken off the card. The card keeps the same order link, so the user does not need a new one. Returns the new preview of both sides, the price and the same link, exactly like create_business_card. It works until the card is paid for; after that the card is fixed, and a different card needs a new create_business_card call. Use this for every change the user asks for after the first proof.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "order" ], "properties": { "name": { "type": "string", "maxLength": 80, "minLength": 1, "description": "New name. Leave it out to keep the current one." }, "email": { "type": "string", "maxLength": 80, "description": "New email address. Leave it out to keep the current one; send an empty string to take it off the card." }, "order": { "type": "string", "maxLength": 400, "minLength": 8, "description": "The order link returned by create_business_card, or the id inside it." }, "phone": { "type": "string", "maxLength": 40, "description": "New phone number. Leave it out to keep the current one; send an empty string to take it off the card." }, "style": { "enum": [ "classic", "noir", "warm", "bold", "center", "sidebar", "split", "monogram", "stripe", "soft" ], "type": "string", "description": "New card design. Leave it out to keep the current one. classic: White card, dark ink, a thin color rule. Clean and safe for any business. noir: Near-black card with warm gold details and a serif name. Formal, premium. warm: Cream card, espresso ink, terracotta accent and a serif name. Friendly, crafted. bold: Big name over a solid color band that holds the contact details. Modern, confident. center: Everything centered on a white card, with a short rule under the name. Quiet, minimal. sidebar: A solid color panel down the left side, with the details set beside it. Structured, modern. split: The name on white at the left, the contact details on a solid color half at the right. Crisp, balanced. monogram: The initials in a ring beside a serif name, with the contact details in two columns. Personal, classic. stripe: A color stripe across the top that carries the company name, with the name and details below. Tidy, corporate. soft: Lightly tinted paper with a round shape in one corner and a serif name set low. Calm, friendly." }, "title": { "type": "string", "maxLength": 80, "description": "New job title. Leave it out to keep the current one; send an empty string to take it off the card." }, "address": { "type": "string", "maxLength": 120, "description": "New address. Leave it out to keep the current one; send an empty string to take it off the card." }, "company": { "type": "string", "maxLength": 80, "description": "New company name. Leave it out to keep the current one; send an empty string to take it off the card." }, "tagline": { "type": "string", "maxLength": 100, "description": "New line for the back of the card. Leave it out to keep the current one; send an empty string to take it off." }, "website": { "type": "string", "maxLength": 80, "description": "New website. Leave it out to keep the current one; send an empty string to take it off the card." }, "logo_url": { "type": "string", "pattern": "^(?:https?:\\/\\/\\S+)?$", "maxLength": 2000, "description": "New https link to a logo image. Leave it out to keep the current one; send an empty string to remove the logo." }, "quantity": { "type": "integer", "maximum": 100000, "description": "New quantity. Leave it out to keep the one already asked for. How many cards the user wants, if they said. There is a minimum order; a smaller number is raised to the minimum and the change is reported in the warnings. With a quantity, the result also gives the shipping options and an estimated total. It is preselected on the order page.", "exclusiveMinimum": 0 }, "accent_color": { "type": "string", "pattern": "^(?:#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}))?$", "description": "New hex accent color, e.g. '#0E7C66'. Leave it out to keep the current one; send an empty string to go back to the design's own color." } }, "additionalProperties": false }arguments 90 linesshow_card_designs unknown never probed
Show the user every Designprint business card design with their own details on it, so they can choose by looking. Use this first whenever the user asks for business cards and has not chosen a design. Ask for missing details beforehand only if you do not have their name; every other field is optional. It makes one real card per design (10 designs, front and back, 3.5 x 2 in) and returns, for each, its name, a one-line description, the front and back pictures and its own order link, plus a page that shows all of them and the same gallery as one self-contained HTML document. Present the result as a scrollable gallery: where the in-chat gallery is showing, point the user to it; if you can show HTML (an artifact), show the gallery document as it is; otherwise list every design with its own link and give the gallery page. Never join the designs into one picture and do not choose for the user. Each link opens that exact design on thedesignprint.com, where the user checks it, picks a quantity and pays as a guest. After they choose, use update_business_card with that design's link for changes and check_order to confirm the payment. If the user already named a design, use create_business_card instead.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "name" ], "properties": { "name": { "type": "string", "maxLength": 80, "minLength": 1, "description": "Full name as it should appear on the card." }, "email": { "type": "string", "maxLength": 80, "description": "Email address." }, "phone": { "type": "string", "maxLength": 40, "description": "Phone number, written the way it should print." }, "title": { "type": "string", "maxLength": 80, "description": "Job title or role, e.g. 'Owner'." }, "address": { "type": "string", "maxLength": 120, "description": "Street address on one line." }, "channel": { "type": "string", "maxLength": 40, "description": "Where the request comes from, e.g. 'claude', 'chatgpt', 'cursor', 'terminal'." }, "company": { "type": "string", "maxLength": 80, "description": "Business or organization name." }, "tagline": { "type": "string", "maxLength": 100, "description": "Short line shown under the company name on the back of the card." }, "website": { "type": "string", "maxLength": 80, "description": "Website address." }, "logo_url": { "type": "string", "format": "uri", "description": "https link to a logo image (PNG, JPG or SVG). Shown on the back and small on the front. If it cannot be loaded the card is made without it and the warnings say so." }, "quantity": { "type": "integer", "maximum": 100000, "description": "How many cards the user wants, if they said. There is a minimum order; a smaller number is raised to the minimum and the change is reported in the warnings. With a quantity, the result also gives the shipping options and an estimated total. It is preselected on the order page.", "exclusiveMinimum": 0 }, "accent_color": { "type": "string", "pattern": "^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$", "description": "Hex color that replaces the design's accent, e.g. '#0E7C66'. Use the brand color if the user has one." } }, "additionalProperties": false }arguments 72 linescheck_order unknown never probed
Check the state of an order from the link returned by create_business_card, update_business_card or print_design. Use it after the user says they have paid, or when they ask whether their order went through. The result's state is one of: none (the user has not started checkout), started (checkout was opened but nothing is paid yet), paid (paid and in production), refunded (paid and later refunded), canceled (canceled before it was paid), failed (the payment did not go through), or unknown (the link does not match any proof). The order is complete only when the state is paid. Once an order exists the result also gives statusUrl, the user's own page for following that order, which you can pass on to them.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "order" ], "properties": { "order": { "type": "string", "maxLength": 400, "minLength": 8, "description": "The order link returned by create_business_card, update_business_card or print_design, or the id inside it." } }, "additionalProperties": false }arguments 16 linesget_business_card unknown 19m ago
Look at a business card as it is right now: its details, both sides as pictures, a description of each side in words, whether it can still be changed, and its order link. Use it before answering a question about a card you made earlier, because the user can change the card themselves on the site before paying. It changes nothing. Pass the order link returned by create_business_card, or the id in it.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "order" ], "properties": { "order": { "type": "string", "maxLength": 400, "minLength": 8, "description": "The order link returned by create_business_card, or the id inside it." } }, "additionalProperties": false }arguments 16 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id3a7f337bab978f65.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/3a7f337bab978f65/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/3a7f337bab978f65?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.