Read this when you want an AI app to work in a PrintShrimp account without writing code against the API. Apps that support MCP (Model Context Protocol), such as Claude, Claude Code and Cursor, can connect to our MCP server once and then quote prices, save products, create listing drafts, place orders and check tracking when asked in plain language.
In short
- Our MCP server is at
https://api.printshrimp.com/functions/v1/mcp. Add it to an AI app once and every API endpoint becomes a tool the app can call. - It uses the seller’s API key, the same one the API uses. Send it in the
x-api-keyheader. Apps that can’t send headers, like claude.ai, put it on the end of the URL as?key=. - There are 15 tools: one per endpoint, plus
get_api_reference, which returns the whole API reference so an AI can write code against the API. - Each tool does exactly what its endpoint does, with the same rules, rate limits and errors.
- Every key is live.
create_ordermakes a real order, and with auto-pay on it is paid, printed and shipped.
Before you start
- A PrintShrimp account and an API key from Tools → Developer (see Get Access).
- An AI app that supports remote MCP servers over HTTP.
- Know how Settings → Order Automation → “Auto-pay from wallet” is set. It decides whether an order placed from the app waits unpaid in Create Orders or is paid and printed.
Connect your app
The server URL is the same for every app:
https://api.printshrimp.com/functions/v1/mcp
Claude Code
claude mcp add --transport http printshrimp https://api.printshrimp.com/functions/v1/mcp --header "x-api-key: $PS_API_KEY"
Cursor (.cursor/mcp.json), and any other app that takes a URL plus headers:
{
"mcpServers": {
"printshrimp": {
"url": "https://api.printshrimp.com/functions/v1/mcp",
"headers": { "x-api-key": "YOUR_KEY" }
}
}
}
Authorization: Bearer YOUR_KEY works in place of the x-api-key header.
claude.ai
Go to Settings → Connectors → Add custom connector, name it PrintShrimp, and use this URL with the key on the end:
https://api.printshrimp.com/functions/v1/mcp?key=YOUR_KEY
claude.ai can’t send headers, so the key has to go in the link. That makes the link as secret as the key: don’t share it or paste it anywhere else.
Check it works
Ask the app: “What does an A3 print cost to the UK on PrintShrimp?” It should call get_pricing and answer with the price and shipping. If the answer says the key is missing or invalid, check the key in the app’s settings, or in the URL for claude.ai.
The tools
| Tool | What it does | Endpoint |
|---|---|---|
get_pricing |
Prices, shipping and VAT per size for one country | GET /api-get-pricing |
get_products |
One saved product by SKU, or all products 25 per page | GET /api-get-product |
create_product |
Save a product with artwork per size | POST /api-create-product |
update_product |
Rename, change SKU, replace or add artwork | PUT /api-update-product |
delete_product |
Delete a product or one size of it | DELETE /api-delete-product |
get_templates |
The account’s listing templates | GET /api-get-templates |
create_listing_drafts |
Turn 1 to 10 artworks into listing drafts with AI writing and mockups | POST /api-bulk-list |
get_listing_drafts |
Progress of listing drafts | GET /api-bulk-list |
create_bundle |
Make a bundle SKU from saved products | POST /api-create-bundle |
get_bundles |
One bundle by SKU, or all bundles | GET /api-get-bundle |
delete_bundle |
Delete a bundle, keeping its products | DELETE /api-delete-bundle |
create_order |
Place a real order | POST /api-create-order |
get_orders |
One order with status and tracking, or all paid orders | GET /api-get-order |
delete_order |
Delete an unpaid order from Create Orders | DELETE /api-delete-order |
get_api_reference |
The full API reference, every route with request, response and errors | none |
Read tools are marked read-only, and tools that replace or delete data are marked destructive, so apps that ask before acting can tell them apart. Most apps ask before the first use of a tool.
Orders from an AI app
create_order is the same call as POST /api-create-order, with one difference: external_order_number is required. A second order with the same number is refused, so if the app retries, it can’t place the same order twice.
The order lands in Create Orders as Pending. With auto-pay off, it waits there until the seller pays it. With auto-pay on, it is paid from the wallet after the seller’s chosen delay, then printed and shipped. Check the address and items before you let the app place an order.
When a tool fails
The tool returns the endpoint’s own status and error, for example PrintShrimp API error 409: {"error":"SKU \"MSP-001\" already exists"}. A 401 also reminds you to check the key. Fix and retry the same way you would with the API (see Limits and Errors).
Rules and limits
- Same rate limits as the API, per account, shared with every key and with direct API calls. Each tool call is one API call. Listing the tools and
get_api_referencedon’t count. - No test mode. Every key is live and every order is real.
- The MCP server can’t do anything the API can’t. It doesn’t publish drafts to Etsy or Shopify, pay orders, top up the wallet or make templates. Those stay with the seller.
- A key in a URL is only for apps that can’t send headers. If a link with a key is shared by mistake, revoke the key in Tools → Developer and make a new one.
- Remote MCP over HTTP (Streamable HTTP), plain JSON replies, no sessions. There’s no sign-in with a PrintShrimp login (OAuth): the API key is the only way in.
What this page doesn’t cover
- Getting an API key: Get Access.
- Every field, response and error: API Reference.
- Rate limits and safe retries: Limits and Errors.
Next
Previous: Get Access · Next: Quickstart · Back to the hub: PrintShrimp for AI agents
Last updated 21 October 2026.