# VoxelDraft – AI Voxel Modeling

> Create, edit, render, save, and export voxel models with interactive 3D previews.

- name: io.github.huruki-geo/voxeldraft
- version: 0.5.1
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 91/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.huruki-geo%2Fvoxeldraft
- tools: https://api.protogrid.dev/v1/servers/io.github.huruki-geo%2Fvoxeldraft/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "voxeldraft": {
      "type": "http",
      "url": "https://voxeldraft.com/api/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 97
- freshness: 85
- provenance: 35
- drivers: +reachable +uptime-92% ~updated-36d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (good)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 86400000)

### 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: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: inspect_voxel_model (idempotentHint); export_voxel_model (idempotentHint); list_voxel_projects (idempotentHint); …
- pass `tools.token_cost`: about 1,532 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 1 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

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

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

- tools: 8, about 1,532 tokens to load them all
- tool set hash: f25ac28893cec8667e84576f1d41c87c
- tools last changed: 2026-09-28T22:02:07.129Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.huruki-geo/voxeldraft.svg)](https://protogrid.dev/servers/io.github.huruki-geo/voxeldraft)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-09-28 `render_voxel_model` changed (outputSchema)

Full history: https://api.protogrid.dev/v1/servers/io.github.huruki-geo%2Fvoxeldraft/changes

## Remotes

- https://voxeldraft.com/api/mcp (streamable-http, auth none, reachable true, uptime30d 0.9238095)

## Packages

_none_

## Tools (8)

- `create_voxel_model`: Create an editable VoxelDraft model from compact commands. Returns a short modelRef for later plugin calls and does not save to Cloud Projects. Use VoxelDraft's compact instruction stream instead of emitting one JSON object per voxel. Coordinates are integers 0..63. Colors are either #RRGGBB or a zero-based palette index.
Commands:
["box",x1,y1,z1,x2,y2,z2,color,hollow?]
["ellipsoid",cx,cy,cz,rx,ry,rz,color,hollow?]
["cylinder","x"|"y"|"z",x,y,z,radius,height,color,hollow?]
["line",x1,y1,z1,x2,y2,z2,color]
["roof","x"|"z",x1,y1,z1,x2,y2,z2,color] (gable roof, axis is ridge direction)
["runs","x"|"y"|"z",color,[[x,y,z,length],...]] (preferred exact/freeform representation)
["points",color,[[x,y,z],...]] (sparse details only)
["erase",x1,y1,z1,x2,y2,z2]
["recolor",fromColor,toColor]
["copy",x1,y1,z1,x2,y2,z2,dx,dy,dz]
["repeat",x1,y1,z1,x2,y2,z2,dx,dy,dz,count]
["mirror","x"|"y"|"z",plane,x1,y1,z1,x2,y2,z2] (plane is a grid boundary 0..64)
Prefer box/roof/ellipsoid/cylinder for bulk geometry, runs for irregular silhouettes, repeat/mirror for repeated or symmetric parts, and points only for small details. This usually uses far fewer model tokens than raw voxel JSON.
- `edit_voxel_model`: Edit the temporary model identified by modelRef and return a new modelRef. This does not modify a saved cloud project. Use VoxelDraft's compact instruction stream instead of emitting one JSON object per voxel. Coordinates are integers 0..63. Colors are either #RRGGBB or a zero-based palette index.
Commands:
["box",x1,y1,z1,x2,y2,z2,color,hollow?]
["ellipsoid",cx,cy,cz,rx,ry,rz,color,hollow?]
["cylinder","x"|"y"|"z",x,y,z,radius,height,color,hollow?]
["line",x1,y1,z1,x2,y2,z2,color]
["roof","x"|"z",x1,y1,z1,x2,y2,z2,color] (gable roof, axis is ridge direction)
["runs","x"|"y"|"z",color,[[x,y,z,length],...]] (preferred exact/freeform representation)
["points",color,[[x,y,z],...]] (sparse details only)
["erase",x1,y1,z1,x2,y2,z2]
["recolor",fromColor,toColor]
["copy",x1,y1,z1,x2,y2,z2,dx,dy,dz]
["repeat",x1,y1,z1,x2,y2,z2,dx,dy,dz,count]
["mirror","x"|"y"|"z",plane,x1,y1,z1,x2,y2,z2] (plane is a grid boundary 0..64)
Prefer box/roof/ellipsoid/cylinder for bulk geometry, runs for irregular silhouettes, repeat/mirror for repeated or symmetric parts, and points only for small details. This usually uses far fewer model tokens than raw voxel JSON.
- `export_voxel_model`: Create direct download URLs for OBJ+MTL or compact VoxelDraft JSON from a modelRef.
- `inspect_voxel_model`: Inspect a temporary VoxelDraft modelRef. Returns voxel count, command count, bounds, and colors.
- `list_voxel_projects`: List private VoxelDraft Cloud Projects. Requires project-read OAuth scope.
- `load_voxel_project`: Load one private Cloud Project and return a short modelRef for later plugin calls. Requires project-read OAuth scope.
- `render_voxel_model`: Preview a VoxelDraft modelRef. ChatGPT can render an interactive Three.js/WebGL widget; everyone also receives an interactive WebGL URL. Signed-in VoxelDraft Plus users may additionally receive a cached PNG when includeImage is true.
- `save_voxel_model`: Save the temporary model identified by modelRef to private VoxelDraft Cloud Projects. Requires project-write OAuth scope. Pass projectId to update an existing owned cloud project.
