massprint
by toongen.app · remote · no sign-in to list tools · v1.0.0 · published by app.toongen
Print-on-demand for agents: upload a PDF, get a printed book delivered in India.
7 tools: 1 can delete or cancel things, 3 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http massprint https://print.toongen.app/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
7 tools
Deletes or cancels 1Claude Code: deny
cancel_orderCancel an order, stopping it before it is printed.No findings
Why it is in this group
- The name "cancel_order" says "cancel": a word for removing or ending something.
Description, as the server wrote it Cancel an order, stopping it before it is printed. With the order_token from create_order this works while the order is awaiting_payment. A platform that sends its own API key (Authorization: Bearer mp_live_...) can additionally cancel an order THAT KEY created while it is confirmed or printing — that is how you stop a press when your customer cancels on your side. shipped and delivered can never be canceled; that is a refund, contact support (see get_catalog). Canceling stops production but moves no money, and it releases the order's client_reference — replaying that reference afterwards creates a new order and prints it. If the order moved on before the cancel landed you get not_cancellable naming its new status, never a false "canceled".
Changes things 3Claude Code: ask
apply_enterpriseApply for an enterprise (invoiced) account — for platforms printing at volume behind their own checkout.No findings
Why it is in this group
- The name "apply_enterprise" says "apply": a word for a change.
Description, as the server wrote it Apply for an enterprise (invoiced) account — for platforms printing at volume behind their own checkout. Enterprise orders auto-confirm with no payment link, are priced at a platform discount off retail (default 25% below), and are settled monthly. Requires a valid India GSTIN for tax invoicing. This does NOT issue a key immediately: the application is reviewed and, once approved, an API key is emailed to contact_email. Use this only when a human has asked to set up a business/enterprise print account.
create_orderCreate a print order for a validated upload.No findings
Why it is in this group
- The name "create_order" says "create": a word for a change.
Description, as the server wrote it Create a print order for a validated upload. Validates everything BEFORE any payment link is minted. Returns { order, order_token } — the order object has order_id, status, amount, and payment_url (the Razorpay link, present while awaiting_payment). Give payment_url to the human to pay (UPI/cards/netbanking). SAVE order_token — it is shown only once and is required for get_order and cancel_order. The order confirms automatically after payment; unpaid orders expire after 72 hours.
create_uploadStart a PDF upload.No findings
Why it is in this group
- The name "create_upload" says "create": a word for a change.
Description, as the server wrote it Start a PDF upload. Returns {upload_id, put_url, expires_at, max_bytes}. HTTP PUT the raw PDF bytes to put_url (Content-Type: application/pdf, no auth needed — the URL is signed). The PUT response includes the validation report. Then pass upload_id to create_order. Keyless use is bounded per calling origin: 20 create_upload calls per hour, at most 5 unused uploads open at a time, and put_url expires in 2 hours — so PUT the bytes promptly and reuse an upload_id you already hold instead of creating extras. An API key (see apply_enterprise) lifts both limits.
Only reads 3Claude Code: allow
get_catalogList what can be printed: SKUs (storybook books, sticker-a3 wall charts, greeting-card-a5 folded cards), formats, supported trim sizes, page-count limits, prices (INR, shipping inc…No findings
Why it is in this group
- The name "get_catalog" says "get": a word for reading.
Description, as the server wrote it List what can be printed: SKUs (storybook books, sticker-a3 wall charts, greeting-card-a5 folded cards), formats, supported trim sizes, page-count limits, prices (INR, shipping included), and shipping coverage (India only). Call this first to quote a price or check whether a PDF will be accepted.
get_orderCheck an order: status (awaiting_payment → confirmed → printing → shipped → delivered), tracking number once shipped, and — while unpaid — the payment_url again (so you can always …No findings
Why it is in this group
- The name "get_order" says "get": a word for reading.
Description, as the server wrote it Check an order: status (awaiting_payment → confirmed → printing → shipped → delivered), tracking number once shipped, and — while unpaid — the payment_url again (so you can always re-answer "how do I pay"). Requires the order_token from create_order, or the API key that created the order (Authorization: Bearer mp_live_...).
validate_pdfGet the print-validation report for an uploaded PDF before paying: page count, trim size, hard errors (blocking) and soft warnings (non-blocking).No findings
Why it is in this group
- The name "validate_pdf" says "validate": a word for reading.
Description, as the server wrote it Get the print-validation report for an uploaded PDF before paying: page count, trim size, hard errors (blocking) and soft warnings (non-blocking). Every error includes a `resolution` explaining how to fix it. Free to call; use it to check printability before create_order.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http massprint https://print.toongen.app/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__massprint__get_catalog",
"mcp__massprint__validate_pdf",
"mcp__massprint__get_order"
],
"ask": [
"mcp__massprint__create_upload",
"mcp__massprint__create_order",
"mcp__massprint__apply_enterprise"
],
"deny": [
"mcp__massprint__cancel_order"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as massprint. Review it before you use it.