OpenPrints MCP
OfficialGenerates Stripe Checkout URLs to top up account balance via Stripe payment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenPrints MCPOrder a medium white t-shirt with my design at https://example.com/logo.png"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@openprints/mcp
MCP server for the OpenPrints print-on-demand API. Lets AI agents browse products, upload designs, place print orders, track shipments, and manage account balance — all through natural language.
Tools
Tool | Description |
| Browse available print products and variants with pricing |
| Register a design image URL for reuse across orders |
| Preview a product with an optional design before ordering |
| Place a print order — charges pre-paid balance, sends to production |
| Check status and tracking info for an order |
| Cancel an order and refund to account balance |
| List recent orders with optional status filter and pagination |
| Check pre-paid account balance |
| Generate a Stripe Checkout URL to add credit |
Installation
Requirements: Node.js 18+
npm install -g @openprints/mcpOr run directly without installing:
npx @openprints/mcpConfiguration
Two environment variables:
Variable | Required | Default | Description |
| Yes | — | Your OpenPrints API key ( |
| No |
| Base URL of the OpenPrints API |
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openprints": {
"command": "npx",
"args": ["-y", "@openprints/mcp"],
"env": {
"OPENPRINTS_API_KEY": "sk_test_your_key_here",
"OPENPRINTS_API_URL": "https://api.openprints.io"
}
}
}
}Or if you installed globally:
{
"mcpServers": {
"openprints": {
"command": "openprints-mcp",
"env": {
"OPENPRINTS_API_KEY": "sk_test_your_key_here",
"OPENPRINTS_API_URL": "https://api.openprints.io"
}
}
}
}Example workflows
Place an order from scratch:
"List available products, then order a medium white t-shirt with my logo at https://example.com/logo.png, ship to Jane Smith at 10 Downing Street, London SW1A 2AA, GB."
Check on a recent order:
"What's the status of order ord_abc123? Has it shipped yet?"
Top up balance:
"Add £50 to my OpenPrints balance."
Reuse a design across multiple orders:
"Upload my design from https://cdn.example.com/design.png, then place three orders — one for each size."
Tool reference
list_products
Returns all products with variants, SKUs, and prices.
Parameter | Type | Default | Description |
|
|
| Response format |
upload_design
Registers a design URL. Returns a design_id for reuse.
Parameter | Type | Description |
| string (URL) | Publicly accessible image URL (PNG, JPG, or PDF) |
preview_product
Shows product info and variants. With a design, shows a print-ready summary.
Parameter | Type | Description |
| string | Product ID from |
| string (URL) | Optional design image URL |
| string | Optional design ID from |
|
| Response format |
create_order
Places a print order. Charges the pre-paid account balance.
Parameter | Type | Description |
| string | Product ID from |
| string | Design ID from |
| string (URL) | Design image URL (use this or |
| string | Recipient full name |
| string | Address line 1 |
| string | Address line 2 (optional) |
| string | City |
| string | Postcode / ZIP |
| string | ISO 3166-1 alpha-2 country code (e.g. |
get_order_status
Returns status, tracking number, carrier, and shipping info.
Parameter | Type | Description |
| string | Order ID from |
|
| Response format |
cancel_order
Cancels an order and refunds the amount to account balance. Irreversible.
Parameter | Type | Description |
| string | Order ID to cancel |
list_orders
Lists orders with optional filtering and cursor pagination.
Parameter | Type | Default | Description |
| string | — | Filter by status ( |
| number |
| Results per page (1–100) |
| string | — | Pagination cursor — last |
|
|
| Response format |
get_balance
Returns the current pre-paid account balance in pence (GBP).
No parameters.
topup_balance
Creates a Stripe Checkout session. Returns a URL the user must open in their browser to complete payment. Does not charge the card directly.
Parameter | Type | Description |
| number | Amount to add in pence (min 100 = £1.00) |
| string (URL) | Redirect URL after successful payment |
| string (URL) | Redirect URL if payment is cancelled |
Order statuses
Status | Meaning |
| Payment captured, awaiting production handoff |
| Sent to ShipStation, being printed |
| ShipStation push failed, will be retried |
| Dispatched — tracking number available |
| Confirmed delivered |
| Cancelled before production |
| Refunded after production |
| Chargeback opened |
| Payment capture failed |
Development
git clone https://github.com/openprints/mcp
cd mcp
npm install
npm run build
OPENPRINTS_API_KEY=sk_test_xxx npm startLicense
MIT — see LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/openprints/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server