# Claycut

> Custom transparent PNG icons in your project's style, added by your coding agent. Free starter set.

- name: io.github.vincentzhang15/claycut
- version: 1.2.4
- connection class: R0 (autonomous)
- trust: 79/100 flags: no-repository
- quality: 78/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.vincentzhang15%2Fclaycut
- tools: https://api.protogrid.dev/v1/servers/io.github.vincentzhang15%2Fclaycut/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "claycut": {
      "type": "http",
      "url": "https://claycut.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${CLAYCUT_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${CLAYCUT_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-98% +updated-25d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 78/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 69 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: find_free_icon (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); generate_app_icon (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); find_my_icon (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,081 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 1,081 tokens to load them all
- tool set hash: f76198fbb2f2dd53a4f631a3c5f830e6
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.vincentzhang15/claycut.svg)](https://protogrid.dev/servers/io.github.vincentzhang15/claycut)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://claycut.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.97959185)

## Packages

_none_

## Tools (4)

- `edit_app_icon`: Change one thing about an icon that is almost right, keeping everything else as it is. Needs a paid Claycut key and costs one icon. Returns a download URL for the edited transparent PNG.

Use it instead of generate_app_icon when the user likes an icon but wants a detail fixed: a new generation redraws the whole object and loses what they liked. Pass the icon's URL (a Claycut asset URL, or any public PNG) and a short instruction. Up to three changes per call; describe the end state to draw ("the grey plate behind the star becomes clear violet crystal"), not what to remove. Name what must not change if it's at risk. Always edit the original, not a previous edit, and add the result to the '## Icons' list in CLAYCUT.md.
- `find_free_icon`: Find a free, ready-made transparent PNG icon from the Claycut catalogue. No API key needed. The free set only comes in the clay, editorial and plush house styles, so use it when the project's CLAYCUT.md style is one of those (or the user has no key); otherwise it won't match the project. Returns download URLs for matches, or the full list of available words.
- `find_my_icon`: Find icons this Claycut account already generated or edited, so you can reuse one instead of paying for a new generation. Needs a Claycut key; free. Check here before generate_app_icon. Returns concept, style, date and download URL for matches, or the account's recent icons if nothing matches.
- `generate_app_icon`: Generate a custom transparent PNG app icon or UI illustration of any subject, in the project's own style. Needs a paid Claycut key. Returns a download URL for the finished asset.

Every icon in a project follows one style guide, CLAYCUT.md at the repo root. Before the first call:
1. If CLAYCUT.md exists, use its style line exactly as written (don't reword it) and skip to step 5.
2. Otherwise read the project's design system: design docs, Tailwind config, CSS variables and theme tokens, brand colours, fonts, existing icons and illustrations. If there is none, work out what the project is for and who uses it (README, package.json, landing copy, routes) and invent a style that suits it.
3. Write the style line (at most 300 characters): rendering technique, material, shape language, palette as colour names, lighting, level of detail. It must describe a single solid object that a background remover can cut out: no scenes, no near-white or glassy subjects, no hairline-only line art, no text. Don't mention subject, background or composition; Claycut adds those. Only use a house style (clay, editorial, plush) if it genuinely fits the project, never as a fallback.
4. Create CLAYCUT.md with: a '## Style line' section holding the exact line, why it fits (palette, material, tone and the files it came from), and an '## Icons' list. Generate one representative icon, show it to the user and adjust the line until they approve it.
5. Call with style "custom" and style_description set to that line (or the house style name if CLAYCUT.md names one), then add each icon to the '## Icons' list as concept -> file path. Check that list before generating (and find_my_icon for icons this account made in other projects), and reuse one that already exists.
