# `eu.bandfactory/configurator` 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/eu.bandfactory/configurator
- JSON: https://anlyon.dev/api/v1/servers/eu.bandfactory/configurator
- Version: 1.0.0 (active)
- Publisher: eu.bandfactory (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Metadata from the official MCP Registry, synced 2026-11-01T10:17:39.784Z

Title and description, as the publisher wrote them:

```untrusted-server-text
BandFactory
Design custom silicone wristbands in 3D, get exact prices and an order link for bandfactory.eu.
```

Scanned 2026-11-01T10:18:17.486Z over streamable-http.

**5 tools: 2 change things and 3 only read.**

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

## Exfil surface

No private-data -> untrusted-input -> outbound path in this server alone: no tool is tagged outbound.

| Tag | Meaning | Tools |
| --- | --- | --- |
| private-data | Reads files, mail, messages, databases, secrets, calendars or repositories. | `mcp__configurator__get_shop_info` |
| untrusted-input | Brings in text someone else can write: web pages, inbound email, messages, issues and comments. | `mcp__configurator__get_price_quote` |
| outbound | Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL. | none |

## Findings

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

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

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "create_design_link" says "create": a word for a change.
```

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

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

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_configurator" says "open": a word for a change.
```


## Changes things (2)

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

### `create_design_link`

- The name "create_design_link" says "create": 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
Returns a link to the BandFactory configurator prefilled with the given wristband design, where the customer can preview it in 3D, upload a logo and order. Includes the total price.
```

### `open_configurator`

- The name "open_configurator" says "open": 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
Shows the interactive BandFactory wristband configurator with a rotatable 3D preview, prefilled with the given design (all fields optional). The customer can change style, text, font, colours, flag or symbol, size, quantity and extras, sees the live price and orders on bandfactory.eu. Also returns the current design, price and design link as text.
```

## Only reads (3)

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

### `get_options`

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

Description, as the server wrote it:

```untrusted-server-text
Lists every selectable option for a BandFactory silicone wristband: styles, sizes, fonts, suggested colours, flags, symbols, extras, the quantity price tiers, one-off fees and the delivery countries.
```

### `get_price_quote`

- The name "get_price_quote" says "get": a word for reading.
- Tag untrusted-input: The description's first sentence says "website": it reads web pages, which anyone can write.

Description, as the server wrote it:

```untrusted-server-text
Calculates the exact price for a silicone wristband configuration with the same calculation as the website and checkout (total, price per band, itemised fees, VAT or import charges for the delivery country) and returns the design link that opens the configurator on bandfactory.eu prefilled with this design for ordering.
```

### `get_shop_info`

- The name "get_shop_info" says "get": a word for reading.
- Tag private-data: The description's first sentence says "contact": it reads contacts.

Description, as the server wrote it:

```untrusted-server-text
Shop details: product range, delivery countries and time, payment methods, proof approval, contact, terms and privacy policy.
```

## Claude Code permissions

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

```json
{
  "permissions": {
    "allow": [
      "mcp__configurator__get_options",
      "mcp__configurator__get_price_quote",
      "mcp__configurator__get_shop_info"
    ],
    "ask": [
      "mcp__configurator__create_design_link",
      "mcp__configurator__open_configurator"
    ],
    "deny": []
  }
}
```

Capability tags behind the rules (a read tagged outbound is asked about):

- `mcp__configurator__get_price_quote`: untrusted-input
- `mcp__configurator__get_shop_info`: private-data
