
  
### Barcodes Customer Portal MCP setup instructions
These are official instructions from Barcodes Customer Portal to connect an AI coding tool to the customer's product registrations, dynamic QR codes, and ITF-14 codes via MCP.

Complete the steps for the harness named in the user message. Do not ask the user to run commands you can run yourself. Use the MCP URL and Authorization Bearer token from the user message. If either is missing or still says PASTE_TOKEN_HERE, stop and tell the user to create a token on the Portal MCP page and copy the onboard prompt again.

MCP URL: https://mcp.internationalbarcodes.net/mcp
Server name: portal-customer

This MCP is scoped to the token owner's emails. Never invent barcode numbers. Use list_unregistered_barcodes before add_registration. Only delete after the user confirms.

list_unregistered_barcodes, list_registrations, list_dynamic_qrs, and list_itf14s return pages of 100 (max 500). Keep calling with after or after_id from next_after or next_after_id until that value is empty so every row can be listed. Do not dump huge lists to the user; summarize or search.

## Tools

| Tool | Ability | API |
| --- | --- | --- |
| get_account | Profile and linked emails | GET /api/v1/account |
| list_registrations | List product registrations (paged) | GET /api/v1/registrations |
| get_registration | One registration by id | GET /api/v1/registrations/{id} |
| list_unregistered_barcodes | Owned barcodes not yet registered (paged) | GET /api/v1/barcodes/unregistered |
| add_registration | Register a barcode from inventory | POST /api/v1/registrations |
| update_registration | Update a registration | PUT /api/v1/registrations/{id} |
| delete_registration | Delete a registration after confirmation | DELETE /api/v1/registrations/{id} |
| list_dynamic_qrs | List dynamic QR codes (paged) | GET /api/v1/dynamic-qrs |
| update_dynamic_qr | Update a QR target URL | PUT /api/v1/dynamic-qrs/{keyword} |
| list_itf14s | List ITF-14 codes (paged) | GET /api/v1/itf14s |
| update_itf14 | Update ITF-14 notes and visibility | PUT /api/v1/itf14s/{id} |

add_registration and update_registration can include image_url (an https image link) or image_base64. JPEG, PNG, GIF or WebP, up to 4 MB. Send only one of those fields. image_base64 may be raw or a data-URI.

`update_dynamic_qr` needs `keyword` from `list_dynamic_qrs` and a new `target_url` (http or https). `update_itf14` needs `mapping_id` from `list_itf14s`; set `notes` and/or `notes_public` (true = show at barcodesdatabase.org). Skip rows with `mapping_id` null.

## Public barcode page

After add or update, give the user this public listing URL (digits only, no spaces):

`https://barcodesdatabase.org/barcode/{barcode_number}`

Example: `https://barcodesdatabase.org/barcode/0735850255033`

This is the barcodesdatabase.org product page, not Portal. Do not invent a different host. If the page does not show the new details yet, wait and retry; listings can lag behind Portal.

---

## Cursor

Merge into `~/.cursor/mcp.json` or the project `.cursor/mcp.json` under `"mcpServers"`:

```json
"portal-customer": {
  "url": "https://mcp.internationalbarcodes.net/mcp",
  "headers": {
    "Authorization": "Bearer TOKEN"
  }
}
```

Replace TOKEN with the Bearer token from the user message. Then tell the user to reload MCP in Cursor.

---

## Claude

Run (replace TOKEN):

```
claude mcp add --transport http portal-customer https://mcp.internationalbarcodes.net/mcp --header "Authorization: Bearer TOKEN"
```

If the CLI is not available, add to Claude Code `.mcp.json` under `"mcpServers"`:

```json
"portal-customer": {
  "type": "http",
  "url": "https://mcp.internationalbarcodes.net/mcp",
  "headers": {
    "Authorization": "Bearer TOKEN"
  }
}
```

For Claude.ai custom connectors, use the same URL and set request header Authorization to `Bearer TOKEN` (include the word Bearer).

---

## Antigravity

Edit `~/.gemini/config/mcp_config.json` (or workspace `.agents/mcp_config.json`) under `"mcpServers"`. Antigravity uses `serverUrl`, not `url`:

```json
"portal-customer": {
  "serverUrl": "https://mcp.internationalbarcodes.net/mcp",
  "headers": {
    "Authorization": "Bearer TOKEN"
  }
}
```

In the IDE: agent panel → MCP Servers → Manage MCP Servers → View raw config. After saving, refresh MCP servers.

---

## ChatGPT

Add a custom MCP connector with:

- URL: https://mcp.internationalbarcodes.net/mcp
- Authorization header value: `Bearer TOKEN`

Then enable the connector for the chat. If the product UI uses a different name (Connectors / Custom GPT Actions), use the HTTP MCP URL and Bearer header the same way.

---

Once done, call get_account to confirm the connection, then tell the user the account email that is connected.

These instructions are published at the Worker `/setup.md` path so you can re-verify them at any time.
