OpenPrints MCP

OpenPrints MCP

Enables AI agents to browse products, upload designs, place print orders, track shipments, and manage account balance via natural language.

Category
访问服务器

README

@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
list_products Browse available print products and variants with pricing
upload_design Register a design image URL for reuse across orders
preview_product Preview a product with an optional design before ordering
create_order Place a print order — charges pre-paid balance, sends to production
get_order_status Check status and tracking info for an order
cancel_order Cancel an order and refund to account balance
list_orders List recent orders with optional status filter and pagination
get_balance Check pre-paid account balance
topup_balance Generate a Stripe Checkout URL to add credit

Installation

Requirements: Node.js 18+

npm install -g @openprints/mcp

Or run directly without installing:

npx @openprints/mcp

Configuration

Two environment variables:

Variable Required Default Description
OPENPRINTS_API_KEY Yes — Your OpenPrints API key (sk_test_...)
OPENPRINTS_API_URL No http://localhost:3000 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
format markdown | json markdown Response format

upload_design

Registers a design URL. Returns a design_id for reuse.

Parameter Type Description
url 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
product_id string Product ID from list_products
design_url string (URL) Optional design image URL
design_id string Optional design ID from upload_design
format markdown | json Response format

create_order

Places a print order. Charges the pre-paid account balance.

Parameter Type Description
product_id string Product ID from list_products
design_id string Design ID from upload_design (use this or design_url)
design_url string (URL) Design image URL (use this or design_id)
address_name string Recipient full name
address_line1 string Address line 1
address_line2 string Address line 2 (optional)
address_city string City
address_postcode string Postcode / ZIP
address_country string ISO 3166-1 alpha-2 country code (e.g. GB, US)

get_order_status

Returns status, tracking number, carrier, and shipping info.

Parameter Type Description
order_id string Order ID from create_order
format markdown | json Response format

cancel_order

Cancels an order and refunds the amount to account balance. Irreversible.

Parameter Type Description
order_id string Order ID to cancel

list_orders

Lists orders with optional filtering and cursor pagination.

Parameter Type Default Description
status string — Filter by status (in_production, shipped, delivered, cancelled, …)
limit number 20 Results per page (1–100)
starting_after string — Pagination cursor — last order_id from previous page
format markdown | json markdown 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
amount_cents number Amount to add in pence (min 100 = £1.00)
success_url string (URL) Redirect URL after successful payment
cancel_url string (URL) Redirect URL if payment is cancelled

Order statuses

Status Meaning
payment_succeeded Payment captured, awaiting production handoff
in_production Sent to ShipStation, being printed
fulfillment_queued ShipStation push failed, will be retried
shipped Dispatched — tracking number available
delivered Confirmed delivered
cancelled Cancelled before production
refunded Refunded after production
disputed Chargeback opened
payment_failed 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 start

License

MIT — see LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选