# Sketchlib

> Search a large 3D model library and download converted GLB/FBX/USDZ assets via signed URLs.

- name: com.sketchlib/sketchlib
- version: 1.0.0
- connection class: R1 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 63/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.sketchlib%2Fsketchlib
- tools: https://api.protogrid.dev/v1/servers/com.sketchlib%2Fsketchlib/tools

**An agent can connect on its own if it already holds `SKETCHLIB_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "sketchlib": {
      "type": "http",
      "url": "https://sketchlib.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SKETCHLIB_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${SKETCHLIB_TOKEN}`.

## Trust

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

## Quality 63/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 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: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- 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: get_model (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); download_model (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); search_models (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,361 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 27 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

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

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

- tools: 7, about 1,361 tokens to load them all
- tool set hash: e696856fabd7b90e9032a55f33046adb
- tools last changed: 2026-10-13T07:58:05.902Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.sketchlib/sketchlib.svg)](https://protogrid.dev/servers/com.sketchlib/sketchlib)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-13 `get_model_preview` changed (description)
  - before: Return the preview image of one model as an image, so it can be shown to the user or judged before downloading. Use this to check that a model from search_models is the one the user means before spending a credit on it.
  - after: Return the preview image of one model as an image, so it can be shown to the user or judged before downloading. Use this to check that a model from search_models is the one the user means before spending a credit on it. Spends one of the same reads search_models draws on, and counts against the same per-minute limit.
- 2026-10-12 `list_generations` added
  - Report past generate_model tasks created by the calling account, newest first. When status is 'done' the entry carries a download URL for the GLB, valid for 7 days. Use this to find 3D models generated earlier when the task_id was lost.
- 2026-10-12 `get_generation` changed (description)
  - before: Report the status of a generate_model task. While it is pending or running, wait before polling again. When status is 'done' the response carries a download URL for the GLB, valid for 1 hour. When status is 'failed' the pre-deducted credits have already been refunded automatically and the error field explains why, so no manual refund is needed.
  - after: Report the status of a generate_model task. While it is pending or running, wait before polling again. When status is 'done' the response carries a download URL for the GLB, valid for 7 days. When status is 'failed' the pre-deducted credits have already been refunded automatically and the error field explains why, so no manual refund is needed.
- 2026-10-12 `generate_model` changed (description, inputSchema)
  - before: Generate a 3D model (GLB) from one or more images of an object. This is asynchronous and usually takes 3-7 minutes: the call returns a task_id immediately and get_generation reports progress. The result is downloadable only by the calling account and does not enter the public library. This tool charges credits, computed server-side and returned as credits_cost, so a call that cannot afford it is refused before any work starts. Supply image_base64 or image_urls to generate now, or omit both to have the user upload an image through their browser.
  - after: Generate a 3D model (GLB) from one photo of an object. This is asynchronous and usually takes 3-7 minutes: the call returns a task_id immediately and get_generation reports progress. The result is downloadable only by the calling account and does not enter the public library. This tool charges credits, computed server-side and returned as credits_cost, so a call that cannot afford it is refused before any work starts. Supply image_base64 or image_urls to generate now, or omit both to have the user upload an image through their browser.
- 2026-10-12 `download_model` changed (description)
  - before: Return a signed download URL for a model zip, valid for 1 hour. Consumes one credit. A model the account already owns is free to download again.
  - after: Return a signed download URL for a model zip, valid for 7 days. Consumes one credit. A model the account already owns is free to download again.
- 2026-10-12 `get_model_preview` added
  - Return the preview image of one model as an image, so it can be shown to the user or judged before downloading. Use this to check that a model from search_models is the one the user means before spending a credit on it.
- 2026-10-12 `get_model` changed (description) **meaning changed**
  - before: Return full metadata for one model, including whether it is downloadable and its preview image URL.
  - after: Return full metadata for one model, including whether it is downloadable and the source platform's thumbnail URL. That URL is hosted by the source platform and is missing for some models; use get_model_preview to see the model's own preview image instead.
- 2026-10-12 `list_generations` removed
  - Report past generate_model tasks created by the calling account, newest first. When status is 'done' the entry carries a download URL for the GLB, valid for 7 days. Use this to find 3D models generated earlier when the task_id was lost.
- 2026-10-12 `get_model_preview` removed
  - Return the preview image of one model as an image, so it can be shown to the user or judged before downloading. Use this to check that a model from search_models is the one the user means before spending a credit on it.
- 2026-10-12 `get_generation` changed (description)
  - before: Report the status of a generate_model task. While it is pending or running, wait before polling again. When status is 'done' the response carries a download URL for the GLB, valid for 7 days. When status is 'failed' the pre-deducted credits have already been refunded automatically and the error field explains why, so no manual refund is needed.
  - after: Report the status of a generate_model task. While it is pending or running, wait before polling again. When status is 'done' the response carries a download URL for the GLB, valid for 1 hour. When status is 'failed' the pre-deducted credits have already been refunded automatically and the error field explains why, so no manual refund is needed.

Full history: https://api.protogrid.dev/v1/servers/com.sketchlib%2Fsketchlib/changes

## Remotes

- https://sketchlib.com/mcp (streamable-http, auth api_key ${SKETCHLIB_TOKEN}, reachable true, uptime30d 0.98571426)

## Packages

_none_

## Tools (7)

- `download_model`: Return a signed download URL for a model zip, valid for 7 days. Consumes one credit. A model the account already owns is free to download again.
- `generate_model`: Generate a 3D model (GLB) from one photo of an object. This is asynchronous and usually takes 3-7 minutes: the call returns a task_id immediately and get_generation reports progress. The result is downloadable only by the calling account and does not enter the public library. This tool charges credits, computed server-side and returned as credits_cost, so a call that cannot afford it is refused before any work starts. Supply image_base64 or image_urls to generate now, or omit both to have the user upload an image through their browser.
- `get_generation`: Report the status of a generate_model task. While it is pending or running, wait before polling again. When status is 'done' the response carries a download URL for the GLB, valid for 7 days. When status is 'failed' the pre-deducted credits have already been refunded automatically and the error field explains why, so no manual refund is needed.
- `get_model`: Return full metadata for one model, including whether it is downloadable and the source platform's thumbnail URL. That URL is hosted by the source platform and is missing for some models; use get_model_preview to see the model's own preview image instead.
- `get_model_preview`: Return the preview image of one model as an image, so it can be shown to the user or judged before downloading. Use this to check that a model from search_models is the one the user means before spending a credit on it. Spends one of the same reads search_models draws on, and counts against the same per-minute limit.
- `list_generations`: Report past generate_model tasks created by the calling account, newest first. When status is 'done' the entry carries a download URL for the GLB, valid for 7 days. Use this to find 3D models generated earlier when the task_id was lost.
- `search_models`: Search the Sketchlib library by keyword, optionally narrowed by category, tag, or face-count range. Returns paginated metadata and a preview image URL. has_more reports whether a further page exists; raise offset by limit to fetch it.
