# Customnia MCP server

Order custom printed T-shirts, hoodies, hats and bags from an AI agent. Customnia is a print house in New York and
Los Angeles; this is its MCP server (Streamable HTTP) at:

```
https://api.customnia.com/mcp
```

Add it to Claude Code, Cursor, VS Code or any MCP client that takes a server URL. Then ask in plain words, for
example: *"Make 12 black T-shirts with this logo on the front, sizes M and L, ship to my office in Brooklyn — show me
the price first."*

## What it does

- **Without a key:** signs a person up. `start_signup` emails a 6-digit code, `verify_signup` trades it for the
  person's keys: a test key (`cn_test_…`, never printed or charged) and a live key (`cn_live_…`).
- **With a key:** the catalog with prices, designs from a PNG (its background removed if asked), from words in the
  designer's fonts or from layers, mockups, quotes, orders, their status,
  cancelling and changing the address.
  - People ordering for themselves (buyer keys) confirm a phone by SMS and save a card on a Customnia page, once;
    after that the agent orders and the card is charged, without a browser.
  - Stores (keys issued by Customnia) work with wholesale prices; their real orders come from their own server.

## Connect

No key yet — connect without one and let the agent sign you up:

```bash
claude mcp add --transport http customnia https://api.customnia.com/mcp
```

With a key (start with the test key):

```bash
claude mcp add --transport http customnia https://api.customnia.com/mcp \
  --header "Authorization: Bearer cn_test_…"
```

Cursor, `~/.cursor/mcp.json`:

```json
{"mcpServers": {"customnia": {"url": "https://api.customnia.com/mcp",
  "headers": {"Authorization": "Bearer cn_test_…"}}}}
```

**ChatGPT, claude.ai, Claude Desktop and other apps with connectors** sign in instead of taking a key. Add a custom
connector with this URL:

```
https://api.customnia.com/connect
```

The app opens Customnia's sign-in: your email, the 6-digit code from it, then test or real orders. No key to copy;
new to Customnia, it signs you up.

## Tools

| With | Tools |
|---|---|
| no key | `start_signup`, `verify_signup` |
| any key | `get_account`, `list_fonts`, `search_catalog`, `get_blank`, `create_design`, `get_design`, `list_designs`, `copy_design`, `get_mockup`, `designer_link`, `quote_order`, `get_order`, `list_orders`, `cancel_order`, `change_order_address` |
| buyer's live key | `setup_payments` (a page where the person confirms a phone and saves a card), `place_order` (charged to the saved card) |
| test key | `place_order` (test orders), `simulate_order` |
| store's live key | `claim_designs` |

## Safe by design

- An order is placed only with `expected_total`, the quote total the person agreed to; if the price changed, nothing
  is charged and the agent gets the new quote.
- The same `reference` never orders or charges twice.
- Cards are saved on Stripe's page; card numbers never reach Customnia or the agent.
- Until printing starts an order can be cancelled and the card is refunded in full.
- A person can cap what their agent spends: per order and per day.

## More

- Guide for people ordering for themselves: https://api.customnia.com/docs/order
- Step-by-step instructions for an agent: https://api.customnia.com/docs/order.md
- API summary for agents: https://api.customnia.com/llms.txt
- Every endpoint: https://api.customnia.com/docs/reference

Questions: hello@customnia.com
