# `io.drint/drint` 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/io.drint/drint
- JSON: https://anlyon.dev/api/v1/servers/io.drint/drint
- Version: 1.0.0 (active)
- Publisher: io.drint (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-24T17:17:38.830Z

Title and description, as the publisher wrote them:

```untrusted-server-text
Drint
Packaging dielines (FEFCO/ECMA), 3D box and bag mockups, and your Drint projects in the chat.
```

Scanned 2026-10-24T17:17:56.743Z over streamable-http.

**10 tools: 1 do something that can't be undone, 6 change things and 3 only read.**

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

## Exfil surface

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

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

## Findings

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

```untrusted-server-text
The server marks "open_mockup" 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_mockup" says "open": a word for a change.
```

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

```untrusted-server-text
The server marks "open_my_project" 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_my_project" says "open": a word for a change.
```

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

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

annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "send_to_3d_studio" says "send": a word for sending, and what is sent cannot be taken back.
```


## Can't be undone (1)

Sends, pays, publishes or merges: once done, it cannot be taken back. Claude Code: ask.

### `send_to_3d_studio`

- The name "send_to_3d_studio" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
- Tag outbound: The name "send_to_3d_studio" says "send": it sends or publishes something to other people.
- Findings: warn annotation-conflict

Description, as the server wrote it:

```untrusted-server-text
Prepare one of the signed-in person's Drint projects for Drint 3D Studio, where its whole product set is staged and rendered as photo-real scenes that come back to the project's Hộp duyệt. Returns a link: it opens the project in Drint with the hand-on menu up, and the person clicks "Dựng cảnh ở 3D Studio" — the products and their artwork are built in their browser, so this tool cannot send them by itself. Take the id from list_my_projects.
```

## Changes things (6)

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

### `get_dieline`

- The name "get_dieline" says "get": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.

Description, as the server wrote it:

```untrusted-server-text
Draw a print-ready dieline at an exact size in the signed-in person's Drint space and return a download link (valid one hour): PDF / AI (cut and crease as spot colours with dimensions, opens in Illustrator) or SVG (CUT / CREASE layers). Give a standard code (FEFCO "0201", "0427"; ECMA "A20.20.03.01", "A60.20.00.01") or a Drint type id from list_dielines. Length, width, height are the inside size in mm. The Free plan has 3 of these a month, Pro unlimited. For the die-maker's DXF or CF2 files use make_dieline.
```

### `make_dieline`

- The input takes a statement or command to run (input.code), which can change anything it can reach.

Description, as the server wrote it:

```untrusted-server-text
Draw a production dieline in the signed-in person's Drint space at an exact size and return a download link (valid one hour): DXF (for CAD and cutting tables) or CF2 (for die-makers, ArtiosCAD). Give a FEFCO / ECMA code or a type from list_dielines. Length, width, height are the inside size in mm. It counts as one die download on the space's plan, as in the Drint studio (Free has none: then it says so; the PDF / SVG die is get_dieline).
```

### `my_drint`

- 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
Who is signed in to Drint, which space this app works in, its plan, and how many PDF / SVG dies and DXF / CF2 die downloads are left this month. Useful when a Drint tool reports a plan limit.
```

### `open_mockup`

- The name "open_mockup" 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
Show one Drint mockup in an interactive 3D viewer the user can rotate, zoom, recolour and resize. Take the id from search_mockups. Optional: colour (a colour or material name, or its number from 0), and a custom size in millimetres (length, width, height).
```

### `open_my_project`

- The name "open_my_project" 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
Show one of the signed-in person's Drint projects in 3D with its own design printed on it, in a viewer they can rotate and open in Drint. Take the id from list_my_projects. A project with several products (a set) can name one with product (its number from 0). On the Free plan the product wears Drint's watermark grid, as in the studio.
```

### `review_inbox`

- 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
Hộp duyệt, the signed-in person's review inbox in Drint: the work their space handed on to Drint 3D Studio (scenes, renders) or Drint AI (design edits, pictures, films), and the results that came back and wait to be accepted into the project. Each job has its project, status and, once done, its result pictures (links valid ten minutes). Accepting happens in Drint: each job has a link that opens its project with Hộp duyệt up. Optional: project (an id from list_my_projects), waiting_only.
```

## Only reads (3)

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

### `list_dielines`

- The name "list_dielines" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List the packaging structures Drint draws as print-ready dielines (tuck end boxes, auto-lock bottoms, mailers, FEFCO cartons, paper bags, rigid boxes, drawers, pillow boxes, sleeves, pouches, cups, labels…), with each one's type id and default size in mm, and find standard die codes: about 180 FEFCO (corrugated, e.g. 0201, 0427) and ECMA (folding cartons, e.g. A20.20.03.01) codes. Optional query: a code or a few words ("0201", "reverse tuck", "crash lock", "hộp nắp gài", "bag"). Each comes with a link that starts a Drint design on that die.
```

### `list_my_projects`

- The name "list_my_projects" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List the signed-in person's own Drint projects (in the space they allowed this app to use): name, products, last change, and their thumbnails in a grid they can click to open in 3D. Optional query: words of the name.
```

### `search_mockups`

- The name "search_mockups" says "search": a word for reading.
- Tag private-data: The description's first sentence says "search" and "calendar": it reads calendars.

Description, as the server wrote it:

```untrusted-server-text
Search Drint's library of ready 3D packaging and print mockups (about a thousand models: paper boxes, rigid gift boxes, paper bags, shipping cartons, bottles, jars, cans, cups, labels, flexible pouches, mugs, apparel, signage, posters, books, calendars). Use a few plain words for the product, e.g. "kraft paper bag", "tuck end box", "hộp quà Tết", "chai mỹ phẩm". Returns models with id, name, size in mm and a picture; shows them as a grid the user can click to open in 3D.
```

## Claude Code permissions

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

```json
{
  "permissions": {
    "allow": [
      "mcp__drint__search_mockups",
      "mcp__drint__list_dielines",
      "mcp__drint__list_my_projects"
    ],
    "ask": [
      "mcp__drint__open_mockup",
      "mcp__drint__get_dieline",
      "mcp__drint__make_dieline",
      "mcp__drint__open_my_project",
      "mcp__drint__review_inbox",
      "mcp__drint__send_to_3d_studio",
      "mcp__drint__my_drint"
    ],
    "deny": []
  }
}
```

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

- `mcp__drint__search_mockups`: private-data
- `mcp__drint__send_to_3d_studio`: outbound
