Printdash
REMOTE · API.PRINTDASH.IO
Online printing for Australia: products, exact prices, quotes, artwork checks and orders.
Available components
Last scanned (1 hour ago)
Scores higher than 55% 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 Security63
- 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 (set_context). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability81
- 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 9225 tokens (~124/item across 74 items; 58 tools + 16 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 Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 75% 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
- All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 60 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
- Supports UI / widget rendering.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.
- 3 Nov 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_mockup” rewrote its description, which is the text the model reads security
- First check of Capabilities: pass functional
- New resource “Printdash card” functional
- 2 Nov 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_artwork_guide” rewrote its description, which is the text the model reads security
- Tool “get_artwork_requirements” rewrote its description, which is the text the model reads security
- “get_artwork_requirements” reworded the description of “configuration” cosmetic
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 29 Oct 26 67
First indexed and scored.
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://api.printdash.io/functions/v1/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.printdash.io | CN=WE1,O=Google Trust Services,C=US | 29 Oct 2026 | 27 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | a6a3e7e70812d58c0e4c7288dc32f26e |
| SANs: api.printdash.io | ||||||
| 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 insecure
Validation of api.printdash.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 38690 | 8 | Verified |
| printdash.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
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 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.printdash.io/functions/v1/mcp | Verified | 200 | |
| http (plaintext) | http://api.printdash.io/functions/v1/mcp | HTTPS enforced | 301 | https://api.printdash.io/functions/v1/mcp |
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 →
match_options Match the customer's words to option ids ~164
Turns the customer's words ("velvet", "A5", "double sided", "500", "90 x 55mm", "round corners") into option ids for one product, given what is already chosen. Returns matches, the ambiguous phrases with every candidate (never a guess: ask the customer), options not available with what is chosen, the words it could not place, and the configuration so far for price_job.
| Name | Type | Req | Description |
|---|---|---|---|
| chosen | object | – | What is already chosen, so options are filtered by it (finishes the chosen stock does not offer, combinations the supplier cannot make). |
| phrases | array | yes | The customer's words, one option each: ["velvet", "A5", "double sided", "500"]. |
| product_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| ambiguous | array | yes | – |
| configuration | object | yes | – |
| matches | array | yes | – |
| missing | array | yes | – |
| next | string | yes | – |
| not_available | array | yes | – |
| problems | array | yes | – |
| product | string | yes | – |
| product_id | string | yes | – |
| ready_to_price | boolean | yes | – |
| unmatched | array | yes | – |
| values | array | yes | – |
No examples provided.
ping Check the Printdash connection ~40
Checks that Printdash is reachable and says whether you are signed in. Printdash prints in Australia and delivers within Australia only; prices are in AUD and include GST.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| caller | string | yes | – |
| currency | string | yes | – |
| delivery | string | yes | – |
| ok | boolean | yes | – |
| server | string | yes | – |
| service_area | string | yes | – |
| signed_in | boolean | yes | – |
| time | string | yes | – |
| version | string | yes | – |
No examples provided.
place_order Place the prepared order ~196
Places the order prepare_checkout summarised, after the customer has seen that summary and said yes. Pass its confirmation_token and a new UUID as idempotency_key; retrying with the same key returns the same order and never places a second. Printdash re-prices every line and refuses a price that moved since the review (then call prepare_checkout again). Payment never happens here: a card order comes back with payment_url, the order page on printdash.io where the customer pays; an on-account order needs no payment; a held order waits for a Team owner. Never call it without the customer's agreement. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| confirmation_token | string | yes | The confirmation_token prepare_checkout returned. |
| idempotency_key | string | yes | A UUID you generate for this order; reuse it only to retry the same one. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| confirmed | boolean | yes | – |
| replayed | boolean | yes | – |
No examples provided.
prepare_checkout Review the cart before ordering ~379
Checkout's review of the whole cart in the current buying context, as printdash.io's checkout shows it: every line with its artwork state and Printdash's file notices, delivery to a saved address (address_id, else the default) or pickup where the account has it, the order reference (required, up to 50 characters), notes, a PO number for a Team on account, is_whitelabel (Remove Printdash Branding), the totals from Printdash's own delivery pricing, expected_total, and what placing it will do: placed unpaid with a pay link on printdash.io, on the Team's account, or held for a Team owner's approval. When it is ready, the summary and a confirmation_token for place_order. Writes nothing; nothing is ordered until place_order is called after the customer agrees. Printdash prints in Australia and delivers within Australia only; prices are in AUD and include GST. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | – | A saved address id for delivery (list_addresses). Omit for the context's default address. |
| fulfilment | string | – | pickup only where the account has it (pickup_available). |
| is_whitelabel | boolean | – | Remove Printdash Branding, as the checkout switch. Default false. |
| notes | string | – | Notes for Printdash's team about this order. |
| payment_method | string | – | A request: a Team with approved terms orders on account unless card is asked for; Printdash decides. |
| po_number | string | – | A Team on account: the purchase order number (required when the Team says so). |
| reference | string | – | The order reference, required as at checkout: a name for this order. Kept to 50 characters. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| address_id | string|null | yes | – |
| blocking | array | – | – |
| checkout_url | string | yes | – |
| confirmation_required | boolean | – | – |
| confirmation_token | string | – | – |
| currency | string | yes | – |
| deliver_to | string|null | yes | – |
| details | object | – | – |
| expected_total | number|null | yes | The total the customer is shown; place_order is refused if Printdash's own total differs. |
| expires_at | string | – | – |
| fulfilment | string | yes | – |
| is_whitelabel | boolean | yes | – |
| lines | array | yes | – |
| next | string | yes | – |
| notes | string|null | yes | – |
| payment | object | yes | – |
| pickup_available | boolean | yes | – |
| po_number | string|null | yes | – |
| prices_include_gst | boolean | yes | – |
| ready | boolean | yes | – |
| reference | string|null | yes | – |
| service_area | string | yes | – |
| summary | string | – | Show this to the customer exactly as written before placing the order. |
| totals | object | yes | – |
No examples provided.
price_job Price a print job ~229
Prices one exact job with Printdash's pricing engine: a product id and a configuration of option ids (from get_product or match_options). Returns the price ex GST, GST and total inc GST, turnaround, a config_id and a share_url that opens the job on printdash.io; with an Australian postcode (or, signed in, a saved address id) the delivered price too. Signed in, the price is the customer's own account price. If the job cannot be priced it says what is missing, what is wrong, or the nearest combinations that can be. Relay prices exactly as returned. Printdash prints in Australia and delivers within Australia only; prices are in AUD and include GST.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | – | Signed in: a saved address id from list_addresses, instead of a postcode. |
| configuration | object | yes | The job, as option ids from get_product. Everything optional: the result says what is missing. |
| postcode | string | – | An Australian postcode (four digits) for the delivered price. Printdash delivers within Australia only. |
| product_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| config_id | string | – | – |
| configuration_input | object | – | – |
| currency | string | yes | – |
| delivery | – | – | – |
| designs | number | – | – |
| errors | array | – | – |
| missing | array | – | – |
| nearest | array | – | – |
| next | string | yes | – |
| price | object | – | – |
| priced | boolean | yes | – |
| prices_include_gst | boolean | yes | – |
| product | string | yes | – |
| product_id | string | yes | – |
| quantity | number | – | – |
| quantity_per_design | number|null | – | – |
| reason | string | – | – |
| service_area | string | yes | – |
| share_url | string | – | – |
| summary | object | – | – |
| turnaround | string|null | – | – |
No examples provided.
price_quantities Price a job at several quantities ~170
The same job priced at up to 8 quantities (the price ladder), each from Printdash's pricing engine, with the delivered price when an Australian postcode is given. Relay prices exactly as returned. Printdash prints in Australia and delivers within Australia only; prices are in AUD and include GST.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | – | Signed in: a saved address id from list_addresses, instead of a postcode. |
| configuration | object | yes | The job without its quantity (any quantity given is replaced). |
| postcode | string | – | An Australian postcode (four digits) for the delivered price. Printdash delivers within Australia only. |
| product_id | string | yes | – |
| quantities | array | yes | Up to 8 quantities, for example [250, 500, 1000, 2000]. |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | yes | – |
| next | string | yes | – |
| priced_for | string | yes | – |
| prices_include_gst | boolean | yes | – |
| product | string | yes | – |
| product_id | string | yes | – |
| rows | array | yes | – |
| service_area | string | yes | – |
No examples provided.
reject_order Reject a Team order (asks first) ~126
For a Team owner: prepares rejecting one held order, with an optional reason the member who placed it is told, and returns the summary to show the customer and a confirmation_token. Nothing is decided until confirm is called after they agree. Rejecting cancels the order. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| order | string | yes | The order number (or the order id from its link). |
| reason | string | – | Why, in the owner's words; the member who placed it is told. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| confirmation_required | boolean | yes | – |
| confirmation_token | string | yes | – |
| details | object | yes | – |
| expires_at | string | yes | – |
| next | string | yes | – |
| summary | string | yes | Show this to the customer exactly as written before confirming. |
No examples provided.
remove_artwork Remove artwork from a line ~139
Takes artwork off a line: one design's file (design, and side for one face only), or on a one-design job the front, the back, or (no side) every file. The file itself is deleted only if no other line, quote or order uses it. Refused when the line's artwork can no longer change. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| target | object | yes | The line, and the design (and side, for one face only) to remove. On a one-design job, no side removes every file. |
| Name | Type | Req | Description |
|---|---|---|---|
| complete | number | yes | Designs with every face they need. |
| designs | array | yes | Which file and page is each design's front and back, as the site resolves them. |
| files | array | yes | – |
| next | string | yes | – |
| order_item_status | object | – | – |
| removed | boolean | yes | – |
| removed_files | array | yes | – |
| target | object | yes | – |
| total | number | yes | – |
No examples provided.
remove_cart_line Remove a job from the cart ~59
Removes one line from the cart by its line_id. Saved quotes are not affected. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| line_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| cart | object | yes | – |
| currency | string | yes | – |
| line_id | string | yes | – |
| next | string | yes | – |
| prices_include_gst | boolean | yes | – |
| removed | boolean | yes | – |
| service_area | string | yes | – |
No examples provided.
reorder Price an order's job again ~188
Turns one job from a past order (item_id from get_order, where can_reorder is true) back into a configuration and prices it at today's price, optionally at another quantity, exactly as price_job does. Writes nothing: add_to_cart with its product_id and configuration_input puts it in the cart. Jobs priced by Printdash's team (reorder_by_request) go through request_reorder instead. Printdash prints in Australia and delivers within Australia only; prices are in AUD and include GST. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| item_id | string | – | The job's item_id from get_order (optional on a one-job order). |
| order | string | yes | The order number (or the order id from its link). |
| quantity | integer | – | Another quantity; omit for the same. |
| Name | Type | Req | Description |
|---|---|---|---|
| config_id | string | – | – |
| configuration_input | object | – | – |
| currency | string | yes | – |
| delivery | – | – | – |
| designs | number | – | – |
| errors | array | – | – |
| missing | array | – | – |
| nearest | array | – | – |
| next | string | yes | – |
| price | object | – | – |
| priced | boolean | yes | – |
| prices_include_gst | boolean | yes | – |
| product | string | yes | – |
| product_id | string | yes | – |
| quantity | number | – | – |
| quantity_per_design | number|null | – | – |
| reason | string | – | – |
| reorder_of | object | yes | – |
| service_area | string | yes | – |
| share_url | string | – | – |
| summary | object | – | – |
| turnaround | string|null | – | – |
No examples provided.
request_artwork_upload Get an upload link for artwork ~286
For a client that holds the file (Claude Code, Cursor, a script): returns a signed upload_url to PUT the file's bytes to, and an upload_id for attach_artwork. target says where it goes: a cart line (line_id from get_cart), a saved quote's line (line_id from get_quote) or an order job (item_id from get_order), plus design (1 to N, on a job with several designs) and side (front or back). Give the file name with its extension (pdf is best; ai, eps, psd, jpg, png and tif are accepted) and its size in bytes, up to 700 MB. Refused when the line's artwork can no longer change. A chat client that cannot send a file should use attach_artwork_from_url or get_artwork_uploader_link instead. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | – | Optional; the type is decided by the extension, as the site's uploaders do. |
| file_name | string | yes | The file's name with its extension: business-card.pdf. PDF is best. |
| size_bytes | integer | yes | The file's size in bytes (up to 700 MB). |
| target | object | yes | Where the artwork goes. |
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | string | yes | – |
| design | number | yes | – |
| expires_at | string | yes | – |
| file_name | string | yes | – |
| headers | object | yes | – |
| max_bytes | number | yes | – |
| method | string | yes | – |
| next | string | yes | – |
| side | string | yes | – |
| target | object | yes | – |
| upload_id | string | yes | Pass to attach_artwork once the PUT succeeded. |
| upload_url | string | yes | PUT the file's bytes here, with the Content-Type in headers. |
No examples provided.
request_custom_quote Ask Printdash for a custom quote (asks first) ~220
Prepares a custom quote request for a job the catalogue does not cover (description, quantities, size, sides, stock, finishing, deadline, similar product, delivery address): returns the summary to show the customer and a confirmation_token. Nothing is filed or emailed until confirm is called after the customer agrees; then Printdash's team prices it by hand. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | – | A saved address id for delivery. |
| deadline | string | – | Date needed, YYYY-MM-DD. |
| description | string | yes | The job in the customer's words: what it is, size, material, finish. |
| finishing | string | – | – |
| quantities | array | yes | – |
| sides | integer | – | – |
| similar_product_id | string | – | The closest catalogue product, if any. |
| size | string | – | Finished size, for example 90 x 55mm or A5. |
| stock | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| confirmation_required | boolean | yes | – |
| confirmation_token | string | yes | – |
| details | object | yes | – |
| expires_at | string | yes | – |
| next | string | yes | – |
| summary | string | yes | Show this to the customer exactly as written before confirming. |
No examples provided.
request_reorder Ask Printdash to re-price a past job (asks first) ~178
For a job on a past order that Printdash's team priced (reorder_by_request in get_order): prepares the order page's reorder request, at the same or another quantity with optional notes, and returns the summary to show the customer and a confirmation_token. Nothing is filed until confirm is called after the customer agrees; then the team confirms today's price and sends a quote or pay link. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| item_id | string | – | The job's item_id from get_order (optional on a one-job order). |
| notes | string | – | Any change to the specs, in the customer's words. |
| order | string | yes | The order number (or the order id from its link). |
| quantity | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| confirmation_required | boolean | yes | – |
| confirmation_token | string | yes | – |
| details | object | yes | – |
| expires_at | string | yes | – |
| next | string | yes | – |
| summary | string | yes | Show this to the customer exactly as written before confirming. |
No examples provided.
search_products Search Printdash products ~93
Finds the Printdash products that match the customer's words ("A5 flyers", "round stickers", "pull up banner"), best first. Returns ids for get_product, each with the site's from_price (a starting price; price_job gives the exact one). Printdash prints in Australia and delivers within Australia only; prices are in AUD and include GST.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | The customer's words for what they want printed. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | yes | – |
| currency | string | yes | – |
| from_price_note | string | yes | – |
| next | string | yes | – |
| prices_include_gst | boolean | yes | – |
| products | array | yes | – |
| query | string | yes | – |
| service_area | string | yes | – |
No examples provided.
send_invite Invite someone to Printdash (asks first) ~86
Prepares emailing someone an invitation with the customer's referral link: returns the summary to show the customer and a confirmation_token. Nothing is sent until confirm is called after the customer agrees. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Who to invite (not the customer's own address). |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| confirmation_required | boolean | yes | – |
| confirmation_token | string | yes | – |
| details | object | yes | – |
| expires_at | string | yes | – |
| next | string | yes | – |
| summary | string | yes | Show this to the customer exactly as written before confirming. |
No examples provided.
set_context Switch between personal and a Team ~101
Switches the account between buying personally and buying as one of its Teams, as the account menu's Viewing as does on printdash.io. Prices, quotes, orders and addresses follow the context. Pass team_id null for personal. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| team_id | string|null | yes | A team_id from get_account's contexts, or null for personal. |
| Name | Type | Req | Description |
|---|---|---|---|
| active_context | object | yes | – |
| buying_as | string | yes | – |
| next | string | yes | – |
| on_account | boolean | yes | – |
| orders_need_owner_approval | boolean | yes | – |
| po_required | boolean | – | – |
| switched | boolean | yes | – |
| terms | string | – | – |
| tier | string | yes | – |
No examples provided.
set_default_address Make an address the default ~62
Makes one saved address the default for the current buying context; checkout and new quotes start from it. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| default_address | object | yes | – |
| next | string | yes | – |
No examples provided.
share_quote Get a quote's public link ~133
Makes, or returns the existing, public link for a saved quote: the page where the customer's client can view and approve it, and pay online when allow_payment is on. The link never changes once made. It sends nothing (email_quote does). Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_payment | boolean | – | Let the recipient pay online from the link. Omit to keep the quote's current setting (off for a new link). |
| quote | string | yes | The quote number (or the quote id from its link). |
| Name | Type | Req | Description |
|---|---|---|---|
| allow_payment | boolean | yes | – |
| next | string | yes | – |
| quote_number | string | yes | – |
| reused | boolean | yes | – |
| share_url | string | yes | – |
| status | string | yes | – |
| status_label | string | yes | – |
| url | string | yes | – |
No examples provided.
update_address Change a saved address ~217
Changes the fields given on one saved address (from list_addresses); the rest stay. If an order or quote was made with it, the change is saved as a new address with a new id (the result's address.id) and the orders and quotes keep the old one. Australian state codes and four-digit postcodes only. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | string | yes | An address id from list_addresses. |
| address_line1 | string | – | Street address. |
| address_line2 | string | – | – |
| city | string | – | Suburb or town. |
| company_name | string | – | – |
| first_name | string | – | – |
| last_name | string | – | – |
| mobile | string | – | – |
| postal_code | string | – | Four-digit Australian postcode. |
| state | string | – | NSW, VIC, QLD, SA, WA, TAS, NT or ACT. |
| type | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| address | object | yes | – |
| next | string | yes | – |
| outcome | string | yes | replaced: an order or quote used the address, so the edit was saved as a new address (address.id is new) and the old one kept for those records (#669). |
| replaced_address_id | string | – | The old id, when replaced. It no longer works. |
| updated | array | yes | – |
No examples provided.
update_cart_line Change a job in the cart ~128
Changes one cart line's options (only what is given: a new quantity, stock, finish or size) and re-prices it with the pricing engine. A line from a quote Printdash priced cannot be changed. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| configuration | object | yes | Only the options that change, as option ids: a new quantity, stock, finishing ids or size. Finishing ids replace the line's finishing. |
| line_id | string | yes | A line_id from get_cart. |
| Name | Type | Req | Description |
|---|---|---|---|
| added | boolean | – | – |
| cart | object | – | – |
| configuration_input | object | – | – |
| currency | string | yes | – |
| errors | array | – | – |
| line_id | string | – | – |
| missing | array | – | – |
| nearest | array | – | – |
| next | string | yes | – |
| price | object | – | – |
| priced | boolean | – | – |
| prices_include_gst | boolean | yes | – |
| product | string | yes | – |
| product_id | string | yes | – |
| reason | string | – | – |
| service_area | string | yes | – |
| turnaround | string|null | – | – |
| updated | boolean | – | – |
No examples provided.
update_quote Change a saved quote ~163
Changes a saved quote in place: lines to change (line_id plus only the options that change) or add (product_id and configuration), lines to remove, the reference, notes or delivery address. Changed and added lines are re-priced by the engine; untouched lines keep their prices. Accepted, ordered, expired and team-priced quotes cannot be changed. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.
| Name | Type | Req | Description |
|---|---|---|---|
| address_id | – | – | A saved address id, or null to clear it. |
| lines | array | – | – |
| notes | – | – | – |
| quote | string | yes | The quote number (or the quote id from its link). |
| reference | – | – | – |
| remove_line_ids | array | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| added_line_ids | array | – | – |
| changed_line_ids | array | – | – |
| currency | string | yes | – |
| errors | array | – | – |
| expires | string|null | – | – |
| line_index | number | – | – |
| lines | array | – | – |
| missing | array | – | – |
| nearest | array | – | – |
| next | string | yes | – |
| pickup | boolean | – | – |
| priced | boolean | – | – |
| prices_include_gst | boolean | yes | – |
| product | string | – | – |
| product_id | string | – | – |
| quote_number | string | – | – |
| reason | string | – | – |
| reference | string|null | – | – |
| removed_line_ids | array | – | – |
| service_area | string | yes | – |
| share_url | string|null | – | – |
| shipping_ex_gst | number|null | – | – |
| status | string | – | – |
| status_label | string | – | – |
| subtotal_inc_gst | number | – | – |
| total_inc_gst | number | – | The quote page's Total, inc GST: subtotal_inc_gst (the lines) plus delivery (shipping_ex_gst) and its GST. |
| updated | boolean | yes | – |
| url | string | – | – |
No examples provided.
How do I install the Printdash MCP server?
Printdash is a hosted endpoint at https://api.printdash.io/functions/v1/mcp, 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 · api.printdash.io
claude mcp add --transport http io-printdash-printdash 'https://api.printdash.io/functions/v1/mcp'
What is the Printdash MCP server?
Printdash is an MCP server listed in the public MCP registry as io.printdash/printdash. Online printing for Australia: products, exact prices, quotes, artwork checks and orders. This page covers its hosted endpoint (https://api.printdash.io/functions/v1/mcp).
Is the Printdash MCP server safe to use?
Printdash scores 70 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 Printdash MCP server expose?
Printdash exposes 58 tools: ping, list_products, search_products, get_product, match_options, and 53 more. Their descriptions and schemas cost roughly 8,114 tokens of context every time the server is loaded.
Does the Printdash MCP server require authentication?
No. We connected to Printdash without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Printdash MCP server still maintained?
Printdash 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.