# `com.sellertoolbelt/mcp` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/com.sellertoolbelt/mcp
- JSON: https://anlyon.dev/api/v1/servers/com.sellertoolbelt/mcp
- Version: 1.0.0 (active)
- Publisher: com.sellertoolbelt (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-10-21T18:04:31.526Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Seller Toolbelt
Check and fix Amazon, eBay and Etsy product images, calculate marketplace fees, look up barcodes.
```

Scanned 2026-10-21T18:55:08.526Z over streamable-http.

**11 tools: 3 can delete or cancel things, 7 change things and 1 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 3 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 7 | ask |
| Only reads | read | 1 | allow |

## Findings

- **warn** Annotations that disagree with the tool in `lookup_barcode` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "lookup_barcode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lookup_barcode" says "lookup": a word for reading.
```

- **warn** Annotations that disagree with the tool in `generate_qr_code` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "generate_qr_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "generate_qr_code" says "generate": a word for a change.
```

- **warn** Annotations that disagree with the tool in `make_compliant_main_image` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "make_compliant_main_image" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
```

- **warn** Annotations that disagree with the tool in `remove_background` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "remove_background" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true}; The name "remove_background" says "remove": a word for removing or ending something.
```

- **warn** Annotations that disagree with the tool in `change_background_color` ([annotation-conflict](https://anlyon.dev/methodology#annotation-conflict))

```untrusted-server-text
The server marks "change_background_color" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".

annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true}; The description's first verb is "remove": a word for removing or ending something.
```


## Deletes or cancels (3)

Removes, cancels or revokes something. Claude Code: deny.

### `change_background_color`

- The description's first verb is "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Removes the background and places the product on a solid colour: white, light_gray, gray, black, beige, studio_blue, soft_pink, or custom with hex. Without an API key: returns a free watermarked preview (≤700px) plus unlock_url, which a human opens to download the full-resolution file for site credits (then call get_result). With an API key (Authorization: Bearer stb_…): returns download_url for the full-resolution file directly and charges the key owner's credits when the job starts, refunded automatically if processing fails. Retrying a call creates and charges a new job — use get_result to fetch an earlier one.
```

### `make_compliant_main_image`

- The description's first verb is "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Removes the background, centres and scales the product on pure white, sizes and encodes it to the marketplace spec (Amazon, eBay or Etsy), then re-checks the result and returns the per-rule verdict as proof. Without an API key: returns a free watermarked preview (≤700px) plus unlock_url, which a human opens to download the full-resolution file for site credits (then call get_result). With an API key (Authorization: Bearer stb_…): returns download_url for the full-resolution file directly and charges the key owner's credits when the job starts, refunded automatically if processing fails. Retrying a call creates and charges a new job — use get_result to fetch an earlier one.
```

### `remove_background`

- The name "remove_background" says "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Cuts the product out of its background and returns a transparent PNG. Without an API key: returns a free watermarked preview (≤700px) plus unlock_url, which a human opens to download the full-resolution file for site credits (then call get_result). With an API key (Authorization: Bearer stb_…): returns download_url for the full-resolution file directly and charges the key owner's credits when the job starts, refunded automatically if processing fails. Retrying a call creates and charges a new job — use get_result to fetch an earlier one.
```

## Changes things (7)

Creates or changes something that can be changed back. Claude Code: ask.

### `add_watermark`

- The name "add_watermark" says "add": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Stamps text (e.g. "© Your Brand") on an image in a corner, the centre, or tiled diagonally. Without an API key: returns a free watermarked preview (≤700px) plus unlock_url, which a human opens to download the full-resolution file for site credits (then call get_result). With an API key (Authorization: Bearer stb_…): returns download_url for the full-resolution file directly and charges the key owner's credits when the job starts, refunded automatically if processing fails. Retrying a call creates and charges a new job — use get_result to fetch an earlier one.
```

### `calculate_marketplace_fees`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Computes selling fees, net profit, margin and ROI for one sale on Amazon, eBay or Etsy from the sale price, shipping and costs. Category sets the default fee rate: amazon: default (15%), electronics (8%), computers (7%), clothing (17%), home (15%), toys (15%), books (15%); ebay: default (13.25%), electronics (9%), books (14.95%), clothing (13.25%); etsy: default (6.5%). Rates are 2026 estimates and vary by region; pass fee_rate_percent to override. Currency-agnostic. Free.
```

### `check_listing_image`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
Deterministically checks whether a product photo meets the main-image requirements of Amazon, eBay or Etsy (pure white background, product fill, minimum resolution, file format, colour space, borders, aspect ratio, sharpness, stray text/watermarks). Measured from the actual pixels, not guessed by a vision model. Returns pass / warn / fail with a reason per rule. Use before uploading a listing image. Free.
```

### `convert_image`

- The name "convert_image" says "convert": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Re-encodes an image as jpeg, png, webp, avif at a chosen quality, to change format or shrink file size. JPEG flattens transparency to white. Without an API key: returns a free watermarked preview (≤700px) plus unlock_url, which a human opens to download the full-resolution file for site credits (then call get_result). With an API key (Authorization: Bearer stb_…): returns download_url for the full-resolution file directly and charges the key owner's credits when the job starts, refunded automatically if processing fails. Retrying a call creates and charges a new job — use get_result to fetch an earlier one.
```

### `generate_qr_code`

- The name "generate_qr_code" says "generate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Generates a QR code image (PNG) or SVG markup for any text or URL, e.g. for packaging inserts, product labels or invoices. Free.
```

### `lookup_barcode`

- The name "lookup_barcode" says "lookup": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Finds product details (title, brand, category, image, description) for a UPC, EAN or GTIN barcode, using open product catalogs (strong for UK/EU groceries, drinks and cosmetics). Free.
```

### `resize_for_marketplace`

- The name "resize_for_marketplace" says "resize": a word for a change.

Description, as the server wrote it:

```untrusted-server-text
Fits the image onto an exact canvas, padding with white: amazon (2000×2000), ebay (1600×1600), etsy (2000×2000), square (1080×1080), instagram_portrait (1080×1350), story (1080×1920), or custom width/height. Without an API key: returns a free watermarked preview (≤700px) plus unlock_url, which a human opens to download the full-resolution file for site credits (then call get_result). With an API key (Authorization: Bearer stb_…): returns download_url for the full-resolution file directly and charges the key owner's credits when the job starts, refunded automatically if processing fails. Retrying a call creates and charges a new job — use get_result to fetch an earlier one.
```

## Only reads (1)

Looks things up and changes nothing. Claude Code: allow.

### `get_result`

- The name "get_result" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
Checks a job created by one of the image tools. Returns download_url once it is unlocked (API-key jobs are paid up front; anonymous ones by a human via unlock_url). Otherwise returns the status, preview_url and unlock_url. Never charges. Anonymous results expire 24h after creation unless claimed.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `sellertoolbelt`:

```json
{
  "permissions": {
    "allow": [
      "mcp__sellertoolbelt__get_result"
    ],
    "ask": [
      "mcp__sellertoolbelt__check_listing_image",
      "mcp__sellertoolbelt__calculate_marketplace_fees",
      "mcp__sellertoolbelt__lookup_barcode",
      "mcp__sellertoolbelt__generate_qr_code",
      "mcp__sellertoolbelt__resize_for_marketplace",
      "mcp__sellertoolbelt__convert_image",
      "mcp__sellertoolbelt__add_watermark"
    ],
    "deny": [
      "mcp__sellertoolbelt__make_compliant_main_image",
      "mcp__sellertoolbelt__remove_background",
      "mcp__sellertoolbelt__change_background_color"
    ]
  }
}
```
