Skip to main content
Glama
README.md
# Voidless for coding agents

Art, animation, sound effects and music for your game, made from Claude Code, Cursor, Codex or any
MCP client:

- **Art:** sprites, characters, props, tilesets, UI and backdrops, pixel art or painted
- **Animation:** 8-direction turns and whole animation sets (walk, run, attack, idle, jump, hurt, death)
- **Sound:** sound effects from a description (coin, jump, hit, footsteps, UI clicks)
- **Music:** loops of 30–120 seconds with tempo and key, for title screens, levels and battles
- **3D:** models you can rig and animate

Every clip in a set keeps the same size and palette, with the feet on the same line, so it drops into
a game without cleanup.

![Two knights, animated, with a backdrop and sound, made through the Voidless MCP server, then a game written around them](docs/demo.gif)

*Claude Code made both knights, their idle/run/jump/attack/hurt/death clips, the swords, the
backdrop and the sound through this server, then wrote the game. About $3.50 CAD of assets.*

This repo has two parts:

- **[`server/`](server)**: the MCP server, published to npm as
  [`voidless-mcp`](https://www.npmjs.com/package/voidless-mcp) and listed in the official MCP
  registry as `dev.voidless/voidless`. A hosted copy runs at `https://mcp.voidless.dev/mcp`.
- **A Claude Code plugin**: the hosted server plus skills that teach the agent how to build a full
  character set, make tilesets, and import the result into Godot.

You need a [Voidless](https://voidless.dev) account. Generations spend credits from it, and each
tool's description lists its cost.

## Claude Code plugin

```
/plugin marketplace add voidless-03/voidless-mcp
/plugin install voidless@voidless
```

The first tool call opens a browser to sign in to Voidless. No API key needed.

Then ask for what you need:

- "Make a 64px pixel-art knight for a top-down game, turn it to 8 directions and give it a walk."
- "Import asset 115918 into this Godot project and set up the player."
- "Make a grass-and-dirt-path wang tileset in the same palette."
- "A coin pickup sound and a 60-second chiptune loop for the title screen."
- "Clean up this walk cycle from another tool and give me 64px pixel-art frames: <link to the mp4>."

| Skill | What it does |
|---|---|
| `game-art` | Which settings to use for sprites, props, backdrops and UI; credit rules |
| `character-set` | One sprite → 8-way turn → animation sets (top-down or platformer) |
| `tileset` | Platformer, wang and blob tilesets, and setting them up in Godot |
| `sound` | Sound effects and music loops, and wiring them into Godot or Phaser |
| `godot-import` | Downloads every clip and writes a SpriteFrames `.tres` for AnimatedSprite2D ([script](skills/godot-import/scripts/voidless-godot.mjs)) |
| `game-ready` | Cleans up art made elsewhere: background removed, pixel art on a real grid, a 1-5 s clip to 16 frames (`clean_up_sprite`, `pixelate_image`) |

## Other clients

**Hosted (no install):** add `https://mcp.voidless.dev/mcp` as a remote MCP server and sign in.

- Claude (claude.ai, desktop, mobile): Settings → Connectors → Add custom connector.
- Claude Code without the plugin: `claude mcp add --transport http voidless https://mcp.voidless.dev/mcp`
- ChatGPT: Settings → Apps & Connectors → Advanced → Developer mode → Create → OAuth.
- Cursor, VS Code, Windsurf: add it as a remote server in their MCP settings.

**Local (npm):** for clients that run a local server, with an API key from
[voidless.dev/account](https://voidless.dev/account):

```json
{
  "mcpServers": {
    "voidless": {
      "command": "npx",
      "args": ["-y", "voidless-mcp"],
      "env": { "VOIDLESS_API_KEY": "void_..." }
    }
  }
}
```

The full tool list is in [`server/README.md`](server/README.md).

## Godot import without the plugin

```sh
VOIDLESS_API_KEY=void_... node skills/godot-import/scripts/voidless-godot.mjs --asset <id> --project path/to/game
```

Writes `res://art/<name>/<clip>/NN.png` and `res://art/<name>/<name>.tres`, with one animation per
clip (`walk_down`, `walk_down_right`, `attack_1`…) and an `idle_<facing>` frame for each turn image.
Tested with Godot 4.7.

## Links

[voidless.dev](https://voidless.dev) · [MCP setup guide](https://voidless.dev/mcp) ·
[API docs](https://voidless.dev/api-docs) · [Privacy](https://voidless.dev/privacy-policy) ·
contact@voidless.dev

MIT licensed.